什么是K-Means?
K-Means是一种无监督机器学习模型,在数据没有给定labels的情况下,我们用K-Means来进行分类预测。
K-Means的工作原理:
- 随机选取K个点(数据点)作为中心点
- 对每个数据点,计算该数据点到各个中心点的距离,并找出距离最近的那个中心点,将该数据点分配给最近的中心点的类。
- 对所有的数据点做完分配后,重新计算中心点,计算方法是求该类中每个特征的平均值,新的中心点的特征是该类中所有数据的特征的平均值。
- 看看中心点是否收敛(新中心点与原中心点变化是否小于一个阈限,小于即收敛),如果没有收敛用新的中心点返回2重新分类每个数据点
关于步骤2的距离计算,算法中用的是L2距离,即欧氏距离。因为K-Means算法目的是最小化簇内方差,而方差的定义就是平方和的形式。当然用其他距离也是可行的,但是欧式距离应用最广。
K-Means的优缺点:
优点:
- 原理简单
- 聚类效果教优
- 可解释性强
- 参数调整简单
缺点:
- K的取值问题
- 对于异常点敏感、
- 对数据不平衡的数据集效果不是很好