【发布时间】:2017-03-23 13:58:50
【问题描述】:
我想通过 pyspark 使用网页访问数据在 spark 2.1.0 上运行 spark.ml.recommendation als。我有包含用户 ID、页面 ID 和计数的维基百科数据。数据由 100000 行组成。以下是我的数据规格:
+-------+------------------+
|summary| user-id|
+-------+------------------+
| count| 100000|
| mean| 24542.75736|
| stddev|21848.264794583836|
| min| 0|
| max| 68488|
+-------+------------------+
+-------+------------------+
|summary| page-id|
+-------+------------------+
| count| 100000|
| mean| 257.55426|
| stddev|265.56649346534084|
| min| 0|
| max| 1317|
+-------+------------------+
+-------+------------------+
|summary| cnt|
+-------+------------------+
| count| 100000|
| mean| 412.4471|
| stddev|4269.7557065972205|
| min| 11.0|
| max| 309268.0|
+-------+------------------+
我已将数据 80/20 分别用于训练和测试,并尝试在我的数据上运行 als,但结果为 NaN。然后我找到了一个解决方法并让它工作。之后,我尝试根据我的数据计算 rmse,结果在 3000-4000 左右,并带有一些参数组合。
我已经阅读了一些书籍、文章并观看了一些视频教程,但其中许多内容与我所看到的基于评级的 movielens 数据集有关,并且对我的问题没有多大帮助。我了解到我的案例被称为 implicit-feedback 并且是我在书中遇到的唯一示例 last.fm 示例。但是我无法得到太多帮助。
所以我的问题是:
1) 如何在一个数据集上处理 als 推荐,该数据集的评级列的范围比 movielens 中范围在 1-5 之间的范围大得多?
我的在 11 到 309628 之间。
2) rmse 是隐式反馈中决定模型好坏的重要指标吗?
3) 在尝试在其上运行 spark-ml als 时处理此类数据的任何其他建议?
【问题讨论】:
标签: apache-spark pyspark recommendation-engine apache-spark-ml collaborative-filtering