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