【发布时间】:2017-11-23 10:58:53
【问题描述】:
我正在尝试对大型稀疏观察矩阵执行层次聚类。该矩阵表示许多用户的电影评分。 我的目标是根据他们的电影偏好对相似的用户进行聚类。但是,我需要一个树状图,而不是单一的划分。为了做到这一点,我尝试使用 SciPy:
R = dok_matrix((nrows, ncols), dtype=np.float32)
for user in ratings:
for item in ratings[user]:
R[item, user] = ratings[user][item]
Z = hierarchy.linkage(R.transpose().toarray(), method='ward')
这适用于小型数据集:
但是,我(显然)在扩展时遇到了内存问题。 如果有什么方法可以将 sparse 矩阵提供给算法?
【问题讨论】:
-
您使用哪个包进行集群?正是该代码及其文档将说明它是否可以与稀疏矩阵一起使用。一些
scikit-learn函数适用于稀疏,但不是全部。 -
正如我所说,我使用 SciPy。该方法的文档没有说明稀疏矩阵。 Scikit 不允许以简单的方式生成树状图(如果我错了,请纠正我)。
-
你使用的是一维压缩距离矩阵吗?
-
不,我使用观察矩阵,而不是距离。
-
Scipy 的分层链接也接受一维压缩距离矩阵。
标签: python scipy hierarchical-clustering