层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别的相似度类创建一个有层次的嵌套的树。
层次聚类分为自底向上和自顶向下两种,这里仅采用scikit-learn
中自底向上层次聚类法。
以下为看图说话~ 感谢 Laugh’s blog借用下说明图
把所有数据全部分为不同组
将相邻最近的两组归为同一组
重复第二步,直到合并成为一个组,聚类结束
聚类过程的散点图变化一下,就是我们要的层次图
import numpy as np
from sklearn.cluster import AgglomerativeClustering
data = np.random.rand(100, 3) #生成一个随机数据,样本大小为100, 特征数为3
#假如我要构造一个聚类数为3的聚类器
estimator = AgglomerativeClustering(n_clusters=3)#构造聚类器
estimator.fit(data)
print(estimator.labels_)#获取聚类标签
AgglomerativeClustering(affinity='euclidean', compute_full_tree='auto',
connectivity=None, linkage='ward',
memory=None, n_clusters=2,
pooling_func='deprecated')
affinity
: 亲和力度量,有 euclidean(欧式距离), l1(L1 范数), l2(L2 范数)compute_full_tree
: 通常当训练了n_clusters后,训练过程就会停止,但是如果compute_full_tree=True,则会继续训练从而生成一颗完整的树connectivity
: 一个数组或者可调用对象或者None,用于指定连接矩阵linkage
: 连接方法:ward
(单连接), complete
(全连接), average
(平均连接)可选memory
: 用于缓存输出的结果,默认为不缓存n_clusters
: 表示最终要查找类别的数量,例如上面的 2 类pooling_func
: 一个可调用对象,它的输入是一组特征的值,输出是一个数返回值
labels
: 每个样本的簇标记n_leaves_
: 分层树的叶节点数量n_components
: 连接图中连通分量的估计值children
: 一个数组,给出了每个非节点数量扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有