K-means(K均值聚类算法)算法笔记
K-means(K均值聚类算法)算法笔记
K-means 算法,是比较简单的无监督的算法,通过设定好初始的类别k,然后不断循环迭代,将给定的数据自动分为K个类别。事实上,大家都知道K-means是怎么算的,但实际上,它是GMM(高斯混合模型)的一个特例,其而GMM是基于EM算法得来的,所以本文,将对K-means 算法的算法思想进行分析。
算法流程
K-means 算法的算法流程非常简单,可以从下图进行讲解
(图来自:https://www.cnblogs.com/txx120/p/11487674.html)
将上图的所有点表示成,假设我们将类别k设为2, 那么在给定这些点的同时,我们要求出每个点的类别,以及最终的中心点。
首先,随机生成两个中心点,然后以一下流程进行:
1.根据设定的两个中心点,将所有的和所有的进行距离计算,并根据最近距离分配类别。
2.所有的分配好类别之后,针对每个类别,对该类别的所有点进行中心点计算,并更新所有中心点。
重复以上过程,直至所有中心点,不在变更。
目标函数和分析
通过以上过程,其实可以看到,K-means 其实在求两个东西:
1.每个点到底属于哪个类别
2.每个中心点的坐标
根据上述,我们可以写出K-means 的目标函数:
其中,(假设K=2)是上述要求的中心点,而是其中的隐变量(每个所对应的类别,起初我们是不知道的)。和上述定义的一样,表示的是,第i个样本所对应的类别,如果属于第k个类别,那么,而其他的都等于0,这里你可以理解为一个one-hot 编码,这样做也是为了方便描述目标函数。进一步进行解释,就是你可以认为有一个“类别矩阵”,的每一行,对应的就是每个样本的类别向量。也即(假设此时类别K=2,且这时属于第二类)。
通过上面的介绍,我们能够很明显看到EM算法的影子在里面,首先,对于每个类别,就是对应的隐变量(我们并不知道每个类属于哪个类别)。其次是中心点,就是我们所要求的参数。
(EM算法可以参考https://blog.csdn.net/Willen_/article/details/105004785)
1.通过首先对预设中心点,即假设中心点已知,来求每个点的类别,所以相当于E步,求取隐变量的期望
2.其次,在确定隐变量后,再对所求中心点进行更细 ,即M步,即最大似然估计,也就是最小化目标函数。
通过如此往复的计算,最后得到结果。
为什么说K-means 是GMM的特例呢?
GMM是严格意义上的隐变量模型,它从EM进行推导是能直接推的,但是K-means算法不行,没有严格意义上的证明。
K-means 定义了每个点,有严格意义的类别。而GMM是根据对每个点进行一些概率的估计,即可能某个点,有0.3的概率属于第一个高斯模型,有0.4的概率属于第二个高斯模型,有0.3的概率属于第三个高斯模型,所以其对于每个点的分类,比较“soft”。
欢迎交流,批评指正。
K-means(K均值聚类算法)算法笔记相关推荐
- Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法
聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...
- 机器学习算法之K-means(K均值聚类)算法
聚类 聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好.它是一种无监督的学习(Unsupervised Learning)方法,不需 ...
- 模糊聚类的代码实现python_Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现...
目录 模糊理论 Fuzzy C-Means算法原理 算法步骤 python实现 参考资料 本文采用数据集为iris,将iris.txt放在程序的同一文件夹下.请先自行下载好. 模糊理论 模糊控制是自动 ...
- K-Means(K均值聚类算法)
K-Means(K均值聚类算法) 1.前言 要学习聚类算法就要知道聚类学习算法是什么,为什么要学习聚类学习聚类学习算法,有什么用途,下面就简单的做一下介绍,并且详细的说明k-means均值聚类学习算法 ...
- 聚类之K均值聚类和EM算法
这篇博客整理K均值聚类的内容,包括: 1.K均值聚类的原理: 2.初始类中心的选择和类别数K的确定: 3.K均值聚类和EM算法.高斯混合模型的关系. 一.K均值聚类的原理 K均值聚类(K-means) ...
- 机器学习实战-61:K均值聚类算法(K-Means)
K均值聚类算法(K-Means) 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 机器学习分为监督学习.无监督学习和半监督学习(强化学习).无监督学习最常应用的场景是聚类(clust ...
- pythonk均值实现_python实现k均值算法示例(k均值聚类算法)
简易完成平面图的点K平均值剖析,应用欧几里得间距,并且用pylab展现. 编码以下: import pylab as pl #calc Euclid squire def calc_e_squire( ...
- python机器学习案例系列教程——k均值聚类、k中心点聚类
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 上一篇我们学习了层次聚类.层次聚类只是迭代的把最相近的两个聚类匹配起来.并没有给出能给出多少的分组.今天我们来研究一个K均值聚类.就是 ...
- 基于K均值聚类的葡萄酒品种判别
特别注意:主要思路.程序和分析过程来源于:https://www.kaggle.com/xvivancos/tutorial-clustering-wines-with-k-means.本文在此基础上 ...
- spss实现k均值聚类
机器学习中的k均值聚类属于无监督学习,所谓k指的是簇类的个数,也即均值向量的个数.算法初始状态下,要根据我们设定的k随机生成k个中心向量,随机生成中心向量的方法既可以随机从样本中抽取k个样本作为中心向 ...
最新文章
- 专题 13 IPC之信号量
- 主定理(master theorem)学习小记
- 1380C. Create The Teams
- python模拟浏览器请求的库_基于Python模拟浏览器发送http请求
- L1-046 整除光棍 (20 分)567
- HashMap和Hashtable的区别--List,Set,Map等接口是否都继承自Map接口--Collection和Collections的区别...
- geoserver rest 导入shape文件错误
- selenium--python如何定位一组元素并返回文本值
- 论文总结与展望怎么写?
- 方正璞华研发的社保股权管理系统初见成效
- 一日一技:Python + Excel——飞速处理数据分析与处理
- 110 AddressBook
- mysql migration 使用_DbMigration的使用方法
- 尺寸公差分析尺寸链计算软件:新能源电池行业—模组散热系统之弹簧长度计算
- Ubuntu下GloVe中文词向量模型训练
- Tableau数据分析-Chapter07多边形地图和背景地图
- 多任务学习MTL-MMOE
- 计算机的发展与什么息息相关,第一单元第二课《计算机的发展与应用》.doc
- unity撤销上一步_Unity3D撤回命令开发详解|chu
- 经典面试题扔鸡蛋(Google面试题附带LeetCode例题)
热门文章
- 六、硬盘全盘MBR转GPT格式化(注意备份全盘重要数据)
- Android系统服务Fuzz测试
- 十进制数转换为十六进制数_十进制数制到十六进制数制的转换
- jdbc:oracle:thin:@192.168.3.98:1521:orcl(简单介绍)
- STM32库函数详解----(外部中断/事件控制器 EXTI)
- 多目视频跟踪问题中的物体表示方法探究
- dw测试服务器打不开文件,dw重新设置测试服务器
- YY--MM--DD格式的日期加一天
- Spring循环依赖详解
- ESET NOD32官方活动送一年激活码(9月4号更新)