Spark ALS 推荐系统预测值大于 1
Spark ALS recommendation system have value prediction greater than 1
我在 Spark(推荐系统算法)中使用 ALS 算法(implicitPrefs = True)。通常,在 运行 这个算法之后,值预测必须是从 0 到 1。但是我收到的值大于 1
"usn" : 72164,
"recommendations" : [
{
"item_code" : "C1346",
"rating" : 0.756096363067627
},
{
"item_code" : "C0117",
"rating" : 0.966064214706421
},
{
"item_code" : "I0009",
"rating" : 1.00000607967377
},
{
"item_code" : "C0102",
"rating" : 0.974934458732605
},
{
"item_code" : "I0853",
"rating" : 1.03272235393524
},
{
"item_code" : "C0103",
"rating" : 0.928574025630951
}
]
我不明白为什么或它的评分值大于 1("rating" : 1.00000607967377 和 "rating" : 1.03272235393524)
有些问题类似但我还是不明白:MLLib spark -ALStrainImplicit value more than 1
谁能帮我解释一下异常值
别担心! ALS
没有错。
然而,ALS 返回的预测分数与 Apache Spark 的隐式反馈并未标准化以适应 [0,1],如您所见。有时您甚至可能会得到负值。 (更多关于 。)
ALS
使用随机梯度下降和近似计算(并重新计算)每一步的用户和项目因素,以最小化成本函数,使其能够扩展。
事实上,标准化这些分数并不重要。这样做的原因实际上是这些分数本身并没有多大意义。
您不能对这些分数使用每个示例 RMSE
来评估推荐的性能。如果您有兴趣评估此类推荐系统,我建议您阅读我在
上的回答
研究or/and行业中使用了许多技术来处理此类结果。例如,您可以使用 threshold
二值化 每个说法的预测。
我在 Spark(推荐系统算法)中使用 ALS 算法(implicitPrefs = True)。通常,在 运行 这个算法之后,值预测必须是从 0 到 1。但是我收到的值大于 1
"usn" : 72164,
"recommendations" : [
{
"item_code" : "C1346",
"rating" : 0.756096363067627
},
{
"item_code" : "C0117",
"rating" : 0.966064214706421
},
{
"item_code" : "I0009",
"rating" : 1.00000607967377
},
{
"item_code" : "C0102",
"rating" : 0.974934458732605
},
{
"item_code" : "I0853",
"rating" : 1.03272235393524
},
{
"item_code" : "C0103",
"rating" : 0.928574025630951
}
]
我不明白为什么或它的评分值大于 1("rating" : 1.00000607967377 和 "rating" : 1.03272235393524)
有些问题类似但我还是不明白:MLLib spark -ALStrainImplicit value more than 1
谁能帮我解释一下异常值
别担心! ALS
没有错。
然而,ALS 返回的预测分数与 Apache Spark 的隐式反馈并未标准化以适应 [0,1],如您所见。有时您甚至可能会得到负值。 (更多关于
ALS
使用随机梯度下降和近似计算(并重新计算)每一步的用户和项目因素,以最小化成本函数,使其能够扩展。
事实上,标准化这些分数并不重要。这样做的原因实际上是这些分数本身并没有多大意义。
您不能对这些分数使用每个示例 RMSE
来评估推荐的性能。如果您有兴趣评估此类推荐系统,我建议您阅读我在
研究or/and行业中使用了许多技术来处理此类结果。例如,您可以使用 threshold
二值化 每个说法的预测。