【问题标题】:PCA vs TSNE vs MDS (review cluster)PCA vs TSNE vs MDS(审查集群)
【发布时间】:2019-08-04 04:31:31
【问题描述】:

我有一个来自 Movielens 评论的众所周知的数据集,我希望对用户进行聚类以获得电影品味。

我从这样的数据集开始:

idUser iDmovies review
1       2       1
1       10      2
5       5       5
5       10      2

最初我创建了一个包含用户 x 电影的矩阵,并以这种方式填充评论值:

       movieid
idUser  2    5   10
    1   1    0    2               
    5   0    5    2 

我的矩阵非常稀疏,所以我应用矩阵分解来填充值,现在我以这种方式拥有一个矩阵(只是一个示例):

          movieid
    idUser  2    5   10
        1   1    -2    2               
        5   -2    5    2 

知道在这个数据集上应用 PCA o TSNE 或 Kmeans 有意义吗?还是最好申请MDS?

我尝试在此数据集上应用 PCA,结果如下:

我认为这真的很糟糕。 之后我尝试按照一个教程在 PCA 上应用 TSNE (https://medium.com/@gabrieltseng/clustering-and-collaborative-filtering-visualizing-clusters-using-t-sne-f9718e7491e6) 在这个链接

我做了这个:

我的问题是: 我认为这不是很好的集群方式。对你们来说,这是有意义的集群吗?用全矩阵做这件事有意义吗?

我在 Iris 数据集中看到了示例,并且将创建集群,因为 Iris 的值具有非常相似的值。 在我的情况下,一个用户可以在一个组件上为 5,而在另一个组件上为 -5(太远)......所以对我来说这可能没有意义......对吧?

为了澄清,我希望添加一个我的矩阵审查屏幕:

我真的很喜欢这个..

【问题讨论】:

    标签: python cluster-analysis pca svd dimensionality-reduction


    【解决方案1】:

    在诸如movielense数据之类的数据集上,聚类通常不会像人们天真期望的那样起作用。

    1. 并非所有用户都属于具有“典型”兴趣的集群
    2. 许多用户会有多种兴趣
    3. 变量的重要性各不相同
    4. 缺失值不对应于 0 评级

    这就是为什么对于推荐系统您使用例如基于因子和基于项集的方法。

    【讨论】:

    • 感谢您的回复。我构造了一个矩阵分解来填充“缺失值”。这种方式似乎可行,因为对于喜欢“星球大战”的用户建议看其他类似的电影。顺便说一句,我希望在图中可视化,所以在我应用 PCA 和 T-SNE 之后,只是因为我认为,我拥有所有指标,我尝试计算距离
    猜你喜欢
    • 2014-06-27
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多