简单的机器学习算法--k-means

下面一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。

算法概述

原理:根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果

常用方法:欧式距离法

原理实现:确定常数K,常数K意味着最终的聚类数目,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。

伪代码如下:

1
2
3
4
5
选择K个点作为初始质心
repeat
将每个点指派到最近的质心,形成K个簇
重新计算每个簇的质心
until 簇不发生变化或达到最大迭代次数

注意的问题

既然是无监督学习,很多情况下,我们并不知道数据的分布情况,所以我们这个时候要怎么确定k值才能达到我们的预期呢?

这里就涉及到很多的知识了,搞定了这些那可不得了,目前还没有时间,下次。

-------------本文结束有空来玩-------------
坚持原创技术分享,您的支持将鼓励我继续创作!