【Scikit-Learn 中文文檔】協方差估計 / 經驗協方差 / 收斂協方差 / 稀疏逆協方差 / Robust 協方差估計 - 無監督學習 - 用戶指南 | ApacheCN

中文文檔: http://sklearn.apachecn.org/cn/stable/modules/covariance.html

英文文檔: http://sklearn.apachecn.org/en/stable/modules/covariance.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html




2.6. 協方差估計

許多統計問題在某一時刻需要估計一個總體的協方差矩陣,這可以看作是對數據集散點圖形狀的估計。 大多數情況下,基於樣本的估計(基於其屬性,如尺寸,結構,均勻性), 對估計質量有很大影響。 sklearn.covariance 方法的目的是 提供一個能在各種設置下準確估計總體協方差矩陣的工具。

我們假設觀察是獨立的,相同分佈的 (i.i.d.)。

2.7. 經驗協方差

已知數據集的協方差矩陣與經典 maximum likelihood estimator(最大似然估計) (或 “經驗協方差”) 很好地近似,條件是與特徵數量(描述觀測值的變量)相比,觀測數量足夠大。 更準確地說,樣本的最大似然估計是相應的總體協方差矩陣的無偏估計。

樣本的經驗協方差矩陣可以使用 empirical_covariance 包的函數計算 , 或者通過 EmpiricalCovariance 使用 EmpiricalCovariance.fit 方法將對象與數據樣本擬合 。 要注意,取決於數據是否居中,結果會有所不同,所以可能需要準確使用參數 assume_centered。 如果使用 assume_centered=False ,則結果更準確。且測試集應該具有與訓練集相同的均值向量。 如果不是這樣,兩者都應該使用中心值, assume_centered=True 應該使用。

例子:

2.8. 收斂協方差

2.8.1. 基本收斂

儘管是協方差矩陣的無偏估計, 最大似然估計不是協方差矩陣的特徵值的一個很好的估計, 所以從反演得到的精度矩陣是不準確的。 有時,甚至出現數學原因,經驗協方差矩陣不能反轉。 爲了避免這樣的反演問題,引入了經驗協方差矩陣的一種變換方式:shrinkage 。

在 scikit-learn 中,該變換(具有用戶定義的收縮係數) 可以直接應用於使用 shrunk_covariance 方法預先計算協方差。 此外,協方差的收縮估計可以用 ShrunkCovariance 對象 及其 ShrunkCovariance.fit 方法擬合到數據中。 再次,根據數據是否居中,結果會不同,所以可能要準確使用參數 assume_centered 。

在數學上,這種收縮在於減少經驗協方差矩陣的最小和最大特徵值之間的比率。 可以通過簡單地根據給定的偏移量移動每個特徵值來完成, 這相當於找到協方差矩陣的l2懲罰的最大似然估計器(l2-penalized Maximum Likelihood Estimator)。在實踐中,收縮歸結爲簡單的凸變換: \Sigma_{\rmshrunk} = (1-\alpha)\hat{\Sigma} + \alpha\frac{{\rmTr}\hat{\Sigma}}{p}\rm Id.

選擇收縮量, \alpha 相當於設置偏差/方差權衡,下面將討論。

示例:

2.8.2. Ledoit-Wolf 收斂

在他們的 2004 年的論文 [1] 中, O.Ledoit 和 M.Wolf 提出了一個公式, 用來計算優化的收斂係數 \alpha , 它使得估計協方差和實際協方差矩陣之間的均方差進行最小化。

在 sklearn.covariance 包中,可以使用 ledoit_wolf 函數來計算樣本的 基於 Ledoit-Wolf estimator 的協方差, 或者可以針對同樣的樣本 通過擬合 LedoitWolf 對象來獲得。

例子:

參考文獻:

[1] O. Ledoit and M. Wolf, “A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices”, Journal of Multivariate Analysis, Volume 88, Issue 2, February 2004, pages 365-411.

2.8.3. Oracle 近似收縮

在數據爲高斯分佈的假設下,Chen et al. 等 [2] 推導出了一個公式,旨在 產生比 Ledoit 和 Wolf 公式具有更小均方差的收斂係數。 所得到的估計器被稱爲協方差的 Oracle 收縮近似估計器。

在 sklearn.covariance 包中, OAS 估計的協方差可以使用函數 oas 對樣本進行計算,或者可以通過將 OAS 對象擬合到相同的樣本來獲得。

../_images/sphx_glr_plot_covariance_estimation_0011.png

設定收縮時的偏差方差權衡:比較 Ledoit-Wolf 和 OAS 估計量的選擇

參考文獻:

[2] Chen et al., “Shrinkage Algorithms for MMSE Covariance Estimation”, IEEE Trans. on Sign. Proc., Volume 58, Issue 10, October 2010.

示例:

../_images/sphx_glr_plot_lw_vs_oas_0011.png

2.9. 稀疏逆協方差

