AIMA.Core.Learning.Learners.AdaBoostLearner.train C# (CSharp) Метод

train() публичный Метод

public train ( DataSet ds ) : void
ds AIMA.Core.Learning.Framework.DataSet
Результат void
        public void train(DataSet ds) {
		initializeExampleWeights(ds.examples.Count);

		foreach (Learner learner in learners) {
			learner.train(ds);

			double error = calculateError(ds, learner);
			if (error < 0.0001) {
				break;
			}

			adjustExampleWeights(ds, learner, error);

			double newHypothesisWeight = learnerWeights[learner]
					* Math.Log((1.0 - error) / error);
            if (learnerWeights.ContainsKey(learner))
            {
                learnerWeights[learner] = newHypothesisWeight;
            }
            else
            {
                learnerWeights.Add(learner, newHypothesisWeight);
            }
		}
	}

Usage Example

Пример #1
0
 public void testAdaBoostEnablesCollectionOfStumpsToClassifyDataSetAccurately()
 {
     DataSet ds = DataSetFactory.getRestaurantDataSet();
     List<DecisionTree> stumps = DecisionTree.getStumpsFor(ds, YES, "No");
     List<Learner> learners = new List<Learner>();
     foreach (Object stump in stumps)
     {
         DecisionTree sl = (DecisionTree)stump;
         StumpLearner stumpLearner = new StumpLearner(sl, "No");
         learners.Add(stumpLearner);
     }
     AdaBoostLearner learner = new AdaBoostLearner(learners, ds);
     learner.train(ds);
     int[] result = learner.test(ds);
     Assert.AreEqual(12, result[0]);
     Assert.AreEqual(0, result[1]);
 }