- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
K-Means讲解
Clustering中文翻译作“聚类”,简单地说就是把相似的东西分到一组,同Classification(分类)不同,对于一个classifier,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个classifier会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning(监督学习),而在聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,因此,一个聚类算法通常只需要知道如何计算相似 度就可以开始工作了,因此clustering通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning(无监督学习)。
举一个简单的例子:现在有一群小学生,你要把他们分成几组,让组内的成员之间尽量相似一些,而组之间则差别大一些。最后分出怎样的结果,就取决于你对于“相似”的定义了,比如,你决定男生和男生是相似的,女生和女生也是相似的,而男生和女生之间则差别很大”,这样,你实际上是用一个可能取两个值“男”和“女”的离散变量来代表了原来的一个小学生,我们通常把这样的变量叫做“特征”。实际上,在这种情况下,所有的小学生都被映射到了两个点的其中一个上,已经很自然地形成了两个组,不需要专门再做聚类了。另一种可能是使用“身高”这个特征。我在读小学候,每周五在操场开会训话的时候会按照大家住的地方的地域和距离远近来列队,这样结束之后就可以结队回家了。除了让事物映射到一个单独的特征之外,一种常见的做法是同时提取N种特征,将它们放在一起组成一个N维向量,从而得到一个从原始数据集合到N维向量空间的映射——你总是需要显式地或者隐式地完成这样一个过程,因为许多机器学习的算法都需要工作在一个向量空间中。
那么让我们再回到clustering的问题上,暂且抛开原始数据是什么形式,假设我们已经将其映射到了一个欧几里德空间上,为了方便展示,就使用二维空间吧,如下图所示:
从数据点的大致形状可以看出它们大致聚为三个cluster,其中两个紧凑一些,剩下那个松散一些。我们的目的是为这些数据分组,以便能区分出属于不同的簇的数据,如果按照分组给它们标上不同的颜色,就是这个样子:
那么计算机要如何来完成这个任务呢?当然,计算机还没有高级到能够“通过形状大致看出来”,不过,对于这样的N维欧氏空间中的点进行聚类,有一个非常简单的经典算法,也就是本文标题中提到的k-means(k-均值)。在介绍k-means的具体步骤之前,让我们先来看看它对于需要进行聚类的数据的一个基本假设吧:对于每一个cluster,我们可以选出一个中心点 (center) ,使得该cluster中的所有的点到该中心点的距离小于到其他cluster的中心的距离。虽然实际情况中得到的数据并不能保证总是满足这样的约束,但这通常已经是我们所能达到的最好的结果,而那些误差通常是固有存在的或者问题本身的不可分性造成的。例如下图所示的两个高斯分布,从两个分布中随机地抽取一些数据点出来,混杂到一起,现在要让你将这些混杂在一起的数据点按照它们被生成的那个分布分开来:
由于这两个分布本身有很大一部分重叠在一起了,例如,对于数据点2.5来说,它由两个分布产生的概率都是相等的,你所做的只能是一个猜测;稍微好一点的情况是2,通常我们会将它归类为左边的那个分布,因为概率大一些,然而此时它由右边的分布生成的概率仍然是比较大的,我们仍然有不小的几率会猜错。而整个阴影部分是我们所能达到的最小的猜错的概率,这来自于问题本身的不可分性,无法避免。因此,我们将k-means所依赖的这个假设看作是合理的。
基于这样一个假设,我们再来导出k-means所要优化的目标函数:设我们一共有N个数据点需要分为K个cluster,k-means要做的就是最小化
/
这个函数,其中在数据点n被归类到cluster k的时候为1,否则为0。直接寻找和来最小化并不容易,不过我们可以采取迭代的办法:先固定,选择最优的,很容易看出,只要将数据点归类到离他最近的那个中心就能保证最小。下一步则固定,再求最优的。将对求导并令导数等于零,很容易得到最小的时候应该满足:
亦即的值应当是所有cluster k中的数据点的平均值。由于每一次迭代都是取到的最小值,因此只会不断地减小(或者不变),而不会增加,这保证了k-means最终会到达一个极小值。虽然k-means并不能保证总是能得到全局最优解,但是对于这样的问题,像k-means这种复杂度的算法,这样的结果已经是很不错的了。
下面我们来总结一下k-means算法的具体步骤:
选定K个中心的初值。这个过程通常是针对具体的问题有
您可能关注的文档
最近下载
- Unit 1 Happy HolidayL2(课件)人教版(2025)英语八年级上册.pptx VIP
- 2023年浙江省宁波市中考英语模拟试卷(汐卷)(附答案详解).docx VIP
- 2025年山西中考历史试卷真题解读及答案讲解课件.pdf
- 重劣质渣油提质升级UOP UNIFLEX MC™ 浆态床渣油加氢技术最新进展-.pdf
- 2025下半年湖南省国际工程咨询集团有限公司社会招聘34人笔试参考题库附答案解析.docx VIP
- 2025至2030年中国工业废水处理行业市场现状调查及投资前景研判报告.docx
- CRUSADE出血风险评分;.doc VIP
- 仓储、运输企业尽职调查表.docx VIP
- 部编版九年级上册语文《醉翁亭记》PPT课文课件.pptx VIP
- 第3讲 秦统一多民族封建国家的建立(共38张PPT).pptx VIP
文档评论(0)