相比于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(数据集)
|