机器学习入门之关于机器学习中C均值算法的相关介绍
小标 2019-06-26 来源 : 阅读 971 评论 0

摘要:本文主要向大家介绍了机器学习入门之关于机器学习中C均值算法的相关介绍,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之关于机器学习中C均值算法的相关介绍,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

机器学习入门之关于机器学习中C均值算法的相关介绍

  在机器学习的无监督算法中,可能C均值算法是较早出现(笔者在韩家炜教授上世纪90年代所著的《数据挖掘》中最早看到)同时其若干变种可能也是应用最为广泛的一类无监督算法,只不过那时可能机器学习一词使用的还不甚广泛,而是叫做数据挖掘(Data Mining),不过无论采用何种称谓,其本质其实并没有什么不同,而且需要说明的一点是,这种算法在业界又被称作K均值算法(即KMeans)。

  在前面讨论混合高斯聚类方法时,本来笔者提到无意阐述这个算法(可能过于简单抑或它已经烂大街了?就像MINST库被玩残了一样),但其有一个所谓的模糊C均值聚类,这个模型还是有些讨论价值的。

   对于一般聚类算法而言,其实我们主要考量两个原则,一个是类内聚合程度以及类间分离程度,故以下的相关讨论一般都是围绕这两个原则进行的,包括后面会写到的相关基于密度的无参数聚类算法,如削峰法以及描峰法等(其实对于其它非聚类算法而言,也一般需要遵从这两个原则,而对于监督分类算法则不完全一样,因为样本点已经被进行了标识,即打了标签)。

基础C均值算法

   根据类聚合原则而言,对于样本的相关分类当然是类内的差异越小越好,而类间的差异是越大越好,这样方能达到我们对于聚类的需求,但采用不同的类聚合评估函数会导致不同的聚类结果,而人们习惯上会使用样本方差这个指标来评估它们之间的差异程度。

           如果我们使用软性类划分矩阵,则可以给出如下公式:


   其中,而表示样本的第i类的集合,而D是样本与类差异的评估函数,那么根据上式显然我们能够得到相关目标函数的表达式:


   对于上式而言,需要求解两组参数,按照之前机器学习的经验,我们可以交叉进行,即先固定一组参数,求解另一组,然后再优化另一组。

            先对参数类X进行求导并令其结果为0,我们有:


   根据公式3可得如下结果:


   然后固定参数X(注意这是一个具有维度为C的向量)再求解参数u(这里没法对公式2求偏导了)。我们对于公式4的理解可以是这样的,先随机化归属度矩阵,然后计算类内的相关值,那么如何再求解参数u?一般我们只要考虑对于每个样本而言,其到所属类的距离是不是大于某个阈值,如果是则将其在所属度矩阵的赋值变为1,而其它分量则改成0,否则修改成0,而将其所属度值加到别的分量上(其实最终归属度矩阵都会变成One-Hot-Vector)。

  如此循环往复直到整体收敛。上述算法步骤其实与网上介绍的一般C均值聚类算法不太一样,传统的做法如下:

 

在样本集合中选择C个点作为初始类中心;

在剩下的样本点中选择一个,计算其到各个中心点的距离,选取距离最短者将其归为那个类别;

选择下一个样本,重复2直到计算完所有样本,若集合不发生变化或达到迭代上限则转5否则转4;

根据当前的类划分情况重新计算中心点,重复步骤2;

结束算法。

 

  可以看出上述算法的复杂度为O(NCt),其中N是样本个数,C是类别数量,而t是迭代的次数。

 

         那么C均值的算法存在什么问题?其一就是最终划分的结果仍是硬分类,而且对于初值的选取也会导致结果可能存在不同(会达到局部鞍点)或者收敛速度过慢。


模糊C均值算法

  在上节的C均值算法中,即便归属度矩阵的元素初始值不为整数,但算法执行完毕后仍会得到样本的硬分类,这个在很多场合是不太适用的,故本节主要讨论模糊的C均值算法,即分类算法执行完成后,我们得到的是样本的软分类结果。

   为了达到上述目标,我们对公式2加入约束,并使用拉格朗日乘数法,公式变为如下形式(其中对于归属度矩阵的每个元素我们加入了m,这个被称作加权归属度,一般它大于等于1):


  对于上式,后面一部分就是增加的约束,可以明显看出约束即为,那么同样的分别对公式5求各个参数的偏导(与上节不同,由于使用了拉格朗日乘数法故含有三个参数需要求解),我们有:


  这个公式与之前相对应的公式并无太大差别,而对于参数而言,因为使用了拉格朗日乘数法所以也能对公式5求取偏导,得:


 至于上述公式是怎么的来的?我们有如下推导(《机器学习》这本书没有进行相关介绍,现笔者交代下过程以免造成误解),对于参数λ的偏导,我们可以得到如下公式:


  综合公式9和公式10,我们有如下的推导(注意这里使用了下标j,而不是i,这是为了进行一定程度的区分,其实意思上并没有什么不同):


  然后将以上公式带回到公式10中就能得到最终的结果,得证。


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程