详解 K-means及其改进算法
详解 K-means及其改进算法
K-means
基本概念
算法步骤:
Step1.给定初始质心:首先选取初始质心集合centroids
说明
A.质心数量由用户给出,记为k,k-means最终得到的簇数量也是k
B.每个质心的数值由初始质心的计算算法计算得到,初始质心计算算法由用户给出
C.k-means最后聚类的簇个数和用户指定的质心个数相等,一个质心对应一个簇,每个样本只聚类到一个簇里面
D.初始簇为空
Step2.样本聚类:计算每个样本和每个质心的距离,将样本聚类到距离最近的质心的簇里面
说明:
A.样本和质心的距离可以使用欧氏距离(欧几里得距离)
用python表示就是np.sqrt(sum(np.power(p1-p2,2))),p1=np.array([x1,y1]), p2=np.array([x2, y2])
B.如果得到某一个样本和每个质心的距离为:distances=[5, 6, 2, 1,3,9],则可知此样本将被分到第4个质心所在的簇第4个簇的簇号是3,用python表示簇号就是np.argmin(distances) = 3
C.经过step2,得到k个新的簇,每个样本都被分到k个