在无监督学习中,样本的标签是未知的,也就是说因变量不像监督学习中有明确的标注,比如房价多少,相亲见或不见,鸢尾花所属类别等等。但在现实生活中,我们很难获取到都经过标注的样本数据或者标注数据成本很高,这时候无监督学习就派上用场了。聚类分析是最常见的无监督学习方法之一,而在聚类分析中最常用的就是K-means聚类。或许很多同学早就听说过或者使用过K-means聚类了,K-means聚类原理简单,应用广泛,非常适合用来入门无监督学习。下面就给大家简单下介绍到底什么是K-means聚类。
俗话说,物以类聚,人以群分。在无监督学习中也是一样。聚类是按照某一个特定的标准(比如距离),把一个数据集分割成不同的类或簇,使得同一个簇内的数据样本的相似性尽可能大,不同一个簇内的数据样本的相似性尽可能小。
K- means算法具体实现过程:
1、 随机设定k个初始聚类中心(簇中心),k代表簇的数量;
2、 对每个样本数据,计算其与各簇中心的距离,将每个样本划分给距离最近的簇;
3、 重新计算每个簇的平均值作为新的簇中心,更新原来的簇中心;
4、 重复以上二三两个步骤不断迭代,直到各簇中心不再变化(收敛)。
现在我们随机造了一批数据用来作为K-means聚类的输入样本,下面我们一起来看看K-means是如何实现聚类的。
聚类结果如下,我们把输入样本划分为5个类别(簇),其中每种颜色代表其中一个类别,每个类别的中心交叉点表示聚类中心。可以看到5个簇之间划分还是比较明显的,说明K-means聚类算法确实能把原来杂乱无章的数据很好地经过聚类划分开来,达到了聚类的目的!
Ok,完美!结束?