ng机器学习视频笔记——k-均值算法理论

lin_h lin_h     2022-10-13     361

关键词:

ng机器学习视频笔记(十一)

——K-均值算法理论

 

 

(转载请附上本文链接——linhxx)

 

一、概述

         K均值(K-Means)算法,是一种无监督学习(Unsupervised learning)算法,其核心是聚类(Clustering),即把一组输入,通过K均值算法进行分类,输出分类结果。

         由于K均值算法是无监督学习算法,故这里输入的样本和之前不同了,输入的样本只有样本本身,没有对应的样本分类结果,即这里的输入的仅仅是{x(1),x(2),…x(m)},每个x没有对应的分类结果y(i),需要我们用算法去得到每个x对应的y。

         K均值算法,常用的场景包括市场分析中分析不同用户属于哪类用户、社交网络中分析用户之间的关系、计算机集群设计分析、星系形成过程分析等。

         无监督学习和监督学习输入的区别如下:

 

 

二、算法基本步骤

1、前提

         现假设数据点有m个,需要有K个分类。

2、步骤

         1)随机初始化K个点,作为K个分类的中心点,每个中心点称为聚类中心(cluster centroid),也成为簇。下图是K=2时,随机选2个簇。

 

         2)根据K个中心点,遍历所有样本,分别计算每个样本到每个中心点的距离,把样本分到最近的举例。

 

 

3)分类完成后,根据分类完成的结果,计算在每个分类中的样本的平均值,把聚类中心移动到这些平均值中。

 

 

         4)重复步骤2、步骤3,直到聚类中心稳定。

         综上,步骤如下:

        

 

3、特殊情况

         当随机选到的某个聚类中心,如果在一次分类中,没有一个样本被分到这个聚类中心,则如果有固定的分类结果数量要求,则需要重新随机选择初始聚类中心,重新进行K均值计算。为了速度较快,可以存储这些没有任何分类结果的点,在随机初始聚类中心时,避免选到这些点。

 

三、代价函数

1、符号

         在K均值算法中,K(大写)表示分类结果数量(K=3表示样本要分成3类),k(小写)表示第k个聚类中心, C(i)表示样本x(i)所属的聚类中心编号,μk表示第k个聚类中心的位置,μC(i)表示x(i)所属的聚类中心位置。

         例如,x(i)被分类到第5个聚类中心,则C(i)=5,μC(i)= μ5

2、代价函数

         K均值算法的代价函数,又称为K均值算法的dispulsion函数,公式如下:

 

 

         可以证明,对于代价函数的公式:

1)K均值算法的第二步(即选好聚类中心后,需要把每个样本分类到对应的聚类中心),对于优化代价函数而言,相当于固定μ的值,来计算J(c)的最优情况。

2)算法的第三步(即通过计算每个聚类的样本均值重新选定聚类中心),对于优化代价函数而言,相当于通过μ的优化来确定最优的J。

 

四、初始化聚类中心

1、前提

         随机初始化聚类中心,前提是要求总的分类数量K小于样本数量m,否则分类没有意义。

2、步骤

         1)在m个样本中,随机选出K个样本。

         2)令μ1、μ2…μk等于这K个样本。

         简单来说,即在样本中随机初始化聚类中心,而不是漫无目的的在整个坐标系中来随机。

3、存在问题——局部最小值

         K均值算法的代价函数,也存在局部最优解(极小值)的情况,这个对于K均值算法来说非常不好,如下图所示:

 

 

         上图左边是待分类的样本,右边上方是根据日常经验来说应该被分类的样子,而右边下面两个分类结果,都是出现局部极小值的结果。即一开始随机初始化的时候,有两个初始化点都被初始化在本来应该被分在一个类的“地盘”,这就导致后面优化的时候,会不断的按这个本来就错误的方式来优化。

4、解决方案

         为了避免局部最小值的情况,可以多次进行K均值算法的运算。每次分类稳定后,记录该分类的方式,以及该分类方式下最终的代价函数(即每个点到聚类中心点的距离的平方和),然后取这些分类结果中,带价值最小的分类方式,作为最终的分类方式。

         如下图所示:

 

 

         通常而言,当执行K均值算法超过50次,则最终一般可以避免局部最优解的错误分类结果。

         另外,局部最优解,一般只在K比较小(K在2~10左右)的时候容易发生,当K非常大时,通常不会发生局部最优解,或者说这种局部最优解和最佳解的差距也不是非常大,可以接受。

 

五、确定分类数量K

         在不确定要分几类时,需要确定分类数量K。

1、方法一:肘部法则

         肘部法则(Elbow Method),即通过改变K值,描绘出K和代价函数J的图像,并且确定在某个K时,代价函数降低的最多(图像类似人类的肘部),则取这个K作为应当的分类结果,如下图的左边的图像所示。

 

 

         但是肘部法则存在问题,如上图的右图所示,当K-J的图像,不存在一个剧烈的降低点(从图像中无法明确哪个K是肘部),而是比较平缓的降低,则此时无法通过肘部法则来明确选择哪个K是最佳的。

2、方法二

         当肘部法则无法确定K时,更通用的方式,是分析当前的业务场景,并且通过业务场景,来明确所需要的分类结果。

         例如下图是根据 身高和体重的人群分布,需要确定设计的T恤衫的尺寸。例如可以分为3类(左图)、5类(右图),分类都是合理的。

         此时,就需要通过认为的经验分析,明确应该选哪种K作为最佳分类。

 

 

 

