Scikit learn 聚集聚集scikit学习连通性

Scikit learn 聚集聚集scikit学习连通性,scikit-learn,hierarchical-clustering,unsupervised-learning,Scikit Learn,Hierarchical Clustering,Unsupervised Learning,调用凝聚聚类后,我希望数据分为两个聚类(0-3)和(4-7),即标签\=[0,0,0,1,1,1,1],但是标签列表是[0,0,0,1,0,0,0,1] 我的代码如下s=aggregativeclustering(affinity='precomputed',n_clusters=2,linkage='complete) s、 安装(x) 代码是否包含任何错误?为什么群集不符合预期错误在于如何指定连接矩阵。根据您的描述,我假设您的矩阵表示点之间的链接,[0/1]表示[无链接/链接]。然而,该算法

调用凝聚聚类后,我希望数据分为两个聚类(0-3)和(4-7),即标签\=[0,0,0,1,1,1,1],但是标签列表是[0,0,0,1,0,0,0,1]

我的代码如下
s=aggregativeclustering(affinity='precomputed',n_clusters=2,linkage='complete)
s、 安装(x)


代码是否包含任何错误?为什么群集不符合预期

错误在于如何指定连接矩阵。根据您的描述,我假设您的矩阵表示点之间的链接,[0/1]表示[无链接/链接]。然而,该算法将其视为成对距离的矩阵,这就是为什么会得到意外的结果

你可以通过简单的变换将你的亲和矩阵转换成一种距离矩阵;e、 g

I have a matrix x=  
[[0,1,1,1,0,0,0,0],
[1,0,1,1,0,0,0,0],
[1,1,0,1,0,0,0,0],
[1,1,1,0,0,0,0,0],
[0,0,0,0,0,1,1,1],
[0,0,0,0,1,0,1,1],
[0,0,0,0,1,1,0,1],
[0,0,0,0,1,1,1,0],]

更好的做法是对用于生成此关联矩阵的数据使用实际距离度量。

在仔细研究了几个示例后,我觉得,
凝聚聚类
将“关联”矩阵解释为距离矩阵,尽管我在任何地方都找不到指定的距离矩阵。这意味着应该切换0和1

也只考虑矩阵的上三角部分(其他都是冗余的)。< /P> 我认为将

x
定义为:

>>> x = np.array(x)
>>> s.fit(np.exp(-x))
>>> s.labels_
array([1, 1, 1, 1, 0, 0, 0, 0])

将为您提供预期结果。

是样本矩阵还是连通矩阵?如果删除关联参数,将获得所需的结果。
x=  
[[0,0,0,0,1,1,1,1],
[ 0,0,0,0,1,1,1,1],
[ 0,0,0,0,1,1,1,1],
[ 0,0,0,0,1,1,1,1],
[ 0,0,0,0,0,0,0,0],
[ 0,0,0,0,0,0,0,0],
[ 0,0,0,0,0,0,0,0],
[ 0,0,0,0,0,0,0,0],]