我正在尝试使用一些随机测试数据来测试ML.net框架。我的数据存在一个DepartmentId(1-25)和一个Body(字符串)。我想让我的机器预测部门应该分配尸体(例如在Zendesk之类的票务系统中)。
使用以下代码,我收到一个错误:
ArgumentOutOfRangeException:得分列缺失
我不确定为什么说Score
列丢失了,因为它出现在我的预测班上。
这是我训练模型和课程的设置。
主要
var pipeline = new LearningPipeline();
pipeline.Add(new TextLoader(_dataPath).CreateFrom<DepartmentData>(userHeader: true, seperator: ','));
pipeline.Add(new TextFeaturizer("Features", "Body"));
pipeline.Add(new Dictionarizer("Label"));
pipeline.Add(new StochasticDualCoordinateAscentClassifier());
pipeline.Add(new PredictedLabelColumnOriginalValueConverter() { PredictedLabelColumn = "PredictedLabel" });
var model = pipeline.Train<DepartmentData, DepartmentPrediction>();
部门数据和部门预测
public class DepartmentData
{
[Column(ordinal: "0", name: "Label")]
public float Department;
[Column(ordinal: "1")]
public string Body;
}
public class DepartmentPrediction
{
[ColumnName("PredictedLabel")]
public float Department;
[ColumnName("Score")]
public float[] Score;
}
示例数据
Department, Body
1, Hello. 4 weeks ago I requested a replacement keycap for my keyboard. I still ahvent received the keycap. Perhaps you can confirm that it has been shipped?
13, I seem to have some problems when paying for you new mouse XZ-250 I'm being told that my card is not valid?
1, I just received the package I bought from you but I'm most definetly not satisfied with the shipment. The box was bended and broken when it received as well as the GPU inside. I demand that you ship a new one to me without charge. I've attached a few images of the box and the GPU here.
/* etc... */
评估
var testData = new TextLoader(_testDataPath).CreateFrom<DepartmentData>(useHeader: true, seperator: ',');
var evaluator = new ClassificationEvaluator();
var metrics = evaluator.Evaluate(model, testData);