コード例 #1
0
        public static void DoTrainingLearning(string path)
        {
            Data.TransformPipeline.Append
            (
                ml_dotnet_context.Regression.Trainers
                .FastForest()
                //.FastTree()
                //.FastTreeTweedie()
                //.Gam()
                //.LbfgsPoissonRegression()
                //.OnlineGradientDescent()
                //.Sdca()
            );
            Data.TransformPipeline.Fit(Data.DataViewTraining);

            Microsoft.ML.Transforms.ColumnCopyingTransformer model_endomorphic = null;
            using
            (
                FileStream file_stream = new FileStream
                                         (
                    Data.ModelPathEndomorphic,
                    FileMode.Open,
                    FileAccess.Read,
                    FileShare.Read
                                         )
            )
            {
                ml_dotnet_context.Model.Save //<SomatotypeInputData>
                (
                    model_endomorphic,
                    Data.DataViewSchema,
                    file_stream
                );
            }

            //DumpData(data_view);

            return;
        }
コード例 #2
0
        public static ITransformer TrainLearnMLdotnet(MLContext mlContext, string path)
        {
            IDataView dataView = null;

            dataView = mlContext
                       .Data
                       .LoadFromTextFile <SomatotypeInputData>
                       (
                path,
                hasHeader: true,
                separatorChar: ','
                       );

            DataOperationsCatalog.TrainTestData dataSplit;

            dataSplit = mlContext.Data.TrainTestSplit(dataView, testFraction: 0.25);
            trainData = dataSplit.TrainSet;
            testData  = dataSplit.TestSet;

            IEnumerable <SomatotypeInputData> list = null;

            list = mlContext
                   .Data
                   .CreateEnumerable <SomatotypeInputData>(dataView, reuseRowObject: false)
                   .ToList();

            for (int i = 0; i < list.Count(); i++)
            {
                Console.WriteLine($" Id = {list.ElementAt(i).Id}");

                Console.WriteLine($"        EndomorphicComponent = {list.ElementAt(i).EndomorphicComponent}");
                Console.WriteLine($"        MesomorphicComponent = {list.ElementAt(i).MesomorphicComponent}");
                Console.WriteLine($"        EctomorphicComponent = {list.ElementAt(i).EctomorphicComponent}");
            }

            Microsoft.ML.Transforms.ColumnCopyingEstimator pipeline = null;

            pipeline = mlContext.Transforms.CopyColumns
                       (
                outputColumnName: "Label",
                inputColumnName: "EndomorphicComponent"
                       );

            pipeline.Append
            (
                mlContext.Transforms.Concatenate
                (
                    "Features",
                    "Height",
                    "Mass",
                    "BreadthHumerus",
                    "BreadthFemur",
                    "GirthArmUpper",
                    "GirthCalfStanding",
                    "SkinfoldSubscapular",
                    "SkinfoldTriceps",
                    "SkinfoldSupraspinale",
                    "SkinfoldMedialCalf"
                )
            );
            pipeline.Append(mlContext.Regression.Trainers.FastTree());

            Microsoft.ML.Transforms.ColumnCopyingTransformer model_1 = pipeline.Fit(trainData);

            return(model = model_1);
        }