public void TrainingTestSetSplit_Equals() { var trainingObservations1 = new F64Matrix(new double[] { 1, 2, 3, 4 }, 2, 2); var trainingObservations2 = new F64Matrix(new double[] { 4, 3, 2, 1 }, 2, 2); var trainingTargets1 = new double[] { 1, 2 }; var trainingTargets2 = new double[] { 2, 1 }; var testObservations1 = new F64Matrix(new double[] { 1, 2, 3, 4 }, 2, 2); var testObservations2 = new F64Matrix(new double[] { 4, 3, 2, 1 }, 2, 2); var testTargets1 = new double[] { 1, 2 }; var testTargets2 = new double[] { 2, 1 }; var sut = new TrainingTestSetSplit(trainingObservations1, trainingTargets1, testObservations1, testTargets1); var equal = new TrainingTestSetSplit(trainingObservations1, trainingTargets1, testObservations1, testTargets1); var notEqual1 = new TrainingTestSetSplit(trainingObservations2, trainingTargets1, testObservations1, testTargets1); var notEqual2 = new TrainingTestSetSplit(trainingObservations1, trainingTargets2, testObservations1, testTargets1); var notEqual3 = new TrainingTestSetSplit(trainingObservations1, trainingTargets1, testObservations2, testTargets1); var notEqual4 = new TrainingTestSetSplit(trainingObservations1, trainingTargets1, testObservations1, testTargets2); Assert.AreEqual(sut, equal); Assert.AreNotEqual(sut, notEqual1); Assert.AreNotEqual(sut, notEqual2); Assert.AreNotEqual(sut, notEqual3); Assert.AreNotEqual(sut, notEqual4); }
public void TrainingTestIndexSplitterExtensions_SplitSet() { var observations = new F64Matrix(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 10, 1); var targets = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var splitter = new NoShuffleTrainingTestIndexSplitter <double>(0.6); var actual = splitter.SplitSet(observations, targets); var trainingIndices = Enumerable.Range(0, 6).ToArray(); var testIndices = Enumerable.Range(6, 4).ToArray(); var expected = new TrainingTestSetSplit( new ObservationTargetSet((F64Matrix)observations.Rows(trainingIndices), targets.GetIndices(trainingIndices)), new ObservationTargetSet((F64Matrix)observations.Rows(testIndices), targets.GetIndices(testIndices))); Assert.AreEqual(expected, actual); }
public void RegressionGradientBoostLearner_LearnWithEarlyStopping_when_more_featuresPerSlit_than_featureCount_Throw() { var sut = new RegressionSquareLossGradientBoostLearner(500, 0.1, 10, 15, 0.01, 0.8, featuresPrSplit: 4); IRegressionMetric metric = new MeanSquaredErrorRegressionMetric(); var trainingRows = 5; var testRows = 6; var cols = 3; var split = new TrainingTestSetSplit( new F64Matrix(trainingRows, cols), new double[trainingRows], new F64Matrix(testRows, cols), new double[testRows]); var model = sut.LearnWithEarlyStopping( split.TrainingSet.Observations, split.TrainingSet.Targets, split.TestSet.Observations, split.TestSet.Targets, metric, earlyStoppingRounds: 20); }