基础不牢,地动山摇。
聚类(Clustering)是无监督学习的一种方法,在聚类分析中,我们事先不知道训练样本的类别标签或其他先验知识,唯一的分类依据只有样本的特征。聚类分析的方法为:利用某种相似性度量的方法,将相似的样本归到一个簇中,将不相似的样本归到不同的簇中,由此来实现样本的聚类划分。K-均值聚类(K-means)是聚类分析中最基础的一种方法,它将样本聚类到K个簇中(即将样本划分成K类),并且每个簇的中心为这个簇中所有样本点的均值向量,所以被称作“K-均值”聚类。
1. K-均值聚类的原理
假设样本集中有
个训练样本,每个样本都有
个属性(即
维特征),那么样本集可以表示为(
代表第
个样本的第
维特征):
我们不知道样本的类别标签,我们只知道这些样本需要被分为个簇(即
类),将这
个簇记为:
,显然,这
个簇彼此互斥,且它们的并集即为样本集,即:
,且
。将这
个簇的中心(即各个簇的样本均值向量)记为
,那么第
个簇的中心
可以表示为(其中
表示第
个簇中样本点的个数):
① 初始化簇中心
K-均值聚类的第一步是随机地初始化个
维向量
作为每个簇的中心,我们可以完全随机地产生这
个向量,也可以从样本集
中随机地选择
个样本作为初始簇中心。
② 计算欧氏距离,划分样本点
计算所有样本点到个簇中心的欧氏距离,记第
个样本与第
个簇中心的欧氏距离的平方为
,则:
显然,每个样本可以得到个欧氏距离,所有样本共可得到
个欧氏距离,如下表所示:
针对单个样本点,在该样本点与所有簇中心的个欧氏距离中,选择最小的一个,将这个样本点划入对应的簇。对所有样本点都进行这样的操作,即可将样本点划为
类。
③ 更换簇中心
根据上一步的划分结果计算个簇的中心(均值向量),用计算到的簇中心代替之前的。
④ 重复上两步,直至达到停止条件
接下来我们需要做的是,重复②,③两步,不断更新簇中心,直至所有的簇中心都不再变化,即可停止迭代。
2. K-均值聚类的步骤
输入:样本集;
聚类簇数(类别数):
步骤①:随机生成个
维向量,或者从样本集
中随机选择
个样本作为初始簇中心
;
步骤②:计算所有样本与个簇中心的欧氏距离,选择最小的距离,将样本划入对应的簇(类别)中;
步骤③:根据上一步的划分结果计算个簇中心,用它代替之前的簇中心;
步骤④:重复步骤②和步骤③,直至所有的簇中心都不再变化,即可停止。
若需要预测新样本,则计算新样本点与最终得到的个簇中心的欧氏距离,选择距离最小的,将新样本点划到对应的类别中。
参考:
《模式识别与智能计算——MATLAB技术实现》杨淑莹 张桦 著
《图解机器学习》许永伟 译
《机器学习》周志华 著
转载:https://blog.csdn.net/SongGu1996/article/details/100739030