想要知道如何优化Kmeans,首先得知道:
- 什么是Kmeans?
- Kmeans的优点;
- Kmeans的缺陷;
知道了以上这些知识点,我们才能针对性优化Kmeans。
Kmeans是一种非监督的聚类算法,首先选取K值,并随机初始化K个质心,计算每个样本与质心的相似度,将样本划分到距离其最近的一个质心的堆簇,然后计算每个堆簇的新的质心,迭代上述过程,直到质心没有新的变动。如果数据集很大,Kmeans的收敛速度会很慢。
Kmeans的算法流程
• 初始化常数K,随机选取初始点为质心
• 重复计算以下过程,直到质心不再改变
o 计算样本与每个质心之间的相似度,将样本归类到最相似的类中
o 重新计算质心
• 输出最终的质心以及每个类
Kmeans的优点:
非常简单,易于实现。
Kmeans的缺陷:
- K值需要预先选定,K值的选择对于最后的聚类效果影响非常大。需要一定的先验知识。
- Kmeans对于质心的初始点位置敏感,不同的初始化位置会导致不同的聚类结果。
- 对离群点(异常点)敏感。
针对以上三个缺陷,提出如下三个优化方法:
- 针对K值选择,使用先验知识选取K的备选。
- 针对初始化质心,二分K-均值。具体:首先将数据集划分为一个群簇(整体),然后将其一分为二,最大限度降低聚类代价函数(误差平方和函数),形成两个群簇。迭代这个过程,直到群簇数量等于K值。
- 对数据集的异常样本做处理。
更多学习资料,请关注下面的公众号:不定期分享
深度学习网络总结
机器学习算法及其应用场景
算法与数据结构(leetcode 题解)
cuda编程与并行优化
其他读书分享如:《战国策》,《智囊全集》
宇宙常识科普与星座辨别等等.
来源:CSDN
作者:panda爱学习
链接:https://blog.csdn.net/NXHYD/article/details/103888096