Classification

當樣本量較小時,交叉驗證仍然有效嗎?

  • February 11, 2014

我對交叉驗證有一個非常基本的困惑。

假設我正在構建一個線性二元分類器,並且我想使用交叉驗證來估計分類精度。現在想像一下我的樣本量雖小,但數量的功能很大。即使特徵和類別是隨機生成的(即“實際”分類準確率應該為 50%),也可能會發生其中一個特徵完美地預測二元類別的情況。如果很小而且,這樣的情況並非不可能。在這種情況下,任何數量的交叉驗證折疊都將獲得 100% 的分類準確率,這顯然不能代表我的分類器的實際能力,從某種意義上說,正確分類新樣本的概率仍然只有 50%。[更新:這是錯誤的。請參閱下面的答案,以了解為什麼它是錯誤的。]

有沒有常見的方法來處理這種情況?

例如,如果我想評估我的兩個類之間的統計差異,我可以運行 MANOVA,如果兩組減少到計算 Hotelling 的 T。即使某些特徵產生顯著的單變量差異(“誤報”),我應該得到總體上不顯著的多變量差異。但是,我在交叉驗證過程中看不到任何可以解釋這種誤報(“假判別”?)的東西。我錯過了什麼?

我自己能想到的一件事是對特徵進行交叉驗證,例如在每個交叉驗證折疊上選擇隨機的特徵子集(除了隨機選擇測試集之外)。但我不認為經常(曾經?)使用這種方法。

更新: “統計學習的要素”第 7.10.3 節題為“交叉驗證真的有效嗎?” 問了完全相同的問題,並聲稱這種情況永遠不會出現(交叉驗證準確率將是 50%,而不是 100%)。到目前為止,我不相信,我會自己運行一些模擬。[更新:他們是對的;見下文。]

我認為您的想法並沒有太多混亂,您將手指放在分類器驗證的一個非常重要的問題上:不僅分類器訓練而且分類器驗證都有一定的樣本量需求。


好吧,看到編輯:畢竟可能有些混亂……“元素”告訴你的是,在實踐中,這種觀察最可能的原因是訓練和測試之間存在洩漏,例如,因為“測試”數據用於優化模型(這是一項訓練任務)

元素部分關注由此引起的樂觀偏見。但也存在方差不確定性,即使正確進行所有拆分,您也可以觀察到極端結果。


IIRC 元素中沒有詳細討論方差問題(除了元素在第 7.10.1 節中討論的內容之外,還有更多內容),所以我先從這裡開始:

是的,您可能而且確實會意外地擁有一個可以完美預測這個特定小數據集(訓練和測試集)的預測器。你甚至可能只是得到一個意外地導致看似完美的結果的拆分,而重新替換錯誤將 > 0。

這也可能發生在正確的(因此是無偏的)交叉驗證中,因為結果也會受到方差的影響。

恕我直言,人們沒有考慮這種方差不確定性一個問題(相比之下,偏差經常被詳細討論;我很難看到任何論文討論他們的結果的方差不確定性,儘管在我的領域通常<100,在一項研究中經常甚至 < 20 名患者,這是不確定性的主要來源)。進行一些基本的健全性檢查來避免大多數這些問題並不難。

這裡有兩點:

  • 訓練用例太少(訓練樣本./.模型複雜度和變量數量),模型變得不穩定。他們的預測能力無處不在。平均而言,它不是那麼好,但它可能會意外地變得非常好。

您可以使用迭代/重複的結果以非常簡單的方式測量模型不穩定性對預測的影響-fold cross-validation:在每次迭代中,每種情況都只預測一次。由於案例保持不變,這些預測的任何變化都是由代理模型的不穩定性引起的,即模型對交換幾個訓練案例的反應。

參見例如 Beleites, C. & Salzer, R.:Assessing and Improvement the stability of Chemistry Models in small sample size situation, Anal Bioanal Chem, 390, 1261-1271 (2008)。

DOI: 10.1007/s00216-007-1818-6

恕我直言,檢查代理模型是否穩定是一種健全性檢查,應始終在小樣本情況下進行。特別是因為它的成本幾乎為零:它只需要對交叉驗證結果進行稍微不同的聚合(以及-fold 交叉驗證無論如何都應該迭代,除非它表明模型是穩定的)。

  • 就像你說的:如果測試用例太少,你觀察到的成功和失敗可能到處都是。如果您計算錯誤率或命中率等比例,它們也會無處不在。這被稱為這些比例受到高方差的影響。

例如,如果模型確實有 50% 的命中率,則在 3 個預測中觀察到 3 個正確的概率為(二項分佈)。但是,可以計算比例的置信區間,並且這些置信區間會考慮到測試了多少個案例。有很多關於如何計算它們的文獻,以及在什麼情況下哪些近似值有效或根本無效。對於我的示例中 3 個測試用例的極小樣本量:

binom.confint (x=3, n=3, prior.shape1=1, prior.shape2=1)
#           method x n mean     lower     upper
# 1  agresti-coull 3 3  1.0 0.3825284 1.0559745  
# 2     asymptotic 3 3  1.0 1.0000000 1.0000000  
# 3          bayes 3 3  0.8 0.4728708 1.0000000  
# 4        cloglog 3 3  1.0 0.2924018 1.0000000
# 5          exact 3 3  1.0 0.2924018 1.0000000
# 6          logit 3 3  1.0 0.2924018 1.0000000
# 7         probit 3 3  1.0 0.2924018 1.0000000
# 8        profile 3 3  1.0 0.4043869 1.0000000 # generates warnings
# 9            lrt 3 3  1.0 0.5271642 1.0000000
# 10     prop.test 3 3  1.0 0.3099881 0.9682443
# 11        wilson 3 3  1.0 0.4385030 1.0000000

你會注意到有很多變化,特別是在下限。僅這一點就表明測試樣本量非常小,以至於可以從測試結果中得出任何結論。

然而,在實踐中,置信區間是否跨越從“猜測”到“完美”或從“比猜測更糟糕”到“完美”的範圍幾乎無關緊要

  • 結論 1:**事先考慮性能結果需要多精確才能進行有用的解釋。**由此,您可以粗略地計算出所需的(測試)樣本量。
  • 結論 2:計算性能估計的置信區間
  • 對於基於正確/錯誤預測的模型比較,甚至不要考慮為每個分類器使用少於數百個測試用例。

查看 McNemar 的測試(對於配對情況,即您可以使用兩個分類器測試相同的情況)。如果您無法進行配對比較,請查找“比例比較”,您將需要更多案例,請參閱下面鏈接的論文以獲取示例。

  • 您可能對我們關於這些問題的論文感興趣:

Beleites, C. et al. : 分類模型的樣本量規劃。, Anal Chim Acta, 760, 25-33 (2013)。DOI:10.1016/j.aca.2012.11.007;arXiv:1211.1323


關於隨機選擇特徵的第二次更新:為隨機森林進行的 bagging 經常使用這種策略。在這種情況下,我認為這很少見,但這是一種有效的可能性。

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

comments powered by Disqus