【发布时间】:2016-10-04 15:24:57
【问题描述】:
这是我第一次尝试机器学习。我正在使用 yelp 数据集编写一个非常简单的推荐引擎。它是用 python 编写的,使用 pandas 和 numpy 库进行(数据处理)。我已经首先将数据范围缩小到餐厅(百万),然后只限于拉斯维加斯的餐厅(千),然后只有 3.5 星或更高且评论超过 50 条的餐厅(数百条)。此外,我将用户范围缩小到仅评论了至少 20% 餐厅的用户。最后,我得到了一个评分矩阵,其中包含 1800 家餐厅的 100 名用户。
但是,我觉得提供(相对)有用的建议仍然很少。目标是利用余弦相似度,使用基于项目-项目协同过滤计算向量距离。
我一直在阅读有关处理稀疏矩阵的文章,而共识似乎是使用矩阵分解。然而,这些读数中的大多数似乎都处理当前用户,并使用矩阵分解作为驱动当前用户推荐的算法,同时解决作为副产品的稀疏问题。我的理解在这里正确吗?我正在寻找的是一种首先解决稀疏问题然后使用余弦向量距离来指导推荐的方法。
如果分解实际上是要走的路:我应该使用什么sklearn.decomposition 方法,即 PCA、SVD、NMF?
[[ 3, 0, 0, ..., 0, 0, 0],
[ 0, 0, 0, ..., 0, 0, 0],
[ 0, 0, 0, ..., 0, 4, 3],
...
[ 1, 0, 0, ..., 0, 0, 0],
[ 0, 0, 0, ..., 0, 0, 2],
[ 0, 0, 5, ..., 0, 1, 3]]
(100 位用户 X 1800 家餐厅)
【问题讨论】:
标签: python matrix scikit-learn recommendation-engine yelp