zoukankan      html  css  js  c++  java
  • 十二、Sklearn高斯混合模型

    参考url:

    https://jakevdp.github.io/PythonDataScienceHandbook/05.12-gaussian-mixtures.html

    1、高斯混合模型(GMM)为什么会出现:k-means算法的缺陷

      

       某些点的归属簇比其他点的归属簇更加明确,比如中间的两个簇似乎有一小块区域重合,因此对重合部分的点将被分配到哪个簇不是很有信心,而且k-means模型本身没有度量簇的分配概率或不确定性的方法。

      理解k-means模型的一种方法是:它在每个簇的中心放置了一个圆圈(在更高维空间中是一个超空间),圆圈半径根据最远的点与簇中心点的距离算出。这个半径作为训练集分配簇的硬切断(hard cutoff),即在这个圆圈之外的任何点都不是该簇的成员。

      

       k-means有一个重要特征,它要求这些簇的模型必须是圆形:k-means算法没有内置的方法来实现椭圆形的簇,因此,如果对同样的数据进行一些转换,簇的分配就被变得混乱。

      

       这些变形的簇并不是圆形的,因此圆形的簇拟合效果非常糟糕,k-means强行将数据拟合至4个圆形的簇会导致多个圆形的簇混在一起、互相重叠,右下部分尤其明显。

      k-means的两个缺点(类的形状缺少灵活形、缺少簇分配的概率),使得它对许多数据集(特别是低维数据集)的拟合效果不尽人意。

      高斯混合模型的两个基本组成部分:

      (1)通过比较每个点与所有簇中心点的距离来度量簇分配的不确定性,而不仅仅是关注最近的簇。

      (2)通过将簇的边界由圆形放宽至椭圆形,从而得到非圆形的簇。

    2、一般化E-M:高斯混合模型

      高斯混合模型(Gaussian mixture model,GMM)试图找到多维高斯概率分布的混合体,从而获得任意数据集最好的模型。

      

      由于GMM有一个隐含的概率模型,因此它也可能找到簇分配的概率结果——在Scikit-Learn中用predict_proba方法实现,这个方法返回一个大小为[n_samples,n_clusters]的矩阵,矩阵会给出任意点属于某个簇的概率。

      

       

       高斯混合模型本质上和k-means模型非常类似,它们都使用了期望最大化方法,具体实现如下:

      (1)选择初始簇的中心位置和形状

      (2)重复直至收敛

        a、期望步骤(E-step):为每个点找到对应每个簇的概率作为权重。

        b、最大化步骤(M-step):更新每个簇的位置,将其标准化,并且基于所有数据点的权重来确定形状

      每个簇的结果并不与硬边缘的空间(hard-edgedsphere)有关,而是通过高斯平滑模型实现。

      高斯模型允许使用全协方差(full covariance),即使是于非常扁平的椭圆形的簇,该模型也可以处理。

      其中的超参数covariance_type控制了每个簇的形状自由度,它的默认值是covariance_type='diag',意思是簇在每个维度的尺寸都可以单独设置,椭圆边界的主轴与坐标轴平行。

      当covariance_type='spherical'时,该模型通过约束簇的形状,让所有维度相等,这样得到的聚类结果和k-means聚类的特征是相似的,但两者并不完全相同。

      当covariance_type='full'时,该模型允许每个簇在任意方向上用椭圆建模。

    3、将GMM用作密度估计

      虽然GMM通常被归类为聚类算法,但它本质上是一个密度估计算法,从技术的角度考虑,即一个GMM拟合的结果并不是一个聚类模型,而是描述数据分布的生成概率模型。

      GMM是一种非常方便的建模方法,可以为数据估计出任意维度的随机分布

      作为一种生成模型,GMM提供了一种确定数据集最优成分数量的方法:由于生成模型本身就是数据集的概率分布,因此可以利用该模型来评估数据的似然估计,并利用交叉检验防止过拟合,纠正过拟合的标准分析方法有赤池信息量准则(Akaike information criterion,AIC)和贝叶斯信息准则(Bayesian information criterion,BIC),用来调整模型的似然估计,这两种度量准则的计算方法内置在Scikit-Learn的GMM评估器内。

      

       类的最优数量出现在AIC或BIC曲线最小值的位置,最终结果取决于我们更希望使用哪一种近似。

      AIC告诉我们,选择16个成分可能太多,8个~12个成分可能是更好的选择。

      这里需要注意的是:成分数量的选择度量的是GMM作为一个密度评估器的性能,而不是作为一个聚类算法的性能,建议把GMM当成一个密度评估器,仅在简单数据集中才将它作为聚类算法使用。

  • 相关阅读:
    个人冲刺二(7)
    个人冲刺二(6)
    个人冲刺二(5)
    个人冲刺二(4)
    对称二叉树 · symmetric binary tree
    108 Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    pp 集成工程师 mism师兄问一问
    17. Merge Two Binary Trees 融合二叉树
    270. Closest Binary Search Tree Value 二叉搜索树中,距离目标值最近的节点
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12541550.html
Copyright © 2011-2022 走看看