六、小结

         K均值算法,作为无监督学习方法,其思想和分析方式,和监督学习算法有比较大的不同。应当明确,监督学习是提前告知分类结果,而无监督学习并没有提前告知分类结果,他们是有不同的业务场景,因此必然设计思想完全不同。

 

 

——written by linhxx

 

更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。

ng机器学习视频笔记(十四)——推荐系统基础理论

ng机器学习视频笔记(十三)——推荐系统基础理论 (转载请附上本文链接——linhxx) 一、概述        推荐系统(recommendersystem),作为机器学习的应用之一,在各大app中都有应用。这里以... 查看详情

ng机器学习视频笔记——梯度下降算法解释以及求解θ

ng机器学习视频笔记(二)——梯度下降算法解释以及求解θ  (转载请附上本文链接——linhxx)   一、解释梯度算法      梯度算法公式以及简化的代价函数图,如上图所示。   ... 查看详情

ng机器学习视频笔记——logistic回归

ng机器学习视频笔记(四)——logistic回归 (转载请附上本文链接——linhxx) 一、概述1、基本概念        logistic回归(logisticregression),是一个分类(classification)算法(注意不是回归算法,... 查看详情

机器学习笔记之一深入浅出学习k-means算法

摘要:在数据挖掘中,K-Means算法是一种clusteranalysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。在数据挖掘中,K-Means算法是一种clusteranalysis的算法,其主要是来计算数据聚集的算法,... 查看详情

机器学习十大常用算法

机器学习十大常用算法小结 机器学习十大常用算法小结通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题... 查看详情

机器学习基础概念笔记

...见算法:K-均值、最大期望算法、DBSCAN、Parzen窗设计 机器学习应用步骤:收集数据——准备输入数据——分析输入数据 查看详情

机器学习实战笔记-利用k均值聚类算法对未标注数据分组

聚类是一种无监督的学习,它将相似的对象归到同一个簇中。它有点像全自动分类。聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好簇识别给出聚类结果的含义。假定有一些数据,现在将相似数据归到一... 查看详情

ng机器学习视频笔记(十三)——异常检测与高斯密度估计

ng机器学习视频笔记(十三)——异常检测与高斯密度估计  (转载请附上本文链接——linhxx) 一、概述        异常检测(anomalydetection),主要用于检查对于某些场景下,是否存在异常内... 查看详情

机器学习--diy笔记与感悟--①k-临近算法(代码片段)

##“计算机出身要紧跟潮流”机器学习作为如今发展的趋势需要被我们所掌握。而今我也需要开始learn机器学习,并将之后的所作所想记录在此。 今天我开始第一课--K临近算法。 一、k-临近的基础概念理解学习开始前,我... 查看详情

ng机器学习视频笔记——线性回归代价函数梯度下降基础

ng机器学习视频笔记(一)——线性回归、代价函数、梯度下降基础 (转载请附上本文链接——linhxx) 一、线性回归        线性回归是监督学习中的重要算法,其主要目的在于用一个函数表... 查看详情

轻松看懂机器学习十大常用算法

轻松看懂机器学习十大常用算法 通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。每个算法都看了好几... 查看详情

机器学习k均值算法(ii)

k聚类算法中如何选择初始化聚类中心所在的位置。在选择聚类中心时候,如果选择初始化位置不合适,可能不能得出我们想要的局部最优解。而是会出现一下情况:为了解决这个问题,我们通常的做法是:我们选取K<m个聚类... 查看详情

机器学习实战精读--------k-均值聚类算法

      一个聚类算法只需要知道如何计算相似度就可以了K-均值(k-means)聚类算法:该算法可以发现K个不同的簇,每个簇的中心采用簇中所安置的均值计算而成。分层聚类算法①BIRCH算法:结合了层次聚类算... 查看详情

轻松看懂机器学习十大常用算法

通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。每个算法都看了好几个视频,挑出讲的最清晰明了有趣的... 查看详情

机器学习100天(二十六):026k近邻分类算法-理论

机器学习100天,今天讲的是:K近邻分类算法-理论。《机器学习100天》完整目录:目录一、什么是K近邻算法K近邻算法也叫KNN(k-NearestNeighbor)算法,它是一个比较成熟也是最简单的机器学习算法之一。K近邻分类算法的思路是:如果... 查看详情

机器学习100天(二十六):026k近邻分类算法-理论

机器学习100天,今天讲的是:K近邻分类算法-理论。《机器学习100天》完整目录:目录一、什么是K近邻算法K近邻算法也叫KNN(k-NearestNeighbor)算法,它是一个比较成熟也是最简单的机器学习算法之一。K近邻分类算法的思路是:如果... 查看详情

ng机器学习视频笔记(十六)——从图像处理谈机器学习项目流程

ng机器学习视频笔记(十六)——从图像处理谈机器学习项目流程 (转载请附上本文链接——linhxx) 一、概述        这里简单讨论图像处理的机器学习过程,主要讨论的是机器学习的项目流... 查看详情

ng机器学习视频笔记——神经网络的代价函数反向传播梯度检验随机初始化

ng机器学习视频笔记(七)——神经网络的代价函数、反向传播、梯度检验、随机初始化 (转载请附上本文链接——linhxx) 一、代价函数        同其他算法一样,为了获得最优化的神经网络... 查看详情