相比于k-means算法,层次聚类算法无需人为的划分k值,也就是分为几个簇。而是通过计算各点间的距离,最后再将其划分为一类。如此循环迭代,最终实现无监督学习的自行分类。具有很好的识别性以及科学性,该算法中.本文只对读者进行思想介绍以及核心代码实现,需读者自己动手做。发挥自我主观能动性,加油吧!
AgglomerativeClustering(linkage='ward', n_clusters=2)
链接算法 ward,聚2类。
linkage:一个字符串,用于指定链接算法
—— ‘ward’:单链接single-linkage,采用dmindmin。
—— ‘complete’:全链接complete-linkage算法,采用dmaxdmax。
—— ‘average’:均连接average-linkage算法,采用davgdavg。
single 是算两者之间的最短距离,再将其分为一类。也就是在迭代之后的一簇中肯定有多个点的,我们进行下次分类的时候,将该点与簇之间算距离,取其与簇之间的最短距离,作为它这次分类的依据。到底将其分为哪一类,我们按距离最短的算。
complete 是该点与簇之间中簇内部与其距离最长的点,我们将其去分为一类。
average 是该点与簇之间的所有点取平均值,再进其进行比较,再通过进行分类
# 部分代码 # 作者未提供完整代码以及数据集,将其层次聚类核心代码进行编辑 from sklearn.cluster import AgglomerativeClustering s=AgglomerativeClustering('ward') #看自己想选什么参数做依据吧 s.fit_predict(数据集)