页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

sklearn.mixture是一个可以让人学习高斯混合模型(支持对角线,球面,连接和全协方差矩阵)的包,对它们进行采样,并从数据中估计它们。还提供了帮助确定适当数量的组件的设施。

双组分高斯混合模型: 数据点和模型的等概率表面。

高斯混合模型是概率模型,其假设所有数据点都是从有限数量的具有未知参数的高斯分布的混合生成的。人们可以将混合模型看作是推广k均值聚类,以纳入关于数据的协方差结构以及潜在高斯中心的信息。

Scikit学习实现不同的类来估计对应于不同估计策略的高斯混合模型,详细描述如下。

 

高斯混合

GaussianMixture对象实现了用于拟合高斯模型混合的 期望最大化(EM)算法。它还可以为多变量模型绘制置信椭球,并计算贝叶斯信息准则以评估数据中的聚类数。甲GaussianMixture.fit提供方法,其学习从列车数据高斯混合模型。给定测试数据,它可以为每个样本分配它大多数可能属于使用该GaussianMixture.predict方法的高斯。

GaussianMixture带有不同的选项来约束估计的差班的协方差:球形,对角线,捆绑或全协方差。

例子:

  • 有关使用高斯混合物作为聚类在虹膜数据集上的示例,请参阅GMM协方差
  • 有关绘制密度估计的示例,请参阅高斯混合的密度估计。

优点和一流的利弊GaussianMixture

优点

速度:这是学习混合模型的最快算法
不可知论:由于该算法仅使可能性最大化,因此不会将该方法偏向零,或者将集群大小偏置为具有可能适用或可能不适用的特定结构。

 

缺点

奇点:当每个混合物的点数不足时,估计协方差矩阵变得困难,并且该算法已知会发散并找到具有无限可能性的解,除非人为地对协方差进行规则化。
组件数量:
 该算法将始终使用其可访问的所有组件,需要保留数据或信息理论标准来决定在没有外部线索的情况下使用多少组件。

 

选择经典高斯混合模型中的分量数

BIC标准可用于以高效的方式选择高斯混合中的分量数。理论上,它仅在渐近状态中恢复分量的真实数量(即,如果有大量数据可用,并且假设数据实际上是从高斯分布的混合中生成的)。注意,使用变分贝叶斯高斯混合, 避免了高斯混合模型的分量数量的规范。

例子:


估计算法期望最大化

从未标记的数据中学习高斯混合模型的主要困难在于,通常不知道哪个点来自哪个潜在分量(如果一个人可以访问这个信息,则很容易将单独的高斯分布适合于每组点)。期望最大化 是一个有根据的统计算法,通过迭代过程来解决这个问题。第一个假设是随机分量(以数据点为中心,从k均值学习,或者甚至仅在原点正态分布),并且为每个点计算由模型的每个分量生成的概率。然后,一个调整参数以最大化给出这些分配的数据的可能性。重复这个过程保证总是收敛到局部最优。

 

变分贝叶斯高斯混合

BayesianGaussianMixture对象实现了具有变分推理算法的高斯混合模型的变体。API类似于定义的API GaussianMixture

估计算法:变分推理

变异推理是期望最大化的延伸,其最大化模型证据(包括先验)的下限,而不是数据可能性。变分方法的原理与期望最大化相同(这是迭代算法,它们在找到每个混合物产生的每个点的概率之间进行交替,并将混合物拟合到这些分配点)交替,但是变分方法通过整合来自先前发行版的信息。这避免了在期望最大化解决方案中经常发现的奇异点,但是向模型引入了一些微妙的偏见。推论通常明显较慢,但通常不会太多,以致使用不切实际。

由于其贝叶斯特征,变分算法需要比期望最大化更多的超参数,其中最重要的是浓度参数weight_concentration_prior。为先前的浓度指定低值将使模型将大部分重量放在少数组件上,使剩余组分重量非常接近零。先前浓度的高值将允许更多数量的组分在混合物中具有活性。

BayesianGaussianMixture该类的参数实现提出了权重分布的两种类型:具有Dirichlet分布的有限混合模型和具有Dirichlet过程的无限混合模型。在实践中,Dirichlet过程推理算法被近似并使用具有固定的最大数量的分量的截断分布(称为破坏破坏表示)。实际使用的组件数量几乎总是取决于数据。

