summaryrefslogtreecommitdiff
path: root/RhSolutions.ML.Lib
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2024-01-12 00:00:57 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2024-01-12 00:00:57 +0300
commitac86f7ff2856c0d97798e1dc2974a02d63269a51 (patch)
tree2236487a3c9517e7ffb3b338233d8ac3d2a40f7d /RhSolutions.ML.Lib
parent327251d5e8ceb3e1c09ea8b3b2439be76136d1fd (diff)
Add Evaluate method
Diffstat (limited to 'RhSolutions.ML.Lib')
-rw-r--r--RhSolutions.ML.Lib/RhSolutionsMLBuilder.cs14
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")