K-fold cross validation的真正用法是用來確定模型超參的

2021-02-20 RS日新說

第一個問題「K-fold cross validation的測試結果是針對K個中的哪個模型的呢?」的答案是:不是其中任何一個。雖然很少有材料提到,但是會容易理解,對10個不同的模型的測試結果取平均,那麼這個平均就不再是對其中任何一個模型的評價。

這裡又引申出來一個問題,既然不是其中任何一下,那麼又是對什麼的評價呢?答案是:對模型超參(super parameter)性能的評價。(題外話:超參是指無法通過訓練過程個修改的參數,例如K-means當中的K值。)這裡通過多個模型的測試取平均可以相對準確的確定超參的性能。

第二個問題「在實際應用中,我們應該選擇哪個模型呢?」的答案是:我們需要重新訓練一個新的模型。或許有些讀者已經想到,既然K-fold是用來確定超參的,那麼就應該先確定超參然後再重新訓練模型。也就是說運用K-fold的正確流程應該是

第一步,設計多組超參組合,(實際中可以用grid search或者random search方法以後會有介紹)

第二步,運用上面提到的K-fold cross validation標準流程。

第三步,通過第二步中的測試結果的平均,確定最優的一組超參,然後再用普通的holdout cross validation方法重新訓練得出一個模型。

以上才是完整的K-fold應用流程,希望對讀者有所幫助。

相關焦點

  • 機器學習乾貨|交叉驗證(Cross Validation)詳解
    交叉驗證應用場景主要在模型訓練中,在給定的樣本空間中,拿出大部分樣本作為訓練集,小部分樣本使用剛建立的模型進行測試,並求這小部分樣本的預測誤差或者預測精度,同時記錄它們的加和平均值,這個過程迭代K次,即K折交叉。把每個樣本的預測誤差平方加和,稱為預測誤差。
  • 萬字長文總結機器學習的模型評估與調參|附代碼下載
    k折交叉驗證步驟:Step 1:使用不重複抽樣將原始數據隨機分為k份;Step 2:其中k-1份數據用於模型訓練,剩下的那1份數據用於測試模型;Step 3:重複Step 2 k次,得到k個模型和他的評估結果。Step 4:計算k折交叉驗證結果的平均值作為參數/模型的性能評估。
  • 為什麼我的模型表現這麼差?
    如果你繼續閱讀本文,你將學到如何識別這些現象的必要的知識,並獲得如何克服這些現象的工具和補救措施,最終提高你的模型性能,這是每一個機器學習工程師的真正目標。我們將從回歸的角度出發,通過 Python 和 scikit-learn 提供的代碼示例來研究這個主題。
  • K折交叉驗證實例
    交叉驗證思想交叉驗證用於模型選擇,可以更好的來估計模型的試驗誤差。
  • 11個重要的機器學習模型評估指標
    對數損失確定模型性能時AUC-ROC會考慮預測概率。然而,AUC ROC存在一個問題,就是只考慮概率的順序,因此忽略了模型對更可能是正樣本預測更高概率的能力。這種情況下,可以採取對數損失,它只是每個案例修正預測概率的對數的負平均值。
  • R語言——交叉驗證法計算線性回歸模型擬合優度的第三種R方
    第三種R方的計算源於交叉驗證 (cross validation) 裡的留一法 (leave one out cross validation),交叉驗證也是當前比較熱門的機器學習裡的用來驗證模型匹配度較為常用的方法。傳統的線性回歸是對所有樣本數據進行回歸,根據線性回歸的計算公式,我們的模型能夠使得均方誤差最小。但是,如果樣本中存在異常值,就會嚴重影響我們的回歸模型的準確度。
  • 機器學習模型評估和超參數調優實踐
    雖然可能不總是能夠找到足夠的數據來防止過度擬合,或者確切地知道模型應該有多複雜,但是將訓練和測試準確度繪製成訓練樣本數量的函數可能會有所幫助。K-folod交叉驗證在本節中,我們將使用Keras包裝一個神經網絡,並利用sklearn運行一個K-fold交叉驗證。對於神經網絡,我們將使用LeNet結構。
  • 嵌套交叉驗證(Nested cross-validation)
    傳統交叉驗證和嵌套交叉驗證的區別在開始分享嵌套交叉驗證前,首先以K-Fold為例,區分K-Fold交叉驗證和嵌套K-Fold交叉驗證的區別,這是我剛始學習時的困惑點:(1)K-Fold交叉驗證:只有一個loop(循環),即內層循環(a) 將數據集切分為k-摺疊;
  • 深度學習預測RNA二級結構,螞蟻金服提出端到端模型E2Efold
    RNA 的三維結構往往是在先形成的二級結構的框架上摺疊而成的,所以知道二級結構就能夠用來表徵 RNA 結構、推斷功能機制、並設計新實驗。此次引發大規模疫情的新型冠狀病毒即屬於 RNA 病毒的一種。id=S1eALyrYDH論文提出的端到端深度學習模型 E2Efold 可用於預測 RNA 二級結構,該模型能有效地考慮 RNA 二級結果計算預測問題中的固有約束條件。E2Efold 的核心思想是直接預測 RNA 鹼基配對矩陣,並能使用一個展開式算法進行約束編程以作為深度架構強制執行約束的模板。
  • 百聞不如一練:可視化調試模型超參數!
    該例子以手寫數據集為例,使用支持向量機的方法對數據進行建模,然後調用scikit-learn中validation_surve方法將模型交叉驗證的結果進行可視化。需要注意的是,在使用validation_curve方法時,只能驗證一個超參數與模型訓練集和驗證集得分的關係(即二維的可視化),而不能實現多參數與得分間關係的可視化。
  • 神經影像個體差異預測模型的十個簡單規則
    Rule #3: use internal validation (i.e., cross-validation) as a practical solution for validating predictive models       內部驗證(也稱為交叉驗證)是指將單個數據集劃分為獨立樣本的驗證策略:用於構建模型的訓練數據和用於測試模型泛化性的測試數據
  • 多元線性回歸與模型診斷
    回歸方程的模型擬合度在進行回歸模型之前,我們可以計算總的波動誤差如下:ESSESS/kResidual 誤差項n-k-1RSSRSS/(n-k-1)Total 總誤差n-1TSS       3)擬合判定係數R方