public void KNN_Test() { Logger.Info("KNN_Test"); var problem = ProblemFactory.CreateClassificationProblem(ClassificationProblemType.ChessBoard); Logger.Info("Loading training data."); var tSet = problem.TrainingSet; var vSet = problem.ValidationSet; var classifier = new KNN { KNN_K = 7, TrainSet = tSet }; classifier.Train(); Logger.Info("Doing cross-validation."); var hit = (from e in vSet.Examples let iResult = classifier.Predict(e.X) where e.Label.Id == iResult select e).Count(); var correctRatio = 1.0 * hit / vSet.Count; Logger.Info("CorrectRatio: {0}", correctRatio); Assert.IsTrue(correctRatio > 0.900, string.Format("KNN (2-class) Correct Ratio, expected: greater than 0.900, actual: {0}.", correctRatio)); }
public void TestPredictRunsSuccessfullyWithoutException() { TestTrainValidData(); List <object> validData = GenerateValidList(5); KnnModel.Predict(validData, CalcDistance); KnnModel.PredictTopN(validData, CalcDistance, 6); }
public object Predict(List <object> inputData, Func <List <double>, List <double>, double> distanceCalculationFunction) { return(Model.Predict(inputData, distanceCalculationFunction)); }