预先计算的稀疏矩阵的聚类聚类

时间:2019-06-27 18:10:56

标签: python scikit-learn scipy sparse-matrix hierarchical-clustering

在我目前的方法中,我有

from scipy.sparse import csr_matrix
from sklearn.cluster import AgglomerativeClustering
import pandas as pd

s = pd.DataFrame([[0.8, 0. , 3. ],
       [1. , 1. , 2. ],
       [0.3, 3. , 4. ]], columns=['dist', 'v1', 'v2'])
sparseD = csr_matrix((1-s['dist'], (s['v1'].values, s['v2'].values)), shape=(N, N))
agg = AgglomerativeClustering(n_clusters=None, affinity='precomputed', linkage='complete', distance_threshold=.25)
agg.fit_predict(sparseD)

最后一行升起

TypeError: cannot take a sparse matrix.

如果我强制转换数据toarray,则代码可以工作并产生预期的输出,但是会占用大量内存,并且速度很慢:实际数据大小为61K x 61K。

我想知道是否还有另一个库(或scikit API)可以在预先计算的稀疏距离矩阵上进行相同的链接聚类-如果没有给定(element1,element2)对的入口,则该API不链接它们,其他所有内容都一样。

0 个答案:

没有答案