一、k-means
1、简述
K-Means是一种无监督学习算法。算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。
2、K-means算法基本思路是:
-
首先选择好将数据分成k类,然后随机初始化k个点作为中心点。
-
对于每一个数据点,选取与之距离最近的中心点作为自己的类别。
-
当所有数据点都归类完毕后,调整中心点:把中心点重新设置为该类别中所有数据点的中心位置,每一轴都设置为平均值。(所以称为means)
-
重复以上2~3步骤直至数据点的类别不再发生变化。
3、缺点:
缺点一:聚类中心的个数K需要事先给定,但在实际中K值的选定是非常困难的,很多时候我们并不知道给定的数据集应该聚成多少个类别才最合适。
缺点二:k-means算法需要随机地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果,有可能导致算法收敛很慢甚至出现聚类出错的情况。
4、解决
1、解决缺点一、很难在k-means算法以及其改进算法中解决,一般来说,我们会根据对数据的先验经验选择一个合适的k值,如果没有什么先验知识,则可以通过“肘方法”选择一个合适的k值。
肘部法则
手肘法的核心指标是SSE(sum of the squared errors,误差平方