我在玩这个kaggle kernel,它是关于运行文本聚类的k-means。我想通过自动识别聚类的最佳k值来扩展它。我正试图使用^{
作为第一步,我必须安装带有:conda install -c milesgranger gap-stat
的包
然后,我尝试了下面的代码
from gap_statistic import OptimalK
optimalK = OptimalK(parallel_backend='rust')
k, gapdf = optimalK(X, cluster_array=np.arange(1, 11))
最终导致了这个错误:
ValueError:此函数不支持稀疏矩阵。也许scipy.sparse.linalg函数中的一个会起作用<我知道我已经把最后一行代码改成了k, gapdf = optimalK(X.toarray(), cluster_array=np.arange(1, 11))
,因为optimalik函数将接受numpy数组
这个改变很好地处理了第一个错误。然后出现另一个错误:TypeError:'int'object is not iterable
猜测这是一个异常,未在optimalik中处理。尽管如此,我能做些什么来解决这个问题吗
k, gapdf = optimalK(X.toarray(), cluster_array=np.arange(1, 11))
与optimalik的源代码冲突,如ForceBru's Answer以下代码更改将删除错误。它是正确的等价于错误的片段
根据the source code,
OptimalK.__call__
返回整数(参见第88行):您的代码尝试使用
k, gapdf
将此整数解压为两个对象,如下所示:当然,这是不可能的
相关问题 更多 >
编程相关推荐