赞
踩
算法思想:
以空间中K个点为中心,对最靠近他们的点进行归类,通过迭代,逐次更新各聚类中心点的值,直到有最好的聚类效果
算法描述:
1)开始随机选中k个点作为初始中心
2)开始迭代,求其到各中心ci的距离,算出距离di,选出di最小的一个中心点,作为这个点所在类
3)利用均值的方法更新该类的中心值,也就是把迭代过后,所有属于某个中心点的值的x和y进行求平均找到新的中心点
4)对于所有的c个聚类中心,如果利用(2)(3)的方法迭代更新后,值保持不变,则迭代结束(或者达到一定的次数),否则继续迭代
算法流程:
输入k,data[n]
1)选择k个初始中心点c[0] = data[0],.....,c[k-1]=data[k-1]
2)对于data[0], ...... data[n-1] 分别与c[0] ....c[k-1]比较,选出差值最小的,标记为i
3)对于所有标记点相同的,重新计算c[i]的值
4)重复(2)(3)操作,直到所有c[i]值的变化小于给定阈值
代码实现
- import numpy as np
-
-
- def Kmeans(X, k, maxIt):
- # numPoints 是 X 的行数量,numDim是X的列数量
- numPoints =
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。