k-means算法学习

来源:互联网 发布:深圳华夏软件学校招生 编辑:程序博客网 时间:2024/04/30 11:31

k-means算法是数据挖掘十大经典算法之一。


首先选择一个参数k,代表k次迭代,选择要分类的类数c,随机选择c个点,计算其他点到这c个点的距离,归为距离最近的中心点,然后计算每个类的均值、中值等,重新划分中心点,当分类后的结果与上一次的结果相差不大时,结束。


算法流程:

输入:k,data[n]

1、选择k个初始中心点,例如c[0] = data[0]......c[n-1] = data[n-1]

2、对于data[0]...data[n-1],分别与c[0]...c[n-1]进行距离比较,假定与c[i]的距离最小,就标记为i

3、对于所有标记为i的点,重新进行计算c[i] = (所有标记为i的data[j]之和) / 标记为i的个数

4、重复2、3,直到所有c[i]值的变化即归类的变化小于给定的阈值


坐标可以是任意维度的,例如分类药物,对药物进行特征提取,第一个为weight index,第二个为ph,则建立的为二位坐标系,但注意的是,一定要量化特征为数字,然后构建向量空间。


优点:速度快,简单

缺点:结果依赖于初始点的选择,容易陷入局部最优解

0 0