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; }
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); }