熱門話題
#
Bonk 生態迷因幣展現強韌勢頭
#
有消息稱 Pump.fun 計劃 40 億估值發幣,引發市場猜測
#
Solana 新代幣發射平臺 Boop.Fun 風頭正勁
Andrew Ng 的團隊曾在一篇研究論文中犯了一個大錯誤。
這是因為隨機拆分數據所導致的。
以下是發生的具體情況(以及解決方案):
通常會使用隨機拆分來生成訓練集和驗證集。
然而,在許多情況下,這對模型構建來說可能是致命的。
考慮構建一個為圖像生成標題的模型。
由於語言的固有特性,每張圖像可以有許多不同的標題。
- 圖像-1 → 標題-1、標題-2、標題-3 等等。
- 圖像-2 → 標題-1、標題-2、標題-3 等等。
查看這個 👇

如果我們使用隨機拆分,則相同的數據點(圖像)將在訓練集和驗證集中可用。
因此,我們最終在模型訓練過的實例上進行評估。
這是一個數據洩漏的例子(也稱為組洩漏),導致過擬合!

在 Andrew Ng 的論文中也發生了同樣的事情,他們準備了一個醫療數據集來檢測肺炎。
- 總圖像數 = 112k
- 總患者數 = 30k
由於隨機拆分,同一位患者的圖像在訓練集和驗證集中都可用。
這導致了數據洩漏,驗證分數看起來比實際應該的要好得多。
這是他們的初始論文👇

群組隨機分割解決了這個問題。
有兩個步驟:
1) 將所有與一張圖片對應的訓練實例分組。
2) 分組後,整個群組(該圖片的所有範例)必須隨機分配到訓練集或驗證集中。
這將防止群組洩漏。

如果你使用 Sklearn,GroupShuffleSplit 實現了這個想法。
作為一個例子,考慮我們有以下數據集:
- x1 和 x2 是特徵。
- y 是目標變量。
- group 表示分組標準。
查看這個 👇

首先,我們從sklearn導入GroupShuffleSplit並實例化該對象。
接下來,這個對象的split()方法讓我們執行分組拆分。它返回一個生成器,我們可以解包它以獲得以下輸出:
- 組“A”和“C”中的數據點一起在訓練集裡。
- 組“B”中的數據點一起在驗證/測試集中。
查看這個 👇

幾天後,Andrew Ng 的團隊在使用相同的群組隨機分配策略後更新了論文,以確保相同的病人不會同時出現在訓練集和驗證集中。
👉 請問你之前遇到過這個問題嗎?

11.83K
熱門
排行
收藏

