scikit-learn之聚类算法之Hierarchical clustering(层次聚类)

算法流程

层次聚类分为分裂法和凝聚法,分裂法由上向下把大的类别(cluster)分割,凝聚法由下向上对小的类别进行聚合,但是一般用的比较多的是由下向上的凝聚法。
下面只介绍凝聚法,分裂法和凝聚法类似:
1、将样本集中的所有的样本点都当做一个独立的类簇;
2、计算两两类簇之间的距离(对应下面的 linkage 和 affinity 参数),找到距离最小的两个类簇 c1 和 c2;
3、合并类簇 c1 和 c2 为一个类簇;
重复 2、3 步骤,直到达到聚类的数目或者达到设定的条件(为两两类簇之间的距离设置一个阈值);
sklearn中的参数

[sklearn.cluster.AgglomerativeClustering]
n_clusters=2: int,聚类个数;
affinity=’euclidean’: string or callable,计算距离的方法,可以是 “euclidean”(即 “l2”,欧氏距离),“manhattan”(即 “l1”,曼哈顿距离,有利于稀疏特征或稀疏噪声,例如文本挖掘中使用稀有词的出现作为特征时,会出现许多 0), “cosine”(余弦距离), ‘precomputed’(预先计算的 affinity matrix),如果 linkage=“ward”,只能选择 “euclidean”,选择度量标准的方针是使得不同类样本

你可能感兴趣的:(机器学习)