예제 #1
0
        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);
        }
예제 #2
0
        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);
        }