Ejemplo n.º 1
0
		/// <summary> Creates a C4.5-type split on the given data. Assumes that none of
		/// the class values is missing.
		/// 
		/// </summary>
		/// <exception cref="Exception">if something goes wrong
		/// </exception>
		public override void  buildClassifier(Instances trainInstances)
		{
			
			// Initialize the remaining instance variables.
			m_numSubsets = 0;
			//UPGRADE_TODO: The equivalent in .NET for field 'java.lang.Double.MAX_VALUE' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'"
			m_splitPoint = System.Double.MaxValue;
			m_infoGain = 0;
			m_gainRatio = 0;
			
			// Different treatment for enumerated and numeric
			// attributes.
			if (trainInstances.attribute(m_attIndex).Nominal)
			{
				m_complexityIndex = trainInstances.attribute(m_attIndex).numValues();
				m_index = m_complexityIndex;
				handleEnumeratedAttribute(trainInstances);
			}
			else
			{
				m_complexityIndex = 2;
				m_index = 0;
				trainInstances.sort(trainInstances.attribute(m_attIndex));
				handleNumericAttribute(trainInstances);
			}
		}