一、引言
从上次SVM之后几节课讲的是学习理论,这块理论性比较深,我得好好消化一下。所以先总结一下第一个无监督的机器学习算法,K-means聚类方法。
所谓无监督学习,就是数据样本没有标签,要让学习算法自己去发现数据之间内在的一些结构和规律。就好比做题没有标准答案,所以训练效果自然比监督学习差。但是目前机器学习最大的问题还是在于大量标记样本的需求,掌握数据才能训练出好的算法,但是数据却不是人人都能轻易获得的。所以无监督学习算法的研究是必要的和长期的。
二、算法介绍
k-means算法是一种迭代算法,其思想很简单。就是找出样本所聚集的类个数并找出每一个样本点归属于哪个类。
分成两步:
先人工指定K个聚类中心,并采用一定规则初始化它们的位置;
(1) 簇分配:遍历样本分别找到与k个聚类中心的点,分别归类。
(2)移动中心:将聚类中心移到上一步归属于该中心的样本点的均值处
重复以上步骤直到收敛。给个图就是这样:
还有个动图地址:https://datasciencelab.files.wordpress.com/2013/12/p_n100_k7.gif
算法非常简单,下面给出几个需要注意的点:
(1)每次求取样本点到 各个聚类中心距离时,可以用一般的两点之间的距离,也可以有其余求取距离的方法:
①Euclidean Distance公式——欧几里得距离,就是最常见的二范数