概念地圖・訓練與驗證誤差曲線
分類:系統
這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →
訓練與驗證誤差曲線:資料還要不要買
一家估價事務所收到報價:三年份的成交資料庫,一次買斷。技術主管被問到的問題只有一個——買了之後,估得會準多少。他手上沒有答案。訓練與驗證誤差曲線就是為了回答這種問題而畫的:橫軸放訓練樣本數,縱軸放誤差;一條線量模型在自己讀過的資料上錯多少,那是訓練誤差,考古題上的錯,另一條量它在沒看過的新案子上錯多少,那是驗證誤差,新題目上的錯。兩條之間的落差叫間距,而要看的只有兩樣:驗證那條有沒有繼續往下掉,間距有沒有在收。
五個樣本量,兩條線各站在哪
把同一個估價模型餵五種資料量,每種各記一次兩條誤差,就得到下面這張表。
| 訓練樣本數 | 訓練誤差 | 驗證誤差 | 兩線間距 | 這一段在說什麼 |
|---|---|---|---|---|
| 200 筆 | 2.1% | 14.2% | 12.1 | 幾乎是把答案背下來了 |
| 500 筆 | 2.8% | 10.5% | 7.7 | 間距開始收,方向對了 |
| 1,000 筆 | 3.6% | 8.3% | 4.7 | 每多一筆都還算得出價值 |
| 2,000 筆 | 4.4% | 7.0% | 2.6 | 降幅明顯變薄 |
| 3,000 筆 | 4.8% | 6.4% | 1.6 | 貼著 6% 附近停住 |
兩段對照一下就知道錢該不該再花。從 200 筆加到 1,000 筆,多蒐 800 筆,驗證誤差掉了 5.9 個百分點;從 2,000 筆加到 3,000 筆,多蒐 1,000 筆,只掉 0.6 個百分點。同樣的力氣,後面那一段的回報薄了將近十倍——再買資料的邊際效益已經很稀。
還有一件更關鍵的事藏在那條 5.0% 的虛線上。卡在線上方的只有驗證誤差這一條,6.4%;訓練誤差 4.8% 老早就過了線。問題在於,過不了線的那條,正是唯一看得到新案子的那條,而它已經收斂到 6% 附近——再加幾千筆也大概停在那裡,中間還差 1.4 個百分點。這 1.4 不會被資料量填掉。
兩條線要讀得出結論,先備齊四樣東西
一、同一把誤差尺,從頭量到尾。五個樣本量必須用同一個誤差指標、同一種算法。中途從絕對誤差換成百分比誤差,兩條線的走勢就變成尺的走勢,不是模型的。自問:這五個點的誤差,是同一支程式算出來的嗎?
二、驗證那批資料,模型真的沒碰過。估價這種題目最容易破功——同一棟樓不同樓層、同一戶半年內轉兩手,隨機切分很可能把它們拆到兩邊。模型在訓練集見過鄰居,考驗證集就像看過答案。自問:訓練集和驗證集之間,有沒有同一棟、同一戶、同一段時間的重疊?
三、每個樣本量都跑幾輪再取平均。200 筆那一格單抽一次,抖動可以到好幾個百分點;抽到一批豪宅,整條線的形狀就變了。曲線的意義來自趨勢,單點沒有發言權。自問:這個點是跑一次的結果,還是跑五次取的平均?
四、可接受誤差先寫下來,再開始畫。門檻要在看到曲線之前訂好——訂在 5%,那 6.4% 就是沒過。等圖畫完才決定門檻,人會很自然地把線畫在剛好通過的位置,然後說服自己那是專業判斷。自問:這條門檻是誰、在什麼時候訂的?
一家估價公司要不要買那批資料
回到開頭那張報價單。技術主管沒有先回價,他把現有資料畫成上面那張圖,然後做了一件沒花錢的事:不加任何一筆資料,只把三個一直沒進模型的欄位補上去,重畫一次。補的是屋齡分段、與最近捷運站的步行距離、同棟半年內的成交筆數。
| 訓練樣本數 | 補特徵前的驗證誤差 | 補特徵後的驗證誤差 |
|---|---|---|
| 1,000 筆 | 8.3% | 6.1% |
| 2,000 筆 | 7.0% | 5.1% |
| 3,000 筆 | 6.4% | 4.6% |
- 先問這筆錢買的是哪一段:報價買的是樣本數這條軸,而樣本數這條軸已經走到 2,000 到 3,000 只掉 0.6 個百分點的地方。花在最平的那一段
- 把手邊已有的欄位盤一次:屋齡、捷運距離、同棟成交筆數,三樣資料公司裡本來就有,只是從沒進過模型。兩天工就做得完,零採購單
- 同樣的資料量,重畫一次:3,000 筆那一格的驗證誤差從 6.4% 落到 4.6%,跨過了 5.0% 那條線。門檻是這樣過的
- 間距也跟著收:補完之後訓練誤差 3.9%、驗證誤差 4.6%,間距從 1.6 收到 0.7。兩條線幾乎併攏,而且併攏在門檻底下。併攏的高度才是重點
- 回頭看那張報價單:補完特徵、只用 1,000 筆的 6.1%,已經比原本 3,000 筆的 6.4% 還準——三年份成交紀錄要買回來的那件事,欄位先做掉了一半。簽下去等於買一段自己已經有的東西
這一輪真正的產出是一句可以拿去回答老闆的話:這筆錢,現在買不到那 1.4 個百分點。曲線把採購決定拆成兩個獨立的問題——樣本數這條軸還剩多少空間,以及欄位這條軸有沒有先走完。兩條線間距收乾的時候,錢再往樣本數丟就掉進地板;而地板的高度由特徵決定,筆數再堆也抬不動它。技術主管最後給的答案是:先不買,三個月後如果特徵這條路走盡、驗證誤差還停在門檻上方,再把報價單拿出來重談——那時候談的價格,也會比現在有底氣。以上為說明結構用的示意情境,僅供理解框架之用;文中不涉及任何房價判斷,也不構成任何買賣建議。
這個間距什麼時候會騙你
- 間距很小,可能只是驗證集被挑過。資料洩漏會讓兩條線假性併攏:同一棟樓的成交被拆到訓練集和驗證集兩邊,或者切分時不小心用了成交後才知道的欄位,模型等於帶著答案考試。這種圖最漂亮,上線之後最難看——真正的新案子沒有鄰居可抄。看到間距突然收得很乾淨,先去查切分方式,不要先開香檳。
- 兩條線收斂到高位,代表加資料已經沒用了。很多人只讀「間距在收」就下結論說模型健康,漏掉了收斂在哪個高度。6.4% 和 4.8% 併在一起,跟 2.0% 和 1.8% 併在一起,圖上的形狀幾乎一樣,意義天差地遠。前者的意思是模型已經把手上欄位能講的話講完了,剩下的誤差來自沒被記錄下來的東西:屋況、鄰居、賣方急不急。那不是資料量的問題。
- 非等距的橫軸,會把後段的平坦放大成極限。對數刻度下,2,000 到 3,000 只佔右邊窄窄一小段,視覺上像貼地不動,很容易被讀成「到頂了」。但它壓縮的是版面、不是事實:那一段真的只有 1,000 筆,而 1,000 筆本來就不該產生 200 筆到 1,000 筆那種幅度。要判斷還有沒有空間,看間距的數字和降幅,別看線條看起來平不平。
曲線答得出還要不要買資料,答不出那一戶為什麼賣不掉
模型的錯有人量,客戶的猶豫沒有人量。
錢花在買資料上最容易核准,因為它是唯一有報價單的那一項。補三個欄位、重切一次驗證集、把時間切分修對,這些事沒有金額、沒有廠商、沒有可以拿進會議的簡報頁,於是它們永遠排在下一季。這張圖畫得出誤差還會不會再往下走,畫不出屋主看完估價單說「再想想」的時候心裡在算什麼——他要的可能不是準確度,是一個敢在客戶面前講出來的區間,或是一句「這個價格三個月內賣得掉」。P.A.I.N. 的第一格問的是誰在痛:痛的是那位每天要回答客戶「值多少」的估價師,而他的痛不會因為誤差從 6.4% 降到 6.1% 就變輕,卻可能因為模型願意給出信心區間而少掉一半。今晚打開上一季的估價紀錄,挑五件客戶最後沒成交的,把當時模型給的數字抄在旁邊,看那五件錯在同一個方向,還是錯在同一種客戶。
關於學習曲線,常被問到的幾件事
訓練誤差為什麼會愈來愈高
因為資料變多,模型就沒辦法繼續把每一筆都背下來。200 筆的時候它可以幾乎逐筆記住,訓練誤差自然低到 2.1%;到了 3,000 筆,同樣的模型容量要照顧的案子多太多,只好去找共通的規律,訓練誤差就升到 4.8%。這是好事:那條線往上爬,代表模型從背答案轉成學規律。真正要擔心的是它一直趴在很低的位置不動,而驗證誤差在上面飄著不下來。
要蒐到多少筆才夠
這張圖的用法就是不去猜那個數字,而是量降幅。看最近兩個樣本量之間,驗證誤差掉了幾個百分點,再除以你多花的成本。以文中的例子來說,後段是 1,000 筆換 0.6 個百分點;如果離門檻還差 1.4,那麼照這個斜率要再往前走很久,而斜率還會愈走愈平。與其問「多少筆才夠」,不如問「再花這筆錢,能買到幾個百分點」——後面這句有答案,前面那句沒有。
驗證誤差降不下來,一定是資料不夠嗎
先看間距。間距還很寬,兩條線之間有空間,多蒐資料通常還有效;間距已經收到剩一點點,兩條線一起停在門檻上方,那就是模型手上的欄位已經講完了它們能講的話。這時候該動的是特徵、標的定義或問題本身的切法。文中那家事務所補三個欄位就落到 4.6%,就是這種情況——資料量沒動,訊息量動了。
跟偏差變異取捨、跟均值回歸有什麼不一樣
三張圖的橫軸不同,回答的問題也就不同。偏差變異取捨的橫軸是模型複雜度,它回答「模型該多複雜」;這張圖的橫軸是訓練樣本數,它回答「再多蒐一千筆有沒有用」。同一個模型可以在這張圖上看起來還有空間,在那張圖上已經過頭。至於均值回歸談的是「這次的好成績可能只是運氣」,這張圖談的是「這次的好成績只在訓練資料上成立」——一個是隨機波動,一個是模型記住了不該記的東西。
把手上模型的兩條誤差各記一次,先看間距在不在收。收得差不多了,下一步就不在樣本數這條軸上——該往模型複雜度那條軸走,還是先去分辨手上的好成績有幾分是運氣,可以接著看偏差變異取捨與均值回歸。
喜歡這篇文章嗎?
每週幫你拆二本好書,把判斷力、好書金句、好問題,直送你的信箱。
不適合你可隨時退訂 · 每週兩封,陪你把書讀進生活。
送出即表示同意我們依隱私權政策使用你的 email。