K-means

Posted zhibei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K-means相关的知识,希望对你有一定的参考价值。

一种用于度量聚类效果的指标使SSE(误差平方和),SSE值越小表示数据点越接近于他们的质心,聚类效果也越好。因为对误差取了平方,因此更加重视那些远离中心的点。一种肯定可以降低SSE值的方法是增加簇的个数,但这违背了聚类的目标。聚类的目标是在保持簇数目不变的情况下提高簇的质量

二分 K-均值算法

为克服K-均值算法收敛于局部最小值的问题,有人提出了另一个称为二分—K均值的算法。该算法首先将所有点作为一个簇,然后将该簇一分为二。之后选择其中一个簇继续进行划分,选择哪一个簇进行划分取决于对其划分是否可以最大程度降低SSE的值,上述基于SSE的划分过程不断重复,直到得到用户指定的簇数目为止。

另一种做法是选择SSE最大的簇进行划分,直到簇数目达到用户指定的数目为止。

总结:聚类是一种无监督的学习方法。所谓无监督学习是指事先并不知道要寻找的内容,即没有目标变量。聚类将数据点归到多个簇中,其中相似数据点处于同一簇,而不相似数据点处于不同簇中。聚类中可以使用多种不同的方法来计算相似度。一种广泛使用的聚类算法是K-均值算法,其中k是用户指定要创建的簇的数目。k-均值聚类算法以k个随机质心开始。算法会计算每个点到质心的距离。每个点会被分配到距其最近的簇质心,然后紧接着基于新分配到簇的点更新簇质心。以上过程重复数次,直到簇质心不再改变。这个简单的算法非常有效但是也容易收到初始簇质心的影响。为了获得更好的聚类效果,可以使用另一种称为二分k—均值的聚类算法。二分K-均值算法首先将所有点作为一个簇,然后使用k-均值算法(k=2)对其划分。下一次迭代时,选择有最大误差的簇进行划分。该过程重复直到k个簇创建成功为止,二分-k均值的聚类效果要好于k-均值算法。

 

以上是关于K-means的主要内容,如果未能解决你的问题,请参考以下文章

5.1_非监督学习之sckit-learn

Java应用XIV使用Apache Spark MLlib构建机器学习模型下

机器学习之K-Means聚类(python手写实现+使用Silhouette Coefficient来选取最优k值)

八:聚类算法K-means(20191223-29)