Machine-Learning

Bonferroni 校正和機器學習

  • October 19, 2016

在心理學研究中,我了解到在單個數據集上測試多個假設時,我們應該使用 Bonferroni 方法來調整顯著性水平。

目前我正在使用支持向量機或隨機森林等機器學習方法進行分類。在這裡,我有一個數據集,用於交叉驗證以找到產生最佳精度的最佳參數(例如 SVM 的內核參數)。

我的直覺說(也許完全不正確)這是一個類似的問題。如果我正在測試太多可能的參數組合,那麼我很有可能找到一個能產生很好結果的組合。然而,這可能只是機會。

總結一下我的問題:

在機器學習中,我們使用交叉驗證來找到分類器的正確參數。我們使用的參數組合越多,意外找到一個好的參數組合的機會就越大(過度擬合?)。bonferroni 校正背後的概念是否也適用於此?這是一個不同的問題嗎?如果是這樣,為什麼?

您所說的 p 值校正在一定程度上是相關的,但是有一些細節使這兩種情況非常不同。最重要的是,在參數選擇中,您正在評估的參數或您正在評估它們的數據沒有獨立性。為了便於討論,我將以在 K-Nearest-Neighbors 回歸模型中選擇k為例,但該概念也可以推廣到其他模型。

假設我們有一個驗證實例V,我們預測它會針對樣本中的各種k值獲得模型的準確性。為此,我們在訓練集中找到k = 1,…,n最接近的值,我們將其定義為T 1 , … ,T n。對於我們的第一個k = 1值,我們的預測P1 1將等於T 1,對於k=2,預測P 2將是**(T 1 + T 2 )/2P 1 /2 + T 2 /2**,對於k=3將是**(T 1 + T 2 + T 3 )/3P 2 2/3 + T 3 /3*。事實上,對於任何值k,我們都可以定義預測P k = P k-1 (k-1)/k + T k /k。我們看到預測不是彼此獨立的,因此預測的準確性也不會是。事實上,我們看到預測值正在接近樣本的平均值。因此,在大多數情況下,測試k = 1:20的值將選擇與測試k = 1:10,000相同的****k值除非您可以從模型中獲得的最佳擬合只是數據的平均值。

這就是為什麼可以在數據上測試一堆不同的參數而不必過多擔心多重假設檢驗的原因。由於參數對預測的影響不是隨機的,因此您的預測準確度不太可能僅僅因為偶然性而得到很好的擬合。您仍然必須擔心過度擬合,但這是與多重假設檢驗不同的問題。

為了闡明多重假設檢驗和過擬合之間的區別,這次我們將想像製作一個線性模型。如果我們反復重新採樣數據以製作我們的線性模型(下面的多條線)並評估它,在測試數據(暗點)上,偶然其中一條線將成為一個好的模型(紅線)。這並不是因為它實際上是一個很好的模型,而是因為如果你對數據進行了足夠的採樣,一些子集就會起作用。這裡要注意的重要一點是,由於測試了所有模型,因此在保留的測試數據上的準確性看起來不錯。事實上,由於我們是根據測試數據選擇“最佳”模型,因此該模型實際上可能比訓練數據更適合測試數據。多重假設檢驗

另一方面,過度擬合是當您構建單個模型時,但會扭曲參數以使模型能夠擬合超出可推廣範圍的訓練數據。在下面的示例中,模型(線)完美地擬合了訓練數據(空心圓圈),但在對測試數據(實心圓圈)進行評估時,擬合度要差得多。過擬合

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

comments powered by Disqus