協方差矩陣的逆矩陣,通常稱爲精度矩陣(precision matrix),它與部分相關矩陣(partial correlation matrix)成正比。 它給出部分獨立性關係。換句話說,如果兩個特徵在其他特徵上有條件地獨立, 則精度矩陣中的對應係數將爲零。這就是爲什麼估計一個稀疏精度矩陣是有道理的: 通過從數據中學習獨立關係,協方差矩陣的估計能更好處理。這被稱爲協方差選擇。

在小樣本的情況,即 n_samples 是數量級 n_features 或更小, 稀疏的逆協方差估計往往比收斂的協方差估計更好。 然而,在相反的情況下,或者對於非常相關的數據,它們可能在數值上不穩定。 此外,與收斂估算不同,稀疏估計器能夠恢復非對角線結構 (off-diagonal structure)。

GraphLasso 估計器使用 L1 懲罰執行關於精度矩陣的稀疏性: alpha 參數越高,精度矩陣的稀疏性越大。 相應的 GraphLassoCV 對象使用交叉驗證來自動設置 alpha 參數。

../_images/sphx_glr_plot_sparse_cov_0011.png

Note

   

結構恢復

從數據中的相關性恢復圖形結構是一個具有挑戰性的事情。如果您對這種恢復感興趣,請記住:

  • 相關矩陣的恢復比協方差矩陣更容易:在運行 GraphLasso 前先標準化觀察值
  • 如果底層圖具有比平均節點更多的連接節點,則算法將錯過其中一些連接。
  • 如果您的觀察次數與底層圖形中的邊數相比不大,則不會恢復。
  • 即使您具有良好的恢復條件,通過交叉驗證(例如使用GraphLassoCV對象)選擇的 Alpha 參數將導致選擇太多邊。 然而,相關邊緣將具有比不相關邊緣更重的權重。

數學公式如下:

\hat{K} = \mathrm{argmin}_K \big(            \mathrm{tr} S K - \mathrm{log} \mathrm{det} K            + \alpha \|K\|_1            \big)

其中:K 是要估計的精度矩陣(precision matrix), S 是樣本的協方差矩陣。 \|K\|_1 是非對角係數 K (off-diagonal coefficients)的絕對值之和。 用於解決這個問題的算法是來自 Friedman 2008 Biostatistics 論文的 GLasso 算法。 它與 R 語言 glasso 包中的算法相同。

例子:

合成數據示例,顯示結構的一些恢復,並與其他協方差估計器進行比較。

參考文獻:

2.10. Robust 協方差估計

實際數據集通常是會有測量或記錄錯誤。合格但不常見的觀察也可能出於各種原因。 每個不常見的觀察稱爲異常值。 上面提出的經驗協方差估計器和收縮協方差估計器對數據中異常觀察值非常敏感。 因此,應該使用更好的協方差估計(robust covariance estimators)來估算其真實數據集的協方差。 或者,可以使用更好的協方差估計器(robust covariance estimators)來執行異常值檢測, 並根據數據的進一步處理,丟棄/降低某些觀察值。

sklearn.covariance 包實現了 robust estimator of covariance, 即 Minimum Covariance Determinant [3] 。

2.10.1. 最小協方差決定

最小協方差決定(Minimum Covariance Determinant)估計器是 由 P.J. Rousseeuw 在 [3] 中引入的數據集協方差的魯棒估計 (robust estimator)。 這個想法是找出一個給定比例(h)的 “好” 觀察值,它們不是離羣值, 且可以計算其經驗協方差矩陣。 然後將該經驗協方差矩陣重新縮放以補償所執行的觀察選擇(”consistency step(一致性步驟)”)。 計算最小協方差決定估計器後,可以根據其馬氏距離(Mahalanobis distance)給出觀測值的權重, 這導致數據集的協方差矩陣的重新加權估計(”reweighting step(重新加權步驟)”)。

Rousseeuw 和 Van Driessen [4] 開發了 FastMCD 算法,以計算最小協方差決定因子(Minimum Covariance Determinant)。 在 scikit-learn 中,該算法在將 MCD 對象擬合到數據時應用。FastMCD 算法同時計算數據集位置的魯棒估計。

Raw估計可通過 MinCovDet 對象的 raw_location_ 和 raw_covariance_ 屬性獲得。

參考文獻:

[3] (12) P. J. Rousseeuw. Least median of squares regression. J. Am Stat Ass, 79:871, 1984.
[4] A Fast Algorithm for the Minimum Covariance Determinant Estimator, 1999, American Statistical Association and the American Society for Quality, TECHNOMETRICS.

例子:

Influence of outliers on location and covariance estimates Separating inliers from outliers using a Mahalanobis distance
robust_vs_emp mahalanobis




中文文檔: http://sklearn.apachecn.org/cn/stable/modules/covariance.html

英文文檔: http://sklearn.apachecn.org/en/stable/modules/covariance.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html

有興趣的們也可以和我們一起來維護,持續更新中 。。。

機器學習交流羣: 629470233

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章