python 两阶段聚类_使用Python进行层次聚类

使用 scipy.cluster.hierarchy.linkage进行层次聚类

from scipy.cluster.hierarchy import dendrogram, linkage,fcluster

from matplotlib import pyplot as plt

X = [[i] for i in [0.5, 1.5, 4.5]]

# X = [[1,2],[3,2],[4,4],[1,2],[1,3]]

Z = linkage(X, method= 'single')

dn = dendrogram(Z, labels = ['first', 'second', 'third'])

plt.show()

print(Z)

进行层次聚类的数据样本有n个,那么linkage返回的矩阵的shape为(n-1, 4)

这个linkage矩阵的行表示每次合并的两个簇,每行的四列分别表示:前两列表示这次合并中所用到的两个簇的标号,第三列表示这两个簇之间的距离,第四列表示这两个簇合并后所包含的样本的个数。

使用sklearn.cluster.AgglomerativeClustering进行层次聚类

from sklearn.cluster import AgglomerativeClustering

from scipy.cluster.hierarchy import dendrogram

import matplotlib.pyplot as plt

import numpy as np

X = [[i] for i in [0.5, 1.5, 4.5]]

ac = AgglomerativeClustering()

ac.fit(X)

print(ac.children_)

children_属性的shape为(n_samples-1, 2),等价于linkage矩阵的前两列。

推荐用第一种方法进行层次聚类以及可视化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值