# 这三行代码使编译器支持绘图功能:
import sys
import matplotlib
matplotlib.use('Agg')
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering
# 定义样本数据点坐标:
x = [4, 5, 10, 4, 3, 11, 14, 6, 10, 12]
y = [21, 19, 24, 17, 16, 25, 24, 22, 21, 21]
# 组合数据点:
data = list(zip(x, y))
# 创建层次聚类模型(2 个簇,欧式距离,ward 连接方式):
hierarchical_cluster = AgglomerativeClustering(
n_clusters=2, # 聚类数量
affinity='euclidean', # 距离度量方式
linkage='ward' # 连接方式
)
# 执行聚类并获取标签:
labels = hierarchical_cluster.fit_predict(data)
# 绘制聚类结果(按簇标签着色):
plt.scatter(x, y, c=labels)
plt.show()
# 这两行代码使编译器能够输出图形:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()