一、算法简介:
K-means算法是典型的基于距离的非层次聚类算法,以距离作为相似性的评价指标,认为两个对象的距离越近,其相似度就越大。
二、算法流程:
1.设置一个常数K作为类数,随机选取K个初始质心(K的取值方法以后会讲)。
2.重新计算K个聚类的质心(第一次时直接随机生成不需要计算),然后计算样本值和每个质心间的相似程度(如上文讲到,相似性评价指标为距离),将各个样本归类到其最接近的质心当中,(这样我们就“聚了”K个类了)。
3.与前次相比质心不发生变化。
三、取一些数据做例子
#代码(1)
import matplotlib.pyplot as plt
import numpy as np
x=np.array([1,3,6,3,2,1,0,7,9,8,7,0,6,2])
y=np.array([1,4,3,2,3,4,5,4,3,2,5,7,8,9])
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示符号标签
#上面两行是Python绘图中非常重要的语句,比较难记。此段代码虽然没有用到中文或符号,但建议同学每次绘图时写上这些,熟练就能加深记忆
plt.figure() #绘图范围,此处可以直接不写参数
plt.axis([-1,10,-1,10]) #四个参数分别为x和y的最大最小范围,这里建议从负一算起
plt.grid()