我有数据集是这样的购买历史:
+---+-----------+---------+
|usn| page_id| click|
+---+-----------+---------+
| 11| 9000001012| 10|
|169| 2010008901| 100|
|169| 9000001007| 4|
|169| 2010788901| 1|
|169| 8750001007| 4|
|169| 9003601012| 10|
|169| 9000001007| 4|
|613| 9000050601| 8|
|613| 9000011875| 3|
|613| 2010010401| 6|
|613| 9000001007| 4|
|613| 2010008801| 1|
|836| 9000050601| 20|
|916| 9000050601| 10|
|916| 9000562601| 30|
|916| 9000001007| 4|
|916| 9000001012| 10|
+---+-----------+---------+
我已经阅读过Spark(http://spark.apache.org/docs/latest/ml-collaborative-filtering.html)中的文档,但我不知道如何在此问题中使用Collaborative Filtering for Implicit Preference。
现在我想将隐含首选项的ALS应用于此数据集。 怎么做?我可以将此数据集应用于显式数据吗?
请帮助我使用它并给我一个关于Implicit Preference的示例代码python如果你有
答案 0 :(得分:0)
我的回答有点晚了,但主要的事情是按“单击”缩放值。就我而言:
from pyspark.sql import Window
ww = Window.partitionBy("usn")
scaled_score = (
0.00001 + 10*(col("click") - min("click").over(ww)) / (max("click").over(ww) - min("click").over(ww))
).cast(DecimalType(7, 5))
为访问量最大的page_id创建策略后,请记住要建模的值应反映客户的口味