题目描述
实现k-means算法,完成以下要求:
实现k=2时,调用库函数并训练模型
输出聚类中心的坐标、各点所属聚类中心的位置以及代价
画出样本数据及聚类中心的位置
实现肘部法则,并画出肘部法则曲线
数据如下:
[[2,5],[4,6],[3,1],[6,4],[7,2],[8,4],[2,3],[3,1],[5,7],[6,9]
,[12,16],[10,11],[15,19],[16,12],[11,15]
,[10,14],[19,11],[17,14],[16,11],[13,19]]
题目分析
第一步:导入数据,数据预处理
第二步:肘部法确定聚类中心
第三步:调库建立模型
第四步:可视化图像处理
代码及注释如下
# 导入科学计算包,多用于矩阵的计算
import numpy as np
# 导入画图工具
from matplotlib import pyplot as plt
# 导入sklearn中封装的KMeans算法
from sklearn.cluster import KMeans
# 设置中文字体和负号正确显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 读取数据
X = np.array([[2,5],[4,6],[3,1],[6,4],[7,2],[8,4],[2,3],[3,1],[5,7],[6,9],[12,16],[10,11],[15,19],[16,12],[11,15],[10,14],