交叉驗證中的平均值(分數)與分數(連接)
TLDR:
我的數據集非常小(120)個樣本。在進行 10 倍交叉驗證時,我應該:
- 收集每個測試折疊的輸出,將它們連接成一個向量,然後在這個完整的預測向量(120 個樣本)上計算誤差?
- 或者我應該計算我****在每次折疊中得到的輸出的誤差(每折疊 12 個樣本),然後將我的最終誤差估計值作為 10 倍誤差估計值的平均值?
是否有任何科學論文爭論這些技術之間的差異?
背景:多標籤分類中與宏觀/微觀分數的潛在關係:
我認為這個問題可能與多標籤分類任務(例如 5 個標籤)中經常使用的微觀和宏觀平均值之間的差異有關。
在多標籤設置中,通過為 120 個樣本上的所有 5 個分類器預測製作真陽性、假陽性、真陰性、假陰性的聚合列聯表來計算**微平均分數。**然後使用該列聯表來計算微精度、微召回率和微 f 度量。因此,當我們有 120 個樣本和 5 個分類器時,會根據 600 個預測(120 個樣本 * 5 個標籤)計算微觀度量。
使用宏變體時,會在每個標籤上****獨立計算度量(精度、召回率等),最後,對這些度量進行平均。
微觀與宏觀估計之間差異背後的想法可以擴展到二進制分類問題中的 K 倍設置中可以完成的事情。對於 10 倍,我們可以平均超過 10 個值(宏觀測量)或連接 10 個實驗併計算微觀測量。
背景 - 擴展示例:
下面的例子說明了這個問題。假設我們有 12 個測試樣本,我們有 10 個折疊:
- 折疊 1:TP = 4,FP = 0,TN = 8精度= 1.0
- 折疊 2:TP = 4,FP = 0,TN = 8精度= 1.0
- 折疊 3:TP = 4,FP = 0,TN = 8精度= 1.0
- 折疊 4:TP = 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 查看每個代理模型預測之間的差異。交叉驗證結果也是可能的,但這種情況並不常見。如果這樣做,除了不穩定性之外,您還會看到由於樣本量有限而導致的方差。但是,請記住(通常)已經發生了一些池化:通常用於交叉驗證結果被合併,並且對於自舉,不同數量的遺漏樣本被合併。
這使我個人更喜歡交叉驗證(目前),因為它更容易將不穩定性與有限的測試樣本大小區分開來。