K-Means算法(思想)
来源:互联网 发布:常州海智软件 编辑:程序博客网 时间:2024/06/05 18:35
K-Means算法的思想:
第一步:寻找最近的中心点
在给定的数据集上随机选取K(K已知)个点(向量)作为数据集上的K个中心(也就代表K个类别),然后依次遍历每一条数据,分别计算其与K个中心的距离,选择与之距离最近的点作为该数据所属的类别。这样一次遍历完之后,数据集中的所有点都被划入了其应该所属的类别里面(尽管有划错的)。
注意:初始中心点的选择,会影响到最终的分类结果,即可能不会收敛
第二步:重新计算中心
对于每一个类别来说,里面都有若干个点。由于之前的中心点事随机选取的,所以可定有不合理的中心点,于是我们就要重新计算中心点。然后再重复进行第一步的操作。
经过多次迭代前面两个步骤之后,最终的总代价将会收敛到一个最小值。此时的得到的聚类结果通常也就是最好的。
详细步骤:
现有如下数据集,欲将其分为3类,即K=3:
1.寻找最近的中心点
先随机取3个点
比如现在有一个点
这样依次遍历完所有的点,将其划入对应的类别中。
2.重新计算中心点
上面也说到,初始化的中心点(如下图中的3个叉)肯定不会是最佳的点,所以要对其重新多次计算,直到代价值收敛。
如上图所示,数据集对应的被聚类成了三个部分(三种颜色标注的),但显然很不好。所以就要在这基础上重新计算中心点。
比如现在
3.迭代
反复迭代以上两步,使代价函数收敛。
从上图可以看出,大概迭代到底6次后,中心点也就没有再发生变化了。也就是说此时代价函数已经收敛了。代价值为所有点,到其对应中心点的距离之和。
其中:
实例,戳此处
- K-Means算法(思想)
- K-means++算法思想
- K-Means算法(实例)
- K-Means Algorithm(K-均值算法)
- k-Means(二分k-均值算法)
- K-means聚类算法背后的EM思想
- K-means hadoop实现思想
- K-means算法补充:K-means++
- K-means聚类算法(JerryLead)
- 机器学习算法(2)-K-means
- 聚类算法(1) ---- K-Means
- 机器学习(十一):K-Means算法
- 聚类算法----之----(k-means)
- 机器学习--物以类聚(k-means算法)
- k-means算法
- K-MEANS算法
- K-MEANS算法
- K-means算法
- Java类的设计----多态性及其应用
- Java类的设计----Object 类
- 冒泡进阶
- ASP.NET 如何在.cs文件中为前端添加JS代码
- 高级类特性----static关键字
- K-Means算法(思想)
- $.ajax属性及用法
- 高级类特性----final关键字
- 高级类特性----抽象类(abstract class)
- 阿丹学理财之商业保险
- 对象、继承、封装、多态、抽象类的组合应用
- 高级类特性----接口(intertface)
- 高级类特性----内部类
- java的深浅拷贝与绕过构造函数获取对象的神奇之旅