下一个数字比较了不同类型的重量浓度(参数weight_concentration_prior_type)对于不同值的结果weight_concentration_prior。在这里,我们可以看到weight_concentration_prior参数的值对所获得的有效元件的有效数量有很大的影响。我们还可以注意到,当先前的类型是“dirichlet_distribution”时,浓度权重的大值导致更均匀的权重,而“dirichlet_process”类型(默认使用)并不一定是这样。

下面的例子将具有固定数量的分量的高斯混合模型与之前的Dirichlet过程的变分高斯混合模型进行比较。这里,经典的高斯混合体在由2个簇组成的数据集上装有5个分量。我们可以看到,具有Dirichlet过程的变分高斯混合能够将自身仅限于2个组件,而高斯混合使用必须由用户先验设置的固定数量的组件来适应数据。在这种情况下,用户已经选择了 n_components=5与玩具数据集的真实生成分布不匹配。注意,通过很少的观察,具有Dirichlet过程的变分高斯混合模型可以采取保守的立场,并且仅适合于一个组件。

在下图中,我们拟合了一个未被高斯混合体描绘的数据集。调整weight_concentration_prior类的参数:贝叶斯GaussianMixture控制用于拟合此数据的组件数。我们还在最后两个图上呈现了从两个混合物产生的随机抽样。

例子:

变分推理的优点与缺点BayesianGaussianMixture

优点

自动选择:
 weight_concentration_prior足够小并且 n_components大于模型所需的情况时,变分贝叶斯混合模型具有将某些混合权重值设置为接近零的自然趋势。这使得模型可以自动选择合适数量的有效组件。只需要提供这个数字的上限。但是请注意,“理想”数量的活动组件非常适用于特定应用程序,并且在数据探索环境中通常不明确。
对参数数量的敏感度较低:
 与有限模型不同,它们几乎总是尽可能多地使用所有组件,因此将为不同数量的组件生成截然不同的解决方案,使用Dirichlet过程before(weight_concentration_prior_type='dirichlet_process')的变体推理将不会随着参数的更改而变化很大,导致更多的稳定性和更少的调整。
正则:由于结合了先前的信息,变分解决方案比预期最大化解决方案具有较少的病理特殊情况。

 

缺点

速度:变分推理所需的额外参数化推理速度较慢,虽然不大。
超参数:
 该算法需要一个额外的超参数,可能需要通过交叉验证进行实验调整。
偏压:在推理算法中也存在许多隐含的偏差(如果使用Dirichlet过程),并且只要这些偏差和数据之间存在不匹配,就有可能使用有限混合来拟合更好的模型。

 

Dirichlet过程

这里我们描述了Dirichlet过程混合物的变分推理算法。Dirichlet过程是具有无限的,无界的数量的分区的聚类上的先验概率分布 。与有限高斯混合模型相比,变分技术使我们在推理时间几乎没有惩罚的情况下将这个先验结构纳入高斯混合模型。

一个重要的问题是Dirichlet进程如何使用无限的无界数量的集群,并且仍然是一致的。虽然完整的解释不符合本手册,可以想到其突破性的过程<https://en.wikipedia.org/wiki/Dirichlet_process#The_stick-breaking_process>, 以帮助您了解它。破碎过程是Dirichlet过程的生成故事。我们从一个单位长度的棍子开始,在每一步,我们打破剩下的棍子的一部分。每次,我们将棒的长度与落入一组混合物的点的比例相关联。最后,为了代表无限混合,我们将最后一块棍子与不属于所有其他组的点的比例相关联。每个片段的长度为随机变量,概率与浓度参数成比例。较小的浓度值会将单位长度分成较大的棒块(定义更集中的分布)。较大的浓度值会产生较小的棒块(增加非零重量的组件数量)。

Dirichlet过程的变分推理技术仍然适用于无限混合模型的有限近似,而不是必须先确定要使用多少个组分,只需指定浓度参数和混合数量的上限组件(这个上限,假定它高于“真实”组件数量,只影响算法的复杂性,而不是实际使用的组件数量)。

 

  • 无标签