Scikit learn 亲和传播(sklearn)-奇怪的行为

Scikit learn 亲和传播(sklearn)-奇怪的行为,scikit-learn,cluster-analysis,Scikit Learn,Cluster Analysis,尝试对简单群集任务使用关联传播: from sklearn.cluster import AffinityPropagation c = [[0], [0], [0], [0], [0], [0], [0], [0]] af = AffinityPropagation (affinity = 'euclidean').fit (c) print (af.labels_) 我得到了一个奇怪的结果: [0110110] 我希望所有样本都在同一个集群中,如本例所示: c = [[0], [0], [

尝试对简单群集任务使用关联传播:

from sklearn.cluster import AffinityPropagation
c = [[0], [0], [0], [0], [0], [0], [0], [0]]
af = AffinityPropagation (affinity = 'euclidean').fit (c)
print (af.labels_)
我得到了一个奇怪的结果: [0110110]

我希望所有样本都在同一个集群中,如本例所示:

c = [[0], [0], [0]]
af = AffinityPropagation (affinity = 'euclidean').fit (c)
print (af.labels_)
这确实将所有样本放在同一个簇中: [0]

我错过了什么

谢谢

我相信这是因为您的问题本质上是不适定的(您将许多相同的点传递给了一个试图在不同点之间找到相似性的算法)。AffinityPropagation在幕后进行矩阵数学运算,而你的相似矩阵(全为零)已经严重退化。为了不出错,该算法对相似矩阵进行了实现,防止算法在遇到两个相同点时退出