Classification

交叉驗證中的平均值(分數)與分數(連接)

  • August 19, 2012

TLDR:

我的數據集非常小(120)個樣本。在進行 10 倍交叉驗證時,我應該:

  1. 收集每個測試折疊的輸出,將它們連接成一個向量,然後在這個完整的預測向量(120 個樣本)上計算誤差?
  2. 或者我應該計算我****在每次折疊中得到的輸出的誤差(每折疊 12 個樣本),然後將我的最終誤差估計值作為 10 倍誤差估計值的平均值?

是否有任何科學論文爭論這些技術之間的差異?


背景:多標籤分類中與宏觀/微觀分數的潛在關係:

我認為這個問題可能與多標籤分類任務(例如 5 個標籤)中經常使用的微觀宏觀平均值之間的差異有關。

在多標籤設置中,通過為 120 個樣本上的所有 5 個分類器預測製作真陽性、假陽性、真陰性、假陰性的聚合列聯表來計算**微平均分數。**然後使用該列聯表來計算微精度、微召回率和微 f 度量。因此,當我們有 120 個樣本和 5 個分類器時,會根據 600 個預測(120 個樣本 * 5 個標籤)計算微觀度量。

使用宏變體時,會在每個標籤上****獨立計算度量(精度、召回率等),最後,對這些度量進行平均。

微觀宏觀估計之間差異背後的想法可以擴展到二進制分類問題中的 K 倍設置中可以完成的事情。對於 10 倍,我們可以平均超過 10 個值(宏觀測量)或連接 10 個實驗併計算微觀測量。

背景 - 擴展示例:

下面的例子說明了這個問題。假設我們有 12 個測試樣本,我們有 10 個折疊:

  • 折疊 1TP = 4,FP = 0,TN = 8精度= 1.0
  • 折疊 2TP = 4,FP = 0,TN = 8精度= 1.0
  • 折疊 3TP = 4,FP = 0,TN = 8精度= 1.0
  • 折疊 4TP = 0,FP = 12, 精度= 0
  • 折疊 5 ..折疊 10 : 都具有相同的TP = 0, FP = 12 和Precision = 0

我使用了以下符號:

TP = 真陽性數, FP = # 假陽性, TN = 真陰性數

結果是:

  • 10 次折疊的平均精度 = 3/10 = 0.3
  • 10 折預測的串聯精度 = TP/TP+FP = 12/12+84 = 0.125

請注意,值 0.3 和 0.125 非常不同

所描述的差異是恕我直言假的。

只有當真正正面案例的分佈(即參考方法說它是正面案例)在折疊(如示例中)相關測試案例的數量(性能度量的分母)上非常不相等時,您才會觀察到它我們正在談論,這裡真正的積極)在平均折疊平均值時沒有考慮在內。

如果你加權前三倍的平均值(因為總共 12 個用例中有 4 個測試用例與精度計算相關),最後 6 倍平均值為 1(所有與精度計算相關的測試用例),加權平均值與您的完全相同將 10 折的預測匯集起來,然後計算精度。


編輯:原始問題還詢問了有關迭代/重複驗證的問題:

的,你應該運行整個迭代-折疊交叉驗證程序:

從中,您可以了解模型預測的穩定性

  • 如果訓練數據因交換幾個訓練樣本而受到干擾,預測會有多大變化?
  • 即,對於同一個測試樣本,不同“代理”模型的預測有多大差異?

你要的是科學論文

低估方差 最終,您的數據集的樣本量是有限的(n = 120),無論您進行了多少次引導或交叉驗證迭代。

  • 在重採樣(交叉驗證和自舉)驗證結果中,您(至少)有 2 個方差來源:

    • 由於有限數量的(測試)樣本引起的方差
    • 由於代理模型預測的不穩定性導致的方差
  • 如果你的模型是穩定的,那麼

    • 的迭代不需要-fold 交叉驗證(它們不會提高性能估計:每次交叉驗證運行的平均值是相同的)。
    • 然而,由於測試樣本的數量有限,性能估計仍然會受到方差的影響。
    • 如果您的數據結構是“簡單的”(即每個統計獨立案例的單個測量向量),您可以假設測試結果是伯努利過程(投擲硬幣)的結果併計算有限測試集方差。
  • out-of-bootstrap 查看每個代理模型預測之間的差異。交叉驗證結果也是可能的,但這種情況並不常見。如果這樣做,除了不穩定性之外,您還會看到由於樣本量有限而導致的方差。但是,請記住(通常)已經發生了一些池化:通常用於交叉驗證結果被合併,並且對於自舉,不同數量的遺漏樣本被合併。

這使我個人更喜歡交叉驗證(目前),因為它更容易將不穩定性與有限的測試樣本大小區分開來。

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

comments powered by Disqus