diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2024-01-12 00:00:57 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2024-01-12 00:00:57 +0300 |
commit | ac86f7ff2856c0d97798e1dc2974a02d63269a51 (patch) | |
tree | 2236487a3c9517e7ffb3b338233d8ac3d2a40f7d /RhSolutions.ML.Lib | |
parent | 327251d5e8ceb3e1c09ea8b3b2439be76136d1fd (diff) |
Add Evaluate method
Diffstat (limited to 'RhSolutions.ML.Lib')
-rw-r--r-- | RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs b/RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs index c984a39..b1a7a66 100644 --- a/RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs +++ b/RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs @@ -1,21 +1,31 @@ using Microsoft.ML; +using Microsoft.ML.Data; namespace RhSolutions.ML.Lib; public class RhSolutionsMLBuilder { private static string _appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) ?? "."; + private static string _testDataPath = Path.Combine(_appPath, "..", "..", "..", "..", "TestData", "*"); private static MLContext _mlContext = new MLContext(seed: 0); + private static ITransformer? _trainedModel = null; public static void RebuildModel() { var _trainDataView = _mlContext.Data.LoadFromTextFile<Product>( Path.Combine(_appPath, "..", "..", "..", "..", "TrainData", "*"), hasHeader: false); var pipeline = ProcessData(); - BuildAndTrainModel(_trainDataView, pipeline, out ITransformer trainedModel); - SaveModelAsFile(_mlContext, _trainDataView.Schema, trainedModel); + BuildAndTrainModel(_trainDataView, pipeline, out ITransformer _trainedModel); + SaveModelAsFile(_mlContext, _trainDataView.Schema, _trainedModel); } + + public static MulticlassClassificationMetrics? EvaluateModel() + { + var testDataView = _mlContext.Data.LoadFromTextFile<Product>(_testDataPath, hasHeader: false, separatorChar: ';'); + return _mlContext.MulticlassClassification.Evaluate(_trainedModel?.Transform(testDataView)); + } + private static IEstimator<ITransformer> ProcessData() { var pipeline = _mlContext.Transforms.Conversion.MapValueToKey(inputColumnName: "Type", outputColumnName: "Label") |