public void TrainAndEvaluateRanking() { var mlContext = new MLContext(seed: 1, conc: 1); var data = Iris.LoadAsRankingProblem(mlContext, GetDataPath(TestDatasets.iris.trainFilename), hasHeader: TestDatasets.iris.fileHasHeader, separatorChar: TestDatasets.iris.fileSeparator); // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .Append(mlContext.Ranking.Trainers.FastTree(new FastTreeRankingTrainer.Options { NumThreads = 1 })); // Train the model. var model = pipeline.Fit(data); // Evaluate the model. var scoredData = model.Transform(data); var metrics = mlContext.Ranking.Evaluate(scoredData, label: "Label", groupId: "GroupId"); // Check that the metrics returned are valid. Common.AssertMetrics(metrics); }
private IDataView GetScoredDataForRankingEvaluation(MLContext mlContext) { var data = Iris.LoadAsRankingProblem(mlContext, TestCommon.GetDataPath(DataDir, TestDatasets.iris.trainFilename), hasHeader: TestDatasets.iris.fileHasHeader, separatorChar: TestDatasets.iris.fileSeparator); // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .Append(mlContext.Ranking.Trainers.FastTree(new FastTreeRankingTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); // Evaluate the model. var scoredData = model.Transform(data); return(scoredData); }