百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
文章目录
- 一、总结K均值算法步骤
- 二、如何合理选择K值?
- 三、K均值算法的优缺点是什么?
- 四、如何对K均值算法进行调优?
- 五、EM算法解决什么问题?
- 六、EM算法流程是什么?
- 六、EM算法能保证收敛嘛?如果收敛能收敛到全局最大值嘛?
- 七、EM为什么不用牛顿法或者梯度下降?
- 八、高斯混合模型GMM的核心思想是什么?
- 九、高斯混合模型是如何迭代计算的?
- 十、高斯混合模型与K均值算法比较
- 十一、如何快速收敛数据量大的k-means算法?
插眼:
- 百面机器学习—1.特征工程
- 百面机器学习—2. 特征工程与模型评估要点总结
- 百面机器学习—3.逻辑回归与决策树要点总结
- 百面机器学习—4.SVM模型基础知识
- 百面机器学习—5.SVM要点总结
- 百面机器学习—6.PCA与LDA要点总结
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
- 百面机器学习—8.概率图模型之HMM模型
- 百面机器学习—9.前馈神经网络面试问题总结
- 百面机器学习—10.循环神经网络面试问题总结
- 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
- 百面机器学习—12.优化算法
一、总结K均值算法步骤
二、如何合理选择K值?
- 手肘法
我们可以尝试不同的K值,并将不同K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差
平方和所定义的损失函数。
由图可见,K值越大,距离和越小;并且,当K=3时,存在一个拐点,就像人的肘部一样;当K∈(1,3)时,曲线急速下降;当K>3时,曲线趋于平稳。手肘法认为拐点就是K的最佳值。 - Gap Statistic 方法
Gap(K)为随机样本的损失与实际样本的损失之差。试想实际样本对应的最佳簇数为K,那么实际样本的损失应该相对较小,随机样本损失与实际样本损失之差也相应地达到最大值,从而Gap(K)取得最大值所对应的K值就是最佳的簇数。
由图可见,当K=3时,Gap(K)取值最大,所以最佳的簇数是K=3。 - 不同的K值将输出不同的结果,我们可以通过考察簇的分离情况与簇的紧凑情况来评估聚类效果。即利用轮廓系数评估指标来选择适当K值。当然这种方式可能存在问题,因为K均值聚类效果易受初始点的影响,而K均值算法中会随机选取数据集的K个点作为初始聚类中心,不能确保不同K对应的初始聚类中心是一样的。
三、K均值算法的优缺点是什么?
优点:
- 对于大数据集,K均值聚类算法相对是可伸缩和高效的,它的计算复杂度是O(NKt)接近于线性,其中N是数据对象的数目,K是聚类的簇数,t是迭代的轮数。
- 尽管算法经常以局部最优结束,但一般情况下达到的局部最优已经可以满足聚类的需求。
缺点:
- 需要人工预先确定初始K值,且该值和真实的数据分布未必吻合。
- K均值只能收敛到局部最优,效果受到初始值很大。
- 易受到噪点的影响。
- 无法很好解决数据簇分布类别差别巨大的情况
四、如何对K均值算法进行调优?
- 数据归一化和离群点处理
K均值聚类本质上是基于欧式距离度量的数据划分方法,所以需要进行归一化。离群点会对均值产生较大影响,导致中心偏移。 - 合理选择K值
- 采用核函数
K均值算法本质上假设了各个数据簇的数据具有一样的先验概率,并呈现球形或者高维球形分布,这种分布在实际生活中并不常见。因此,引入核函数来进行优化。核聚类方法的主要思想是通过一个非线性映射,将输入空间中的数据点映射到高维的特征空间中,并在新的特征空间中进行聚类。非线性映射增加了数据点线性可分的概率,从而在经典的聚类算法失效的情况下,通过引入核函数可以达到更为准确的聚类结果。
五、EM算法解决什么问题?
EM算法解决的是在概率模型中含有无法观测的隐含变量情况下的参数估计问题。由于含有无法观测的隐含变量,因此无法直接用极大化对数似然函数得到模型分布的参数。
EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。
EM算法原理总结
六、EM算法流程是什么?
六、EM算法能保证收敛嘛?如果收敛能收敛到全局最大值嘛?
EM算法原理总结
七、EM为什么不用牛顿法或者梯度下降?
EM求解的是带隐变量的参数估计问题,隐变量是隐含无法观察的,因此对似然函数进行求导是求不出来的
八、高斯混合模型GMM的核心思想是什么?
高斯混合模型的核心思想是,假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值uiu_iui和方差∑i\sum_i∑i是待估计的参数。此外,每个分模型都还有一个参数πiπ_iπi可以理解为权重或生成数据的概率。高斯混合模型的公式为:
高斯混合模型是一个生成式模型。可以这样理解数据的生成过程,假设一个最简单的情况,即只有两个一维标准高斯分布的分模型N(O,1)和N(5,1),其权重分别为0.7和0.3。那么,在生成第一个数据点时,先按照权重的比例,随机选择一个分布,比如选择第一个高斯分布,接着从N(0,1)中生成一个点,如一0.5,便是第一个数据点。在生成第二个数据点时,随机选择到第二个高斯分布N(5,1),生成了第二个点4.7。如此循环执行,便生成出了所有的数据点。
九、高斯混合模型是如何迭代计算的?
给定一个类别数量K后,高斯混合模型的计算,便成了最佳的均值uiu_iui和方差∑i\sum_i∑i、权重πiπ_iπi的寻找,这类问题通常通过最大似然估计来求解。遗憾的是,此问题中直接使用最大似然估计,得到的是一个复杂的非凸函数,目标函数是和的对数,难以展开和对其求偏导。我们使用EM算法框架来求解该问题。EM算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环。具体到高斯混合模型的求解,EM算法的迭代过程如下。
- 首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。
- E步骤:根据当前的参数,计算每个点由某个分模型生成的概率。
- M步骤:使用E步骤估计出的概率来改进每个分模型的均值,方差和权重。
也就是说,我们并不知道最佳的K个高斯分布的各自3个参数,也不知道每个数据点究竟是哪个高斯分布生成的。所以每次循环时,先固定当前的高斯分布不变,获得每个数据点由各个高斯分布生成的概率。然后固定该生成概率不变,根据数据点和生成概率,获得一个组更佳的高斯分布。循环往复,直到参数的不再变化,或者变化非常小时,便得到了一组比较合理的高斯分布。
十、高斯混合模型与K均值算法比较
高斯混合模型与K均值算法的相同点是,它们都是可用于聚类的算法;都需要指定K值;都是使用EM算法来求解;都往往只能收敛于局部最优。而它相比于K均值算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可以用于生成新的样本点。
十一、如何快速收敛数据量大的k-means算法?
Mini Batch Kmeans方法:
- 从数据集中随机抽取一些数据形成小批量,把他们分配给最近的质心
- 更新质心:与k均值算法相比,数据的更新是在每一个小的样本集上。对于每一个小批量,通过计算平均值得到更新质心,并把小批量里的数据分配给该质心,随着迭代次数的增加,这些质心的变化是逐渐减小的,直到质心稳定或者达到指定的迭代次数,停止计算。
如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!
百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结相关推荐
- java k均值_算法——K均值聚類算法(Java實現)
1.用途:聚類算法通常用於數據挖掘,將相似的數組進行聚簇 2.原理:網上比較多,可以百度或者google一下 3.實現:Java代碼如下 package org.algorithm; import j ...
- 机器学习(十)——期望值最大算法(EM算法)
10.期望值最大算法(EM算法) 1.Jensen不等式 设 fff 为一个函数,其定义域(domain)为整个实数域(set of real numbers).这里要回忆一下,如果函数 fff 的二 ...
- 期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用
期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用 EM的应用 EM算法有很多的应用,最广泛的就是GMM混合高斯模型.聚类.HMM等等.具体可以参考Jerry ...
- 机器学习之K均值(K-Means)算法
1.K-Means简介 K均值(K-Means)算法是无监督的聚类方法,实现起来比较简单,聚类效果也比较好,因此应用很广泛.K-Means算法针对不同应用场景,有不同方面的改进.我们从最传统的K-Me ...
- 机器学习算法之K-means(K均值聚类)算法
聚类 聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好.它是一种无监督的学习(Unsupervised Learning)方法,不需 ...
- 机器学习算法-EM算法
前言 EM算法是机器学习十大算法之一,它很简单,但是也同样很有深度,简单是因为它就分两步求解问题 E步:求期望(expectation) M步:求极大(maximization) 深度在于它的数学推理 ...
- 史上简单易学的机器学习算法——EM算法 缘木求鱼
一.机器学习中的参数估计问题 二.EM算法简介 在上述存在隐变量的问题中,不能直接通过极大似然估计求出模型中的参数,EM算法是一种解决存在隐含变量优化问题的有效方法.EM算法是期望极大(Expecta ...
- 机器学习系列(三)——EM算法
1.前言 EMEMEM算法即期望最大化算法,是用于计算最大似然估计的迭代方法,常用在隐变量模型的参数学习中,所谓隐变量就是指数据的不完整性,也就是训练数据并不能给出关于模型结果的全部信息,因此只能对模 ...
- 机器学习经典算法---EM算法(一文秒懂极大释然估计和EM算法)
目录 一.极大似然估计 1.明确极大似然函数的目的 2.通俗体现极大似然估计思想的例子 案例一: 案例二: 小结: 二.由问题引入EM算法 1.掷硬币问题: 2.掷硬币问题-升级版: 3.掷硬币问题- ...
最新文章
- c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...
- 跳水比赛背后的隐形教练现身了!百度智能云还完成了历史性的大升级
- 嵌入式linux内核oops,Linux编程时遇到Oops提示该如何排查?
- 成功解决AttributeError: module tensorflow has no attribute random_normal
- redis设置键的生存时间或过期时间
- Flowable 数据库表结构 ACT_HI_TASKINST
- java代码程序流程思想_控制执行流程——java编程思想第4章
- Unity学习疑问记录之图片画质
- 永不消逝的电波-wirteup
- 三端稳压管反向击穿情况及分析与防护措施
- 高级Java程序员技术栈
- 宝元系统通讯软件recon_企业即时通讯系统拥有哪些二次开发能力?
- html添加启动项,电脑BIOS启动项怎么设置?bios设置启动项图解
- hadoop集群搭建与使用
- android 混淆不起作用,Android代码混淆的写法总结
- 为什么大家都愿意进入外企?
- ROS专题----tf和tf2坐标变换
- [Activeden] slick full website template with cms and 2 skins 中文版
- CodeBlock速配wxWidgets[U版]
- gsoap初始化释放_gSOAP中文文档