十二、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當成一個密度評估器,僅在簡單數據集中才將它作為聚類算法使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM