主要内容
聚类分析综述
均值聚类
分层聚类
基于密度的聚类
其他群集方法
聚类评估
总结
三.分层聚类算法原理
层次聚类(Hierarchical Clustering )是指以某种方式进行层次分类直到满足某些条件为止。 集群主要分为两大类。
(1)凝聚)自下而上。 首先将每个对象作为一个集群,然后将这些集群组合起来,作为越来越大的集群,直到所有对象都在一个集群中或者满足某个结束条件。
)2)分裂)自上而下。 首先,将所有对象放在同一个群集中,然后逐渐细分为较小的群集,直到每个对象成为一个群集或达到某个终止条件。
簇间的距离度量
1 .最短距离法(最大相似度)
最短距离定义为两个类中最接近的两个对象之间的距离是簇间距离。
2 .最长距离法(最小相似度)
最长距离定义为两个类中最远的图像对象之间的距离是集群间距离。
3 .班级平均法
计算两种类型中任意两个对象间的距离的平均值作为簇间距离
4 .中心法
将两种中心点的距离定义为簇间距离。
分裂层次聚类
分裂的层次聚类方法使用自上而下的策略将对象分类为层次结构。 在每一步中,从包含所有对象的群集划分一个群集,直到只剩下一个群集或满足用户指定的群集数。
热夜算法是一种典型的层次分裂聚类算法。
热夜算法使用了以下两个定义。
(1)集群直径)计算一个集群中任意两个据点之间的欧式距离,选择距离中的最大值作为集群直径。
)2)平均差异度)两个据点之间的平均距离。
算法说明:
凝聚层次聚类
的层次聚类方法采用自下而上的策略将对象组织成层次结构。 首先,将每个对象作为一个群集,然后在每个步骤中合并两个最相似的群集。 AGNES算法是一种典型的聚集层次聚类,它将每个对象作为一个聚类,并按照集成准则逐步集成这些聚类。 两个集群之间的相似度由这两个不同集群中最近的数据点的相似度来确定。 的合并过程将重复直到所有对象最终满足退出条件设置的群集数。
算法说明:
层次聚类应用
Python中分层聚类的函数是A gglomerativeClustering (),最重要的参数是聚类数1.n_clusters这3个
2.affinity定义样本距离
3.linkage是类间距离的定义,有三种可能的值:
ward :组之间的距离等于两种对象之间的最小距离
平均:组之间的距离等于两组对象之间的平均距离
complete :组之间的距离等于两组对象之间的最大距离
Python分层聚类的实现。
# froms klearn.datasets.samples _ generatorimportmake _ blobsfromsklearn.datasetsimportmake _ blobsfromsklearn.clus ttts 生成ltfromitertoolsimportcycle # python附带的迭代器模块#随机数据的中心centers=[ 1,1 ]、[-1,-1] -1 )生成的数据数n _ samples=lables _ true=make _ blobs (n _ samples=n _ samples,centers,centers random_state=0) #分层聚类函数ll ' complete ' ] n _ clusters _=3ac=agglomerativeclusterrage n _ clusters=n _ clusters _ ) #训练数据AC.fit(x )数据绘图plt.clf ) ) colors Colin zip (range (n _ clusters _,colors ) : # )取决于lables的值是否等于k, False的数组my_members=lables==k#x (重构的0 ) my_members的对应位置为True的值的横坐标PLT.plot(X[my_members,0],x [ my ]