import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import AgglomerativeClustering
def AgglomerativeTest(n_clusters):
assert 1 <= n_clusters <= 4
predictResult = AgglomerativeClustering(n_clusters=n_clusters, affinity='euclidean',
linkage='ward').fit_predict(data)
# 定义绘制散点图时使用的颜色和散点符号
colors = 'rgby'
markers = 'o*v+'
# 依次使用不同的颜色和符号绘制每个类的散点图
for i in range(n_clusters):
subData = data[predictResult==i]
plt.scatter(subData[:,0], subData[:,1], c=colors[i], marker=markers[i], s=40)
plt.show()
# 生成随机数据,200个点,分成4类,返回样本及标签
data, labels = make_blobs(n_samples=200, centers=4)
print(data)
AgglomerativeTest(3)
AgglomerativeTest(4)