Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning Ml.NET-基于某些属性的预测部门_Machine Learning_.net Core_Ml.net - Fatal编程技术网

Machine learning Ml.NET-基于某些属性的预测部门

Machine learning Ml.NET-基于某些属性的预测部门,machine-learning,.net-core,ml.net,Machine Learning,.net Core,Ml.net,我试图预测当客户写支持单时,哪个部门应该收到新的通知单。支持票证将始终包括: 消息:票据的实际消息 主题:票据的主题 标题:和可选标题,用于进一步描述问题 到目前为止,票证的分配是手动的,但我正在尝试创建一个模型,可以预测该票证应分配给的部门。我的培训数据包含这三个变量以及部门名称 支持 开发 … 我的训练数据由169k行组成,训练模型根本没有问题。我得到了一些很好的指标。当我试图从某种票证预测时,问题就来了。我得到的不是部门名称,而是十进制(2.5xx)。我不确定这是哪里出了问题。我从

我试图预测当客户写支持单时,哪个部门应该收到新的通知单。支持票证将始终包括:

  • 消息
    :票据的实际消息
  • 主题
    :票据的主题
  • 标题
    :和可选标题,用于进一步描述问题
到目前为止,票证的分配是手动的,但我正在尝试创建一个模型,可以预测该票证应分配给的部门。我的培训数据包含这三个变量以及部门名称

  • 支持
  • 开发
我的训练数据由169k行组成,训练模型根本没有问题。我得到了一些很好的指标。当我试图从某种票证预测时,问题就来了。我得到的不是部门名称,而是十进制(
2.5xx
)。我不确定这是哪里出了问题。我从以下Microsoft指南中获得了灵感:

加载训练数据

var dataView = mlContext.Data.LoadFromTextFile<Message>(dataPath, hasHeader: true, allowQuoting: true);
预测部门名称

var predictionEngine = mlContext.Model.CreatePredictionEngine<Message, PredictedDepartment>(model);

var message = new Message()
{
       Message = @"...", // removed for brevity
       Subject = "Other questions",
       Header = "Internet connection"
};

var prediction = predictionEngine.Predict(message);
Console.WriteLine($"Prediction result: {prediction.Name}"); // Department name
有人能解释一下发生了什么,为什么我没有得到一些字符串值,而是得到一些十进制数?

我发现了我的问题

这和我的管道或者我训练模型的方式无关。我的管道中的
MapKeyToValue
方法也没有问题。我只是对我的数据集有一个问题

我的CSV是逗号分隔的,并用于字符串的引号,因为我的
Message
属性是多行的。我没有尝试支持这一点,而是将数据的导出更改为删除换行符,而不是引号字符串。我还改为制表符分隔符,而不是逗号分隔符


该模型现在似乎可以工作了,我得到了一个很好的预测。

您是否必须执行此处所做的操作,并将其反特征化为字符串?可能是您的
MapKeyToValue
setup?@LewisTaylor,但如前所述,我使用的另一个教程没有使用您提供的示例中的方法。所以我希望我的设置也能以同样的方式工作。它也可能是
MapKeyToValue
设置,但我不知道如何正确设置它。基本上我不知道为什么我会得到这样的结果,对此的任何解释都可能在某种意义上提供一个解决方案。
var predictionEngine = mlContext.Model.CreatePredictionEngine<Message, PredictedDepartment>(model);

var message = new Message()
{
       Message = @"...", // removed for brevity
       Subject = "Other questions",
       Header = "Internet connection"
};

var prediction = predictionEngine.Predict(message);
Console.WriteLine($"Prediction result: {prediction.Name}"); // Department name
class Message
{
    [LoadColumn(2)]
    public string Message { get; set; }

    [LoadColumn(0)]
    public string Subject { get; set; }

    [LoadColumn(1)]
    public string Header { get; set; }

    [LoadColumn(3)]
    public string Name { get; set; } // Department name
}

class PredictedDepartment
{
    [ColumnName("PredictedLabel")]
    public string Name { get; set; } // Department name
}