为啥 ML.NET 矩阵分解使用回归评估?
Posted
技术标签:
【中文标题】为啥 ML.NET 矩阵分解使用回归评估?【英文标题】:Why ML.NET Matrix Factorization uses a regression evaluation?为什么 ML.NET 矩阵分解使用回归评估? 【发布时间】:2019-10-19 12:57:29 【问题描述】:The example of ML.NET for Matrix Factorization here 没有用于测试模型的评估方法。这是一个one-class matrix factorization
示例,因为它的trainer 选项设置为options.LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass;
我进一步搜索发现another matrix factorization example。虽然不是one-class matrixfactorization
,但这次有评测。然而,评估方法是针对回归模型的。 var metrics = mlcontext.Regression.Evaluate(prediction, labelColumnName: "Label", scoreColumnName: "Score");
矩阵分解不是一类二元分类吗?对模型使用回归评估是否有效?实际上,我在 ML.NET 的 community chat 上提出了几次这个问题,但到目前为止我还没有得到任何答案。任何 cmets 或答案将不胜感激。
【问题讨论】:
【参考方案1】:如果您查看line 55,第二个示例试图解决的问题是推荐。
用于评估的指标与回归指标相同,这就是使用它们的原因。
有关矩阵分解的更多示例,您可以查看文档:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.matrixfactorizationtrainer?view=ml-dotnet-preview
https://github.com/dotnet/machinelearning/blob/master/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation
【讨论】:
这两个例子是推荐模型。是的,指标是回归模型的,所以它有RMS
,Rsquared
等等。我要问的是为什么他们在推荐模型上使用Regression
评估方法,而推荐是binary classification
的类(我不确定这是不是真的)
它可以是二进制分类,如果你的标签是二进制的(喜欢/不喜欢),或者它可以是回归,如果你的标签是对产品评分的星数。 quora.com/…以上是关于为啥 ML.NET 矩阵分解使用回归评估?的主要内容,如果未能解决你的问题,请参考以下文章