第十三章-聚类之K-means算法 深度之眼_吴恩达机器学习作业训练营
目录
一,聚类问题
1.1 监督与无监督
在监督学习中,给定的数据样本都含有特征与标签,学习算法根据数据特征来进行预测,再根据预测结果与标签之间的关系建立损失函数,最后再训练模型。
而在无监督学习中,给定的数据样本只有特征,没有标签。学习算法要根据数据特征之间内在的“相似性”给样本定义标签。
相比较与监督学习,无监督学习更有应用意义,因为现实中许多问题都只能采集特征而不能准确的定义标签。常见的无监督学习应用有聚类问题以及降维问题。
1.2 聚类简介
输入一系列只有特征的数据样本,根据数据特征之间的“相似性”将样本划分为一系列的点集(也称为簇),达到“物以类聚”的效果。此类算法运用范围很广,具体应用有:
- 市斜体样式场分割(Market of clustering),根据客户信息将客户划分为不同的群体,可以进行精准的推荐产品和提供服务。
- 社交网络分析(Social network analysis),根据社交信息划分关系密切的人群。
- 计算机集群管理(Organize computing clusters) ,根据计算机集群的运行状态,组织计算机协同工作,重新分配资源,布局网络。
- 天文数据分析(Astronomical data analysis),根据天文数据划分星系群。
- 等等。
二,K-均值算法
2.1 算法内容
K -均值(K-means)** 算法是一个聚类算法, 假设有m个样本,每个样本有n个特征,其核心思想如下:
- 假设数据共需分为K类,随机在n维特征空间中生成k个类别中心,一个类别中心代表一个类。
- 按照指定的距离度量方案,对m个样本分别与k个样本中心计算其距离,将每个样本划分到与其距离最近的样本中心所代表的类别中。
- 计算每个类别中所有样本的特征平均值,将样本中心移动到特征平均值所在的位置。
- 反复执行步骤2,3,直到样本中心的位置不发生改变,即各个类别中的样本不发生变化为止。
2.2 优化目标
设m个样本为:,其 K个类别中心为:
第i个样本与其所属的类别为
。假设以欧氏距离为度量,K-means算法的损失函数(也称为畸变函数(Distortion function))可表示如下:
(公式 13.1)
看上去有些奇怪的原因是该算法中需要学习的参数是样本类别,以及样本
所对应的类别
。回顾上述K-means算法主体,算法步骤2其实就意味着调整参数
来最小化代价函数,而算法步骤3即表示调整类别中心
来最小化代价函数。
所以K-means算法在训练的同时,也在最小化其损失函数。
三,应用细节
3.1 K值的选取
K-means算法有个很重要的超参数,便是具体的类别数K。K值的具体选取一般可根据应用需要来决定,对于具体问题没有所谓最好的选取法。
这里介绍有一种称之为“肘部法则(Elbow method)”的选取方法,即选取不同的K值进行计算训练后的代价函数值。当刚开始K值比较小时,损失值都比较高,随着K值的逐步增加 损失函数会越来越小,且下降速度也叫较快;当K增大到一定程度后损失函数的下降速度开始变缓,而需要选择的就是下降速度 开始变缓时的K值。如图13-2所示,橙色点x之前随时K的增大损失函数下降较快,橙色点x之后变换则明显变缓,所以应当选取橙色点x所对应的K值,类似于一条手臂手肘的位置。
直觉上可理解为过了“肘部”分类的效益已经不大了。
3.2 随机初始化
在选定K值之后,就要考虑初始化样本中心的问题,需要注意的是K值不应该大于样本数m。具体的方法可为:随机选择K个训练样本,然后令K个类别中心与这K给训练样本相等。
K-means算法的一个问题在于样本中心的初值选择不好,可能会造成最终收敛到一个局部最优解。为解决这个问题,一般会进行多次随机初始化并训练,选取效果最好的一组结果。不过当K较大时,这种方法对结果也不一定能有所改善。
3.3 距离的度量
样本之间的距离除了用欧式距离度量外,还有以下度量方式:
1.闵可夫斯基距离(Minkowski)
(公式 13.2)
2.杰卡德相似系数(Jaccard)
(公式 13.3)
3.余弦相似度(cosine similarity)
(公式 13.4)
4.皮尔逊相关系数(Pearson similarity)
(公式 13.5)
四,总结
本章主要学习了以下知识点:
- 介绍了无监督算法以及聚类问题。
- 重点讲解了K-means聚类算法的理论。
- 介绍了K-means聚类算法的一些应用细节。