コード例 #1
0
ファイル: Program.cs プロジェクト: ronaldcaceres/Blog
        public static void Train(MLContext mlContext)
        {
            try
            {
                // STEP 1: Load the data
                var trainData = mlContext.Data.LoadFromTextFile(path: "AgeRangeData03_AgeGenderLabelEncodedMoreData.csv",
                                                                columns: new[]
                {
                    new TextLoader.Column("Age", DataKind.Single, 0),
                    new TextLoader.Column("Gender", DataKind.Single, 1)
                    ,
                    new TextLoader.Column("Label", DataKind.Single, 2)
                },
                                                                hasHeader: true,
                                                                separatorChar: ','
                                                                );

                var progressHandler = new MulticlassExperimentProgressHandler();

                ConsoleHelper.ConsoleWriteHeader("=============== Running AutoML experiment ===============");
                Console.WriteLine($"Running AutoML multiclass classification experiment for {ExperimentTime} seconds...");
                ExperimentResult <MulticlassClassificationMetrics> experimentResult = mlContext.Auto()
                                                                                      .CreateMulticlassClassificationExperiment(ExperimentTime)
                                                                                      .Execute(trainData, "Label", progressHandler: progressHandler);

                // Print top models found by AutoML
                Console.WriteLine();
                PrintTopModels(experimentResult);
                Console.WriteLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
コード例 #2
0
        public static void AutoTrain()
        {
            // STEP 1: data loading
            IDataView trainingDataView = LoadDataFromCsv(trainingCsv);
            IDataView testingDataView  = LoadDataFromCsv(testingCsv);

            // STEP 2: run an AutoML multiclass classification experiment
            WriteLineColor($"{Environment.NewLine}AutoML multiclass classification experiment for {ExperimentTime} seconds...", ConsoleColor.Yellow);
            var progressHandler = new MulticlassExperimentProgressHandler();
            ExperimentResult <MulticlassClassificationMetrics> experimentResult = Context.Auto()
                                                                                  .CreateMulticlassClassificationExperiment(ExperimentTime)
                                                                                  .Execute(trainingDataView, Label, progressHandler: progressHandler);

            // STEP 3: evaluate the model and print metrics
            RunDetail <MulticlassClassificationMetrics> bestRun = experimentResult.BestRun;

            WriteLineColor($"{Environment.NewLine}Top Trainer (by accuracy)", ConsoleColor.Yellow);
            PrintTopModels(experimentResult);
            WriteLineColor($"{Environment.NewLine}TRAINING USING: {bestRun.TrainerName}", ConsoleColor.Cyan);
            Model = bestRun.Model;
            var predictions = Model.Transform(testingDataView);
            var metrics     = Context.MulticlassClassification.Evaluate(data: predictions, labelColumnName: Label, scoreColumnName: Score, predictedLabelColumnName: PredictedLabel);

            PrintMultiClassClassificationMetrics(bestRun.TrainerName, metrics);

            // STEP 4: save the model
            Context.Model.Save(Model, trainingDataView.Schema, modelPath);
        }
コード例 #3
0
        public static void Train(MLContext mlContext)
        {
            try
            {
                // STEP 1: Load the data
                var trainData = mlContext.Data.LoadFromTextFile(path: TrainDataPath,
                                                                columns: new[]
                {
                    new TextLoader.Column(nameof(InputData.PixelValues), DataKind.Single, 0, 63),
                    new TextLoader.Column("Number", DataKind.Single, 64)
                },
                                                                hasHeader: false,
                                                                separatorChar: ','
                                                                );

                var testData = mlContext.Data.LoadFromTextFile(path: TestDataPath,
                                                               columns: new[]
                {
                    new TextLoader.Column(nameof(InputData.PixelValues), DataKind.Single, 0, 63),
                    new TextLoader.Column("Number", DataKind.Single, 64)
                },
                                                               hasHeader: false,
                                                               separatorChar: ','
                                                               );

                // STEP 2: Initialize our user-defined progress handler that AutoML will
                // invoke after each model it produces and evaluates.
                var progressHandler = new MulticlassExperimentProgressHandler();

                // STEP 3: Run an AutoML multiclass classification experiment
                ConsoleHelper.ConsoleWriteHeader("=============== Running AutoML experiment ===============");
                Console.WriteLine($"Running AutoML multiclass classification experiment for {ExperimentTime} seconds...");
                ExperimentResult <MulticlassClassificationMetrics> experimentResult = mlContext.Auto()
                                                                                      .CreateMulticlassClassificationExperiment(ExperimentTime)
                                                                                      .Execute(trainData, "Number", progressHandler: progressHandler);

                // Print top models found by AutoML
                Console.WriteLine();
                PrintTopModels(experimentResult);

                // STEP 4: Evaluate the model and print metrics
                ConsoleHelper.ConsoleWriteHeader("===== Evaluating model's accuracy with test data =====");
                RunDetail <MulticlassClassificationMetrics> bestRun = experimentResult.BestRun;
                ITransformer trainedModel = bestRun.Model;
                var          predictions  = trainedModel.Transform(testData);
                var          metrics      = mlContext.MulticlassClassification.Evaluate(data: predictions, labelColumnName: "Number", scoreColumnName: "Score");
                ConsoleHelper.PrintMulticlassClassificationMetrics(bestRun.TrainerName, metrics);

                // STEP 5: Save/persist the trained model to a .ZIP file
                mlContext.Model.Save(trainedModel, trainData.Schema, ModelPath);

                Console.WriteLine("The model is saved to {0}", ModelPath);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }