Kmeans算法原理
一句话解释kmeans
Kmeans是一种无监督的基于距离的聚类算法,其变种还有Kmeans++。
算法步骤
K: 描述了簇的数量,也就是应当聚合成的几何数。
Means:均值求解会是该算法的核心。
- 根据设定的聚类数 K ,随机地选择 K 个聚类中心(Cluster Centroid),这就好比古代乱世,天下诸侯并起而逐鹿。
文章图片
- 评估各个样本到聚类中心的距离,如果样本距离第 i 个聚类中心更近,则认为其属于第 i 簇,这可以看做四方义士纷纷投奔诸侯,形成不同的势力。
文章图片
- 计算每个簇中样本的平均(Mean)位置,将聚类中心移动至该位置,该过程可以被认为是诸侯调整战略根据地以达到最强的控制力和凝聚力。
文章图片
综上,K-Means 的算法步骤能够简单概括为:注意,某些聚类中心可能没有被分配到样本,这样的聚类中心就会被淘汰(意味着最终的类数可能会减少)
1-分配:样本分配到簇。
2-移动:移动聚类中心到簇中样本的平均位置。
Kmeans损失函数
【Kmeans算法原理】和其他机器学习算法一样,K-Means 也要评估并且最小化聚类代价,在引入 K-Means 的代价函数之前,先引入如下定义:
文章图片
引入代价函数:
文章图片
实际上,K-Means 的两步已经完成了最小化代价函数的过程:
文章图片
伪代码描述
文章图片
文章图片
Kmeans优缺点
优点:
1)原理比较简单,实现也是很容易,收敛速度快。
2)聚类效果较优。
3)算法的可解释度比较强。
4)主要需要调参的参数仅仅是簇数k。缺点:
1)K值的选取不好把握
2)对于不是凸的数据集比较难收敛
3)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳。
4) 采用迭代方法,得到的结果只是局部最优。
5) 对噪音和异常点比较的敏感。
Kmeans的偏向
数据呈圆形、凸型、在一起的簇的数据形状近似高斯分布的这些数据是kmeans喜欢的数据。
转载注明:https://www.jianshu.com/p/ad2e9592db10
推荐阅读
- 做一件事情的基本原理是什么()
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 【读书笔记】贝叶斯原理
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- “写作宝典”《金字塔原理》之读书笔记
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解