跳至主要內容

    基準模型、交叉驗證與誤差分析

    先知道簡單方法能做到哪裡,再用一致切分、診斷曲線與錯誤切片,決定下一步值得改什麼

    sunny 桑尼· · 16 MIN READ · 88 次瀏覽

    基準模型、交叉驗證與誤差分析
    本文目錄

    模型平均差10分鐘,算不算好?如果永遠猜20分鐘就能做到差8分鐘,複雜模型還沒有證明自己的價值;如果最簡單方法差25分鐘,新模型差10分鐘,才有一個可以進一步檢查的改善起點。

    模型評估需要參照。這篇先建立基準,再把模型放進一致的切分與驗證流程,接著讀懂幾種常見診斷曲線,最後從錯誤分布決定下一步。目的不是把所有調參方法試一遍,而是讓每個改動有可檢查的理由。

    本文配送表與預測數字都是另設的教學算例。配圖採用scikit-learn官方既有圖,包含合成函數、手寫數字與花卉分類,來源實驗沒有由本站重跑。

    先建立能真的執行的簡單基準

    迴歸問題可以從訓練資料的平均或中位數常數預測開始;分類可以從多數類別或既有業務規則開始;時間序列則可能比較上一期、同星期或季節性參照。基準要符合預測時點,不能先看完整測試答案才決定要猜什麼。

    例如訓練資料的配送時間為 [10,10,20,40] 分鐘,平均是20。先把「每一筆新訂單都猜20分鐘」固定為基準,再用四筆保留資料比較:

    保留訂單真實分鐘固定20分鐘基準另一組示範預測
    A152016
    B202021
    C252024
    D602040

    基準絕對誤差是5、0、5、40,MAE為12.5分鐘;另一組是1、1、1、20,MAE為5.75分鐘。這裡的另一組預測也是本文直接設定,沒有經過訓練,僅示範比較如何計算。

    兩組都在同樣四筆上算,才可以比較這個MAE。若新方法先刪掉最難的D,剩下三筆平均差1分鐘,就不能拿它和基準四筆的12.5直接宣稱改善。

    常數基準本身也有目標:均值是平方損失下的自然參照,中位數是絕對損失下的自然參照。這是估計目標的差別,不是說任一種常數預測永遠最佳。

    公平比較要把資料、指標和選擇流程一起固定

    比較時至少要一致:預測對象與時間、樣本切分、特徵可用性、缺失與排除規則、指標定義。如果同時換資料與模型,分數變化就很難歸因於哪個改動。

    圖1|基準與新方法都走相同的開發/評估分工;不要讓其中一個方案多看了測試答案。來源:scikit-learn developers,Cross-validation,BSD 3-Clause,完整聲明見文末;原圖未改。

    模型還有運作成本:建立特徵需要哪些服務、訓練與推論多久、是否能解釋錯誤、資料改變後要怎麼維護。分數稍高但延遲超出服務需求的方案,不一定比較可用。

    交叉驗證:比較切分的變動,不把折數當證據倍增器

    交叉驗證會輪流保留部分開發資料,讓同一個設定在多個切分下評估。填補、縮放與特徵選擇也必須在每輪訓練資料中擬合,再套用到該輪保留折。

    圖2|輪替的是訓練部分,最右下方的最終測試沒有用來挑設定。各折的訓練資料大量重疊,因此五折不是五個互相獨立的大型實驗。來源同圖1,原圖未改。

    觀察平均分數,也要看各折差異;但不要直接把折間標準差當成通用95%信賴區間。時間、群組與空間資料還要選擇符合部署問題的切分,不能只增加折數,卻保留同一個洩漏設計。

    若兩個設定差距很小,應比較同一組切分下的差異、錯誤類型與維護代價,而不是只憑小數點後第三位宣布勝出。大量嘗試設定也會對驗證資料過度適應;最終測試要保留到方案選定後。

    欠擬合與過擬合:訓練貼得更近,不代表新資料更準

    一個過於受限的模型,可能連主要模式都抓不到;一個太靈活的模型,則可能把抽樣噪聲也當成規律。

    圖3|來源用同一組30筆帶雜訊樣本比較degree1、4、15:太簡單無法表達主要彎曲,太高階則產生不穩定起伏。圖上MSE是來源交叉驗證結果,不是只對眼前訓練點計算。來源:scikit-learn developers,Underfitting vs. Overfitting,BSD 3-Clause,原圖未改。

    實務上可以把訓練與驗證結果當診斷線索。兩邊都差,可能是表示能力不足,也可能是特徵缺少、資料品質、優化失敗或標籤噪聲;訓練很好但驗證差,則可能是過擬合,也可能是兩份資料分布不同。

    因此,「兩條曲線長這樣」不是唯一病因的證明。先確認資料與實作,再比較模型容量、正則化、特徵與樣本量,會比只按曲線名稱換演算法更可靠。

    偏差與變異:換一批訓練資料,答案會怎麼變?

    在平方誤差的相應條件下,期望預測誤差可以拆成偏差平方、變異與不可避免的雜訊。偏差關心平均預測是否偏離要估計的關係;變異關心更換訓練樣本後,預測有多敏感。

    圖4|來源反覆抽取合成訓練資料;左側單樹的預測束較寬,右側bagging平均多棵樹後,變異較小。下排把期望平方誤差分解,這是已知生成機制的模擬,不是用一份真實資料就直接量出「不可避免誤差」。來源:scikit-learn developers,Single estimator versus bagging,BSD 3-Clause,原圖未改。

    這個觀點解釋為什麼平均多個不完全相同的模型,有時能減少變動;不代表任何集成都一定改善。模型若共享相同偏差或錯誤,平均也可能保留問題。

    它也不是「模型越複雜,偏差必然按固定速度下降、變異必然按固定速度上升」的萬用圖表。實際行為還受資料、估計器、正則化與訓練方法影響。

    驗證曲線:一次改一個設定,看哪裡開始失去平衡

    驗證曲線固定資料與其他條件,改一個模型設定,例如正則化強度,分別畫訓練與保留折分數。

    圖5|alpha越往右越大,約束越強,方向不是「模型越來越複雜」。縱軸是R²分數,越高越好;橘色Test是CV保留折,用於選alpha。圖中的最佳alpha是此合成資料的來源結果,不能直接套到別的資料。來源:scikit-learn developers,Effect of model regularization,BSD 3-Clause,原圖未改。

    若約束太弱,模型可能把噪聲也學進去;若太強,又可能連有用訊號都壓掉。找折衷時,除了最高點,也要看附近設定是否表現接近、是否對切分很敏感。

    圖中陰影呈現來源設定的折間變動,不能自動視為精確的信賴區間。選定設定後,仍需按保留流程重訓與評估,不是在同一張圖上挑到最高點就宣布上線成效。

    學習曲線:改變訓練樣本數,觀察分數怎麼移動

    學習曲線改的是訓練資料量,與剛才改alpha的驗證曲線不同。每個資料量都要重新擬合,並在相應保留資料上評估。

    圖6|左側GaussianNB的訓練分數隨樣本增加下降、保留分數上升;右側SVC保留分數逐漸接近平台。這是手寫數字分類的Accuracy,不是本文配送時間的MAE。來源:scikit-learn developers,Plotting Learning Curves and Checking Models’ Scalability,BSD 3-Clause,原圖未改。

    如果驗證表現仍隨樣本數明顯改善,增加相似且有效的資料值得測試;若在目前範圍已接近平台,則可以比較新特徵、模型或資料收集方式。但平台不證明所有新增資料永遠無用:新的群體、標籤品質或不同資料區域,可能改變結果。

    小樣本的訓練分數偏高,也不代表部署可靠。資料量、樣本組成、切分與評估波動要一起看,不能只把曲線外推到尚未觀察的數量。

    同時看成本曲線,避免多花時間只換到微小改善

    圖7|這組原圖記錄來源環境的訓練與評分時間;秒數與陰影受當時硬體、實作及重複切分影響,不是本站效能測試,也不是所有資料上的速度排名。來源同圖6,原圖未改。
    圖8|不同模型的橫軸耗時尺度不同,讀圖要看各自刻度,不能只按曲線長度比較。這裡是在來源實驗中觀察成本與分數,不保證同樣時間可得到相同改善。來源同圖6,原圖未改。

    成本還包括特徵收集、部署延遲與維護。若只有訓練耗時圖,不能直接推論單筆線上請求的延遲;應針對真實服務方式另外量測。

    從平均分數回到錯誤:到底哪些例子出問題?

    前面的四筆配送算例中,另一組預測的總絕對誤差23分鐘,有20分鐘來自D。這告訴你可以先追查長時間訂單,卻不能只憑一筆就斷言所有長時間訂單都會被低估。

    迴歸可以看殘差的方向、分布與較高分位數,並按城市、時段、距離與資料缺失狀態切片。分類則先看哪些類別互相混淆,再檢查閾值與樣本。

    圖9|原圖共有38筆,對角線猜對25筆,整體Accuracy約65.8%;更具體的問題是16筆versicolor中有13筆混到virginica。這提供查錯方向,不單靠矩陣證明是哪個特徵造成。來源:scikit-learn developers,Confusion matrix,BSD 3-Clause,原圖未改,本文未重跑。
    圖10|按真實類別逐列歸一化後,每一類各自的漏失更清楚;例如versicolor的Recall為3/16≈18.8%。不要把這個數字當成預測為versicolor者的Precision。來源同圖9,原圖未改。

    切片後要保留筆數與納入規則。某個城市只有三筆,錯一筆就可能讓比例大幅變動;反覆試幾百種分組再只挑最差的一組,也可能把偶然波動當成穩定問題。

    找到錯誤集中處後,回頭看原始資料:標籤是否可靠、輸入是否缺資訊、是否遇到訓練沒涵蓋的情境?人工閱讀少量代表性案例,可以形成下一輪假設;修正後仍要在新的驗證流程中確認,而不是只修到這幾筆都對。

    把診斷變成下一個可比較的改動

    若錯誤主要來自單位或時間可用性,先修資料;若簡單關係始終表達不出來,再比較特徵與模型容量;若對不同訓練抽樣很敏感,可以測正則化、集成或更多有效資料;若驗證曲線和實際部署不一致,先重新檢查切分情境。

    每次改動保留基準、固定比較條件,記下預期會改善哪一種錯誤,以及可能犧牲什麼。最後再用未參與選擇的資料檢查整套方案,讓結果能被下一個人理解與重查。

    來源與圖像授權

    本篇10組圖片皆取自scikit-learn developers官方教材,依BSD 3-Clause使用;完整條款附於下方,桌機原圖未改,手機編排另註。配送情境與數字另行設計,來源曲線未由本站重跑。

    圖像授權聲明

    以下保留scikit-learn原圖完整BSD聲明;原作者沒有為本站背書。

    BSD 3-Clause License
    
    Copyright (c) 2007-2026 The scikit-learn developers.
    All rights reserved.
    
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
    
    * Redistributions of source code must retain the above copyright notice, this
      list of conditions and the following disclaimer.
    
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    
    * Neither the name of the copyright holder nor the names of its
      contributors may be used to endorse or promote products derived from
      this software without specific prior written permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    

    封面取自本文多項式比較原圖,等比縮放並加白邊;手機版將圖3的三個模型、圖6的兩個模型依原順序上下排列,保留原圖標題、座標、圖例與數值。圖6原本共用左側Accuracy刻度,手機上下排列後,第二張仍使用第一張的相同刻度。這些版本沿用原圖署名與BSD條款。

    留言0

    登入後就能留言。

    登入
    sunny 桑尼
    sunny 桑尼

    AI 資料科學 · 產品經理 · 蒙奇 D 桑尼

    專注於 AI 工具應用與資料科學教育,致力於讓每個人都能用 AI 提升工作效率。曾任職於科技業,現為全職教育創作者。

    讀更多文章 →想自己動手試?領免費 Starter Kit →