Cross-Validation

嶺回歸在高維中無用嗎(𝑛≪𝑝n≪pn ll p)?OLS 怎麼會不會過擬合?

  • February 14, 2018

考慮一個很好的舊回歸問題預測變量和样本量. 通常的觀點是 OLS 估計器會過擬合,並且通常會被嶺回歸估計器優於:

使用交叉驗證來找到最佳正則化參數是標準的. 這裡我使用 10-fold CV。澄清更新:何時,通過“OLS 估計器”,我理解“最小範數 OLS 估計器”由 我有一個數據集和. 所有的預測器都是標準化的,有不少(單獨)可以很好地預測. 如果我隨機選擇一個小的,說,預測變量的數量,我得到一個合理的 CV 曲線:大的值產生零 R 平方,小值產生負 R 平方(由於過度擬合),並且在兩者之間有一些最大值。為了曲線看起來很相似。然而,對於比這大得多,例如,我根本沒有得到任何最大值:曲線高原,這意味著 OLS 與性能與最優的嶺回歸一樣好.

在此處輸入圖像描述

這怎麼可能?它對我的數據集有什麼影響?我是否遺漏了一些明顯的東西,或者它確實違反直覺?怎麼會有質的區別和鑑於兩者都大於?

最小範數OLS解在什麼條件下 沒有過擬合?


**更新:**評論中有一些不相信,所以這裡有一個使用glmnet. 我使用 Python,但 R 用戶會輕鬆調整代碼。

%matplotlib notebook

import numpy as np
import pylab as plt
import seaborn as sns; sns.set()

import glmnet_python    # from https://web.stanford.edu/~hastie/glmnet_python/
from cvglmnet import cvglmnet; from cvglmnetPlot import cvglmnetPlot

# 80x1112 data table; first column is y, rest is X. All variables are standardized
mydata = np.loadtxt('../q328630.txt')   # file is here https://pastebin.com/raw/p1cCCYBR
y = mydata[:,:1]
X = mydata[:,1:]

# select p here (try 1000 and 100)
p = 1000

# randomly selecting p variables out of 1111
np.random.seed(42)
X = X[:, np.random.permutation(X.shape[1])[:p]]

fit = cvglmnet(x = X.copy(), y = y.copy(), alpha = 0, standardize = False, intr = False, 
              lambdau=np.array([.0001, .001, .01, .1, 1, 10, 100, 1000, 10000, 100000]))
cvglmnetPlot(fit)
plt.gcf().set_size_inches(6,3)
plt.tight_layout()

在此處輸入圖像描述 在此處輸入圖像描述

由於理論 PCA 中存在許多小組件,因此會發生自然正則化. 這些小分量隱含地使用小係數來擬合噪聲。**使用最小範數 OLS 時,您可以用許多小的獨立分量擬合噪聲,這具有與 Ridge 正則化等效的正則化效果。**這種正則化通常太強了,可以使用稱為負嶺的“反正則化”來補償它。在這種情況下,您將看到 MSE 曲線的最小值出現在負值.

通過理論上的 PCA,我的意思是:

讓多元正態分佈。存在線性等距如在哪裡是對角線:的組件是獨立的。簡單地通過對角化獲得.

現在的模型可以寫 (線性等距保留點積)。如果你寫, 模型可以寫成 . 此外因此,像 Ridge 或最小範數 OLS 這樣的擬合方法是完全同構的: 圖片是由 的估計者.

理論 PCA 將非獨立預測變量轉換為獨立預測變量。它僅與使用經驗協方差矩陣的經驗 PCA 鬆散相關(與小樣本量的理論矩陣有很大不同)。理論 PCA 實際上不可計算,但僅用於在正交預測空間中解釋模型。

讓我們看看當我們將許多小方差獨立預測器附加到模型時會發生什麼:

定理

帶係數的嶺正則化是等價的(當) 到:

  • 添加假的獨立預測變量(居中且同分佈),每個都有方差
  • 用最小範數 OLS 估計器擬合豐富的模型
  • 僅保留真實預測變量的參數

(草圖)證明

我們將證明代價函數是漸近相等的。讓我們將模型拆分為真實和虛假的預測變量:. Ridge 的成本函數(對於真正的預測變量)可以寫成:

當使用最小範數 OLS 時,響應完美擬合:誤差項為 0。成本函數僅與參數的範數有關。它可以分為真參數和假參數:

在正確的表達式中,最小範數解由下式給出:

現在使用 SVD:

我們看到規範本質上取決於奇異值是奇異值的倒數 . 規範化版本是. 我看過文獻,大型隨機矩陣的奇異值是眾所周知的。為了和足夠大,最小和最大 奇異值近似為(見定理 1.1):

因為,對於大,趨向於 0,我們可以說所有奇異值都近似為. 因此:

最後:

注意:是否在模型中保留假預測變量的係數並不重要。引入的方差是 . 因此,您將 MSE 提高了一個因子無論如何,只有它傾向於1。不知何故,您不需要以與真實預測器不同的方式對待假預測器。

現在,回到@amoeba 的數據。將理論 PCA 應用於(假設是正常的),通過線性等距變換為變量其分量是獨立的,並按方差遞減順序排序。問題等價於轉換後的問題.

現在想像組件的方差如下所示:

在此處輸入圖像描述

考慮很多最後一個組件的總和稱為它們的方差之和. 它們每個都有一個近似等於的方差並且是獨立的。他們在定理中扮演假預測者的角色。

這個事實在@jonny 的模型中更清楚:只有理論 PCA 的第一個組件與(成比例) 並且有巨大的差異。所有其他組件(與) 具有相對較小的方差(寫出協方差矩陣並將其對角化以查看這一點)並扮演假預測器的角色。我計算出這裡的正則化(大約)對應於先驗在而真正的. **這絕對是過度收縮。**最終的 MSE 比理想的 MSE 大得多這一事實可以看出這一點。正則化效果太強。

有時可以通過 Ridge 改進這種自然正則化。首先你有時需要在定理中非常大 (1000, 10000…) 嚴重地與 Ridge 和有限性競爭就像一個不精確。但它也表明,Ridge 是對自然存在的隱式正則化的附加正則化,因此只能產生非常小的影響。有時這種自然正則化已經太強了,Ridge 甚至可能不是一個改進。不僅如此,最好使用反正則化:帶負係數的嶺。這顯示了@jonny 模型的 MSE(), 使用:

在此處輸入圖像描述

引用自:https://stats.stackexchange.com/questions/328630

comments powered by Disqus