Scikit Learn 中的 Ledoit-Wolf 與 OAS 估計


理解估計協方差矩陣的各種技術在機器學習領域至關重要。Scikit-Learn 包含兩種流行的協方差估計方法,本文將對它們進行比較:Ledoit-Wolf 和 Oracle 近似收縮 (OAS) 估計。

協方差估計簡介

在我們開始比較之前,讓我們先了解協方差估計。在統計和資料分析中,協方差估計是一種用於理解和量化資料集中多個維度或特徵之間關係的技術。在處理多維資料集時,這一點變得更加重要,因為理解各種變數之間的關係可以提高機器學習模型的效能。

Ledoit-Wolf 估計

Ledoit-Wolf 協方差估計方法採用向結構化估計量的收縮。這種技術在處理高維資料時特別有用,在高維資料中,特徵數量超過可用樣本數量。在這種情況下,使用資料生成的經驗協方差矩陣不是可靠的估計。為了解決這個問題,Ledoit-Wolf 收縮方法透過向單位矩陣方向收縮來增強經驗協方差矩陣。

Oracle 近似收縮 (OAS) 估計

與 Ledoit-Wolf 估計器一樣,OAS 估計器也估計收縮,但它使用不同的目標矩陣。OAS 估計器將經驗協方差矩陣收縮到期望值矩陣而不是單位矩陣。在 OAS 估計中考慮收縮時,均方誤差會降低,從而產生通常比 Ledoit-Wolf 效能更好的估計。

Scikit-Learn 中的 Ledoit-Wolf 與 OAS 估計:比較分析

讓我們使用 Scikit-Learn 的示例更詳細地檢查 Ledoit-Wolf 和 OAS 估計之間的比較。

示例 1:基本的協方差估計

from sklearn.covariance import LedoitWolf, OAS
import numpy as np

# Generating a sample dataset
np.random.seed(0)
X = np.random.normal(size=(100, 3)) 

# Ledoit-Wolf estimation
lw = LedoitWolf()
lw.fit(X)
print("LedoitWolf Covariance:\n", lw.covariance_)

# OAS estimation
oas = OAS()
oas.fit(X)
print("OAS Covariance:\n", oas.covariance_)

在這個簡單的示例中,使用隨機生成的資料集,使用 Ledoit-Wolf 和 OAS 方法來確定協方差矩陣。由於多個收縮目標,您會看到協方差矩陣相似但不完全相同。

示例 2:高維資料

from sklearn.covariance import LedoitWolf, OAS
import numpy as np

# Generating high-dimensional data
np.random.seed(0)
X = np.random.normal(size=(50, 200))  # 50 samples, 200 features

# Ledoit-Wolf estimation
lw = LedoitWolf()
lw.fit(X)
print("LedoitWolf Covariance:\n", lw.covariance_)

# OAS estimation
oas = OAS()
oas.fit(X)
print("OAS Covariance:\n", oas.covariance_)

同樣,在這個高維情況下,Ledoit-Wolf 和 OAS 計算產生不同的結果。由於資料的維度很高,兩種估計器之間的差異將更加明顯。OAS 估計在這種情況下通常表現更好。

務必記住,在高維情況下,Ledoit-Wolf 和 OAS 估計都將比經驗協方差產生更可靠的結果。選擇使用 Ledoit-Wolf 還是 OAS 將取決於您的應用程式的具體要求。

示例 3:比較收縮

比較這兩個估計器的另一種方法是檢視它們的收縮引數。

# Generating a sample dataset
np.random.seed(0)
X = np.random.normal(size=(100, 3)) 

# Ledoit-Wolf estimation
lw = LedoitWolf()
lw.fit(X)
print("LedoitWolf Shrinkage:", lw.shrinkage_)

# OAS estimation
oas = OAS()
oas.fit(X)
print("OAS Shrinkage:", oas.shrinkage_)

在本例中,檢視每個估計器的 `shrinkage_` 屬性,以瞭解應用於經驗協方差矩陣的收縮量。精確的收縮值將取決於估計器和底層資料。

結論

在高維情況下,Ledoit-Wolf 和 OAS 是兩種有效的協方差估計方法,可提供準確的估計。由於其對期望值矩陣的最佳收縮,尤其是在處理高維資料時,OAS 估計器通常優於 Ledoit-Wolf 估計器。

但是,應根據機器學習專案的具體需求和約束來選擇使用 Ledoit-Wolf 還是 OAS。儘管 OAS 通常會產生更好的結果,但在某些情況下,由於其計算效率和簡單性,Ledoit-Wolf 估計可能更合適。需要進行實驗才能確定最適合您的資料集和情況的估計器。

更新於:2023年7月17日

263 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告