Cross-Validation

為什麼 scikit-learn bootstrap 函數會重新採樣測試集?

  • August 21, 2014

在使用 bootstrapping 進行模型評估時,我一直認為袋外樣本直接用作測試集。但是,已棄用的 scikit-learnBootstrap方法似乎並非如此,該方法似乎是從袋外數據子集的替換繪圖中構建測試集。這背後的統計推理是什麼?是否存在這種技術比僅評估袋外樣本更好的特定場景,反之亦然?

Bootstrap 樣本用於通過多次迭代來評估算法的性能。這樣做時,會評估隨機更改集的性能。

相比之下,例如在進行 10 折交叉驗證時,您僅在不同的訓練和測試數據集上執行 10 次迭代。

現在,當您的樣本量很小時,可以說並且引導迭代的次數很高,讓我們選擇,並且您不會像處理訓練數據集那樣對測試數據進行重新採樣,您將遇到算法多次看到相同或非常相似的測試的情況。您最初想通過使用引導程序來避免的情況。

你postet的鏈接掛了,所以我在sklearn的當前(0.14)版本中添加了函數的描述

方法說明

帶有替換交​​叉驗證迭代器的隨機採樣提供訓練/測試索引以拆分訓練測試集中的數據,同時對輸入進行 n_iter 次重新採樣:每次對數據執行新的隨機拆分,然後在每一側抽取(帶替換)樣本的分裂來建立訓練和測試集。注意:與其他交叉驗證策略相反,自舉將允許一些樣本在每次拆分中出現多次。然而,出現在訓練拆分中的樣本永遠不會出現在測試拆分中,反之亦然。如果您希望每個樣本最多出現一次,您可能應該改用 ShuffleSplit 交叉驗證。

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

comments powered by Disqus