|
Ward策略:让所有类簇中的方差最小化。
Maximum策略:也叫completed linkage(全连接策略),力求将类簇之间的距离最大值最小化。
Average linkage策略:力求将簇之间的距离的平均值最小化
single单次使用所有观测之间的最小距离两组中的一组。
AgglomerativeClustering中linkage参数为 [‘ward’, ‘complete’, ‘average’,‘single’]**
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering
#从磁盘读取城市经纬度数据
X = []
with open('../K_means/data.txt') as f:
for v in f:
X.append([float(v.split(',')[2]), float(v.split(',')[3])])
#转换成numpy array
X = np.array(X)
#类簇的数量
n_clusters = 5
#现在把数据和对应的分类数放入聚类函数中进行聚类,使用方差最小化的方法'ward'
cls = AgglomerativeClustering(linkage='ward', n_clusters=n_clusters).fit(X)
#X中每项所属分类的一个列表
cls.labels_ # X对应index列表
#画图
markers = ['^', 'x', 'o', '*', '+']
for i in range(n_clusters):
members = cls.labels_ == i
plt.scatter(X[members, 0], X[members, 1], s=60, marker=markers[i], c='b', alpha=0.5)
plt.title('')
plt.show()
|
|