我正在做一个有关层次集群的项目,并且正在编写一些代码,在其中我可以使用“亲和力”和“链接”的每种可能组合来执行AgglomerativeClustering,这是可以设置的两个参数。当我尝试使数据适合算法时,就会出现问题。该数据集具有以下形状(1300,8),并使用'index_col = 0'进行了索引编制,以摆脱无用的第一列(在删除无用的列后,该列的总数为8)
如果单独运行,for链接的for循环实际上可以正常工作,该问题与亲和力有关。
dataset = #csv file
aff = ["l1", "l2", "manhattan", "cosine", "precomputed", "euclidean"]
link = ["complete", "average", "single"]
for a in aff:
for l in link:
ds=dataset
ac_tune=AgglomerativeClustering(n_clusters=5, affinity=a, linkage=l)
ac_tune.fit(ds)
错误如下:
IndexError: index 8 is out of bounds for axis 1 with size 8
答案 0 :(得分:0)
当您尝试执行“预计算”亲和力时,它将失败。对于此选项,数据集必须是距离矩阵而不是原始数据。
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html