過度配適

過度配適是指建立的模型過於貼近 (記住) 訓練集,以致模型無法針對新資料做出正確預測。過度配適的模型就像是實驗室中表現良好,但在現實世界中毫無價值的發明。

在圖 11 中,請想像每個幾何圖形都代表方形森林中的樹木位置。藍色菱形標示健康樹木的位置,而橘色圓圈則標示生病樹木的位置。

圖 11.這張圖表包含約 60 個點,其中一半是健康樹木,另一半是生病樹木。健康的樹木主要位於東北方象限,但少數健康的樹木會偷偷跑到西北方象限。受害的樹木主要位於東南方位,但少數受害樹木會蔓延到其他方位。
圖 11. 訓練集:方形森林中健康和生病的樹木位置。

 

請在腦中畫出任何形狀,例如線條、曲線、橢圓形等,將健康的樹木與生病的樹木分開。接著,展開下一行,檢查一個可能的區隔。

圖 12 中顯示的複雜形狀成功將所有樹木分類,除了兩棵樹。如果我們將形狀視為模型,那麼這就是很棒的模型。

還是說真正優異的模型可成功將範例分類。圖 13 顯示當同一個模型針對測試集的新示例進行預測時,會發生什麼情況:

圖 13.在圖 12 所示的模型上疊加新一批健康和生病的樹木。模型將許多樹木歸類錯誤。
圖 13.測試集:用於區分樹木是否生病的複雜模型。

 

因此,圖 12 所示的複雜模型在訓練集上表現良好,但在測試集上表現不佳。這是模型過度擬合訓練集資料的經典案例。

配適、過度配適和配適不足

模型必須能針對資料做出良好的預測。也就是說,您希望建立的模型能「適合」新資料。

如您所見,過度配適的模型可針對訓練集做出極佳的預測,但無法針對新資料做出良好的預測。欠配模型甚至無法針對訓練資料做出良好預測。如果過度配適的模型就像實驗室中表現良好,但在實際環境中成效不佳的產品,那麼欠缺配適的模型就像實驗室中表現不佳的產品。

圖 14. 笛卡爾圖表。X 軸標示為「訓練集的預測品質」。Y 軸標示為「實際資料的預測品質」。曲線從原點開始,逐漸上升,但隨後迅速下降。曲線左下方的部分 (真實資料的預測品質低,訓練集的預測品質低) 標示為「模型未充分訓練」。曲線右下方的部分 (實際資料的預測品質低,但訓練集的預測品質高) 標示為「過度擬合模型」。曲線的最高點 (在實際資料上預測的品質為高,在訓練集上預測的品質為中) 標示為「適合模型」。
圖 14。 配適不足、適當配適和過度配適的模型。

 

泛化是過度擬合的相反概念。也就是說,準確度高的模型可針對新資料做出準確的預測。您的目標是建立可將新資料推廣的模型。

偵測過度配適

您可以透過下列曲線偵測過度擬合現象:

  • 損失曲線
  • 一般化曲線

損失曲線會根據訓練疊代次數繪製模型的損失。顯示兩個以上損失曲線的圖表稱為泛化曲線。下列概括曲線顯示兩個損失曲線:

圖 15. 訓練集的損失函式會逐漸下降。驗證集的損失函式也會下降,但在經過一定次數的迭代後,就會開始上升。
圖 15。 一般化曲線,強烈暗示過度擬合。

 

請注意,兩個損失曲線一開始的行為類似,之後就會分開。也就是說,在經過一定次疊代後,訓練集的損失會下降或保持穩定 (收斂),但驗證集的損失會增加。這表示模型過度配適。

相較之下,適當擬合模型的泛化曲線會顯示兩個形狀相似的損失曲線。

過度擬合的原因

一般來說,過度擬合是因為下列一或多個問題所致:

  • 訓練集無法充分代表實際資料 (或驗證集或測試集)。
  • 模型過於複雜。

一般化條件

模型會在訓練集上進行訓練,但要真正測試模型的價值,則必須觀察模型對新例子 (尤其是實際資料) 的預測能力。在開發模型時,測試集可做為實際資料的代理資料。訓練出可良好推論的模型,意味著資料集必須符合下列條件:

  • 示例必須獨立且相同地分布,這句話的意思是說,示例不能相互影響。
  • 資料集是靜止的,也就是說,資料集不會隨著時間而有大幅變化。
  • 資料集分區的分布情形相同。也就是說,訓練集中的示例在統計上與驗證集、測試集和實際資料中的示例相似。

透過以下練習探索上述條件。

練習:測試您的理解程度

請參考下列資料集區隔。
水平條分為三部分:70% 的條為訓練集、15% 的條為驗證集,以及 15% 的條為測試集
您該如何確保訓練集中的範例與驗證集和測試集中的範例具有類似的統計分佈情形?
在分割資料集之前,請先大量隨機排列資料集中的範例。
可以。正確地隨機排列示例,可讓分區在統計上更有可能相似。
將範例從最早到最近排序。
如果資料集中的示例並非靜態,排序作業會使分區「不那麼相似」
不採取任何行動。在足夠的例子中,平均值法則自然會確保分布情形在統計上相似。
但事實並非如此。資料集的某些部分中的範例可能與其他部分不同。
某串流服務正在開發模型,以預測未來三年內可能推出的新電視節目的人氣。這項串流服務預計在包含過去十年數億個範例的資料集上訓練模型。這個模型會遇到問題嗎?
應該是。觀眾的喜好會隨著時間改變,過去的行為無法預測未來。
可以。觀眾的喜好會隨時間改變。這些資訊會不斷變動。
當然不行,資料集足夠大,可做出良好的預測。
很抱歉,觀眾的喜好會隨時間改變。
別緊張。觀眾的喜好會以可預測的週期性變化。十多年的資料可讓模型準確預測未來趨勢。
雖然娛樂產業的某些面向有週期性,但從過去娛樂產業歷史資料訓練的模型,幾乎一定無法預測未來幾年的趨勢。
這個模型的目標是根據一座城市在一年內收集到的天氣資料 (溫度、露點和降雨量),預測人們步行一英里所需的時間。這個城市的天氣會因季節而有顯著差異。即使天氣測量值會因季節而大幅變動,您是否仍能根據這個資料集建立及測試模型?
是的,您可以使用這個資料集建立及測試模型。 您只需確保資料平均分區,讓四個季度的資料平均分配到不同的分區即可。
假設這個資料集包含足夠的溫度、露點和降雨量範例,您就可以根據這個資料集建立及測試模型。您只需確保資料已平均分區,讓四個季度的資料平均分配到不同的分區即可。

挑戰練習

您要建立的模型會預測乘客購買特定路線火車票的理想日期。舉例來說,模型可能會建議使用者在 7 月 8 日購買 7 月 23 日發車的火車票。火車公司會每小時更新價格,並根據各種因素 (主要為目前可用的座位數量) 進行更新。也就是:

  • 如果座位數量充足,票價通常會較低。
  • 如果座位數量不多,票價通常會很高。
模型在驗證集和測試集中的損失率偏低,但有時會對實際資料做出不佳的預測。為什麼?
按一下這裡即可查看答案