public void ChildImpurities_Equal() { var sut = new ChildImpurities(0.23, 0.55); var equal = new ChildImpurities(0.23, 0.55); var notEqual1 = new ChildImpurities(0.19, 0.55); var notEqual2 = new ChildImpurities(0.23, 0.213); Assert.AreEqual(equal, sut); Assert.AreNotEqual(notEqual1, sut); Assert.AreNotEqual(notEqual2, sut); }
public void RegressionImpurityCalculator_ChildImpurities() { var values = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }; var parentInterval = Interval1D.Create(0, values.Length); var sut = new RegressionImpurityCalculator(); sut.Init(new double[0], values, new double[0], parentInterval); var impurity = sut.NodeImpurity(); sut.UpdateIndex(50); var actual = sut.ChildImpurities(); var expected = new ChildImpurities(0.0, -2.25); Assert.AreEqual(expected, actual); }
public void GiniClassificationImpurityCalculator_ChildImpurities() { var values = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }; var unique = values.Distinct().ToArray(); var parentInterval = Interval1D.Create(0, values.Length); var sut = new GiniClassificationImpurityCalculator(); sut.Init(unique, values, new double[0], parentInterval); var impurity = sut.NodeImpurity(); sut.UpdateIndex(50); var actual = sut.ChildImpurities(); var expected = new ChildImpurities(0.0, .5); Assert.AreEqual(expected, actual); }