EM算法;k-means;高斯混合模型

EM 算法解决的是在概率模型中含有无法观测的隐含变量情况下的参数估计问题 。
EM算法;k-means;高斯混合模型_第1张图片
EM算法:

选择初值
for i in epoch:
	E步:计算期望
	M步:最大化

K -means的核心目标是将数据集划分成 K 个簇,并给出每个数据对应的簇中心点。训练时给定k值,网络把数据划分为k个簇;测试时,距离那个簇的中心点最近就属于哪个类别。
算法的具体步骤描述如下:

随机选取k个中心
for i in epoch:
	for 每个样本:
		对每个样本,将其分配到距离最近的簇:
		c=argmin||x-u||2
	for 每个簇中心:
		重新计算每个簇的中心,取均值或者计算每个点与其他点距离和最小的马哥点

K 均值算法有一些缺点,例如受初值和离群点的影晌每次的结果不稳定、结果通常不是全局最优而是局部最优解、不太适用于离散分类等 。 优点主要体现在对于大数据集, K 均值聚类算法相对是可伸缩和高效的,计算复杂度是 O(NKt) 接近于线性,真中N是数据对象的数目, K 是聚类的簇数, t 是迭代的轮数。
K 均值算法等价于用 EM 算法求解以下含隐变量的最大似然问题:
在这里插入图片描述
K-means算法相当于EM算法的一个应用。
高斯混合模型的求解也相当于EM算法的一个应用。
高斯混合模型的核心思想是假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值和方差是待估计的参数 。高斯混合模型的求解就是得到每个分模型的均值和方差。
具体到高斯混合模型的求解,EM算法的迭代过程如下。
首先初始随机选择各参数的值。然后,重复下述两步直到收敛 。
( 1 ) E 步骤 。根据当前的参数,计算每个点由某个分模型生成的概率 。
( 2 )M 步骤。使用E 步骤估计出的概率,来改进每个分模型的均值,方差和权重 。
也就是说我们并不知道最佳的 K 个高斯分布的各自 3 个参数,也不知道每个数据点究竟是哪个高斯分布生成的 。 所以每次循循环时,先固定当前的高斯分布不变,获得每个数据点由各个高斯分布生成的概率 。然后固定该生成慨率不变,根据数据点和生成概率获得一个组更佳的高斯分布。循环往复,直到参数不再变化,或者变化非常小时便得到了比较合理的高斯分布。

高斯混合模型,K-means和EM算法的关系:
高斯混合模型与 K 均值算法的相同点是它们都是可用于聚类的重法;都需要指定 K值 ;都是使用 EM 算法来求解,都往往只能收敛于局部最优 。 而它相比于 K均值算法的优点是,可以给出一个样本属于某类的概率是多少,不仅仅可以用于聚类,还可以用于概率密度的估计,并且可以用于生成新的样本点 。

你可能感兴趣的:(EM算法;k-means;高斯混合模型)