【发布时间】:2020-05-13 00:21:52
【问题描述】:
我有 3 个用于多类分类的用例,它们的 InputModel 都不同,因为它们具有不同的列和数据结构。如何重构下面的方法,以便它可以预测任何类型的 InputModel,而无需复制和重复该方法 3 次以满足 3 种不同的输入数据结构?
private List<MulticlassClassificationPrediction> Predict(string modelName, string testDataPath)
{
PredictionEngine<InputModel, MulticlassClassificationPrediction> predEngine;
predEngine = _predEnginePool.GetPredictionEngine(modelName: modelName);
IDataView dataView = _mlContext.Data.LoadFromTextFile<InputModel>(
path: testDataPath,
hasHeader: true,
separatorChar: ',',
allowQuoting: true,
allowSparse: false);
// Use first line of dataset as model input
// You can replace this with new test data (hardcoded or from end-user application)
List<InputModel> testDataList = _mlContext.Data.CreateEnumerable<InputModel>(dataView, false).ToList();
List<MulticlassClassificationPrediction> predictionList = new List<MulticlassClassificationPrediction>();
foreach (InputModel testData in testDataList)
{
MulticlassClassificationPrediction result = predEngine.Predict(testData);
predictionList.Add(result);
}
return predictionList;
}
【问题讨论】:
标签: ml.net