資料集:分割原始資料集

所有優秀的軟體工程專案都投入可觀的能源 測試他們的應用程式。同樣地,強烈建議您測試 機器學習模型,判斷預測的正確性。

訓練集、驗證集和測試集

您應該針對不同的樣本組合測試模型,而不是使用樣本組合來測試模型。 以便訓練模型您將瞭解 稍晚 跟測試比較能確實證明您模型的健康狀況 。 分別從哪裡取得這些不同的範例?過去在機器學習方面 則可分割原始資料集來得到不同的範例您可能會 因此,您應將原始資料集分割為兩個子集:

  • 訓練集 用於訓練模型
  • 用來評估 訓練好的模型
,瞭解如何調查及移除這項存取權。
圖 8:橫條分為兩部分:約 80%
            為訓練集
約 20% 則是測試集
圖 8.未採用最佳分配比例。

 

練習:檢查您的直覺

假設您在訓練集上進行訓練,並使用測試集評估 分別進行多組回合您會在每一輪中使用測試集結果 說明如何更新超參數和功能集。可以 這種做法有什麼問題嗎?請只選擇一個答案。
重複執行這個程序可能會導致模型 以符合測試集的特性
當然可以!越常使用相同的測試集 模型與測試集高度相符的可能性越高 例如「學考試」的老師不經意地訓練模型 搭配測試集,可能會增加模型開發難度 以處理實際資料
這個做法很正常。您會使用 訓練集和單獨測試
實際上,這是一個細微的問題。想想看 會越來越失準
此方法的運算效率低下。不要變更 。
頻繁的測試雖然所費不貲,但非常重要。不過,頻繁出現 但是額外訓練的費用遠低於額外訓練正在最佳化 超參數和特徵集可大幅改善 因此請一律投入時間和運算資源 來解決這些問題

將資料集分成兩組是不錯的點子,但 更好的做法是將資料集分成「三個」子集。 除了訓練集和測試集外,第三部分為:

  • 驗證組合 模型會在訓練模型時執行初始測試
,瞭解如何調查及移除這項存取權。
圖 9:水平條劃分為三段:70%
            是訓練集,驗證集 15%,驗證集為 15%
            測試集
圖 9.分組方式更好。

使用驗證集評估訓練集的結果。 重複使用驗證集後, 以產生良好的預測結果,請使用測試集再次檢查模型。

下圖顯示這個工作流程。 圖中的「Tweak 模型」也就是調整模型的任何部分 包括變更學習率、新增或移除 以及從頭設計全新的模型 在這個工作流程結束時,您可以選擇測試集上成效最佳的模型。

圖 10:包含下列階段的工作流程圖:
            1.在訓練集上訓練模型。
            2. 在驗證集上評估模型。
            3. 根據驗證集的結果調整模型。
            4. 反覆進行 1、2 和 3,最後選擇成效良好的模型
               最好是驗證集
            5. 確認測試集上的結果。
圖 10. 良好的開發與測試工作流程。
,瞭解如何調查及移除這項存取權。

圖 10 中顯示的工作流程是最佳選擇,但即使進行了這個工作流程, 測試集和驗證集仍「佩戴」反覆使用 也就是說,你越常使用相同資料 超參數設定或其他模型改善項目 模型會對新資料做出良好的預測 因此,建議您收集更多資料,以便「重新整理」測試 和驗證集進行嶄新的重設是個好方法,

練習:檢查您的直覺

您重組了資料集中的所有樣本 將重組的範例轉換成訓練、驗證和測試 運用 AI 開發原則審查系統不過,測試集的損失值嚴重低落 疑似犯錯哪裡可能出錯?
測試集中有許多範例與範例重複 其他符記
可以。這對於有大量備援的資料集是個問題 範例。我們強烈建議您從以下位置刪除重複的範例: 進行測試。
訓練和測試不具確定性。有時是偶然 測試損失的結果非常低重新執行測試,確認 結果。
雖然損失在每次執行時略有不同,但應該不會改變 認為自己贏得了機器學習彩券
也許測試集剛剛出現了 表現出色
這些例子已經過重組,因此不太可能發生。

測試集的其他問題

如上一個問題所示,重複的範例可能會影響模型評估作業。 將資料集分割為訓練集、驗證集和測試集後 刪除驗證集或測試集內所有重複的範例 一些範例模型的唯一合理測試是 而非重複範例

例如,假設有一個模型能預測電子郵件是否為垃圾郵件 將主旨行、電子郵件內文和寄件者電子郵件地址視為功能。 假設您將資料分割成訓練集和測試集,以 80-20 的分組方式進行。 在訓練後,模型在訓練集和 測試集您可能會希望測試集的精確度較低, 請再看一下資料,發現測試中的樣本很多 是訓練集內範例的重複項目問題在於 從您輸入的資訊中清除為同一封垃圾郵件的重複項目,但未勾選 再分割資料您可能無意中對 測試資料

總結來說,良好的測試集或驗證集可符合 符合以下條件:

  • 大小足以產生具有統計顯著性的測試結果。
  • 代表整個資料集。換句話說,請不要選擇 具有與訓練集不同特性的測試集。
  • 代表模型將遇到的真實資料 做為業務用途的一部分
  • 訓練集中沒有重複的範例。

練習:隨堂測驗

如果單一資料集有固定數量的範例, 以下敘述何者正確?
用於測試模型的每個範例都是較少使用的 訓練模型
將範例分成訓練/測試/驗證集的做法是個零負荷遊戲。 這是基本的取捨。
測試集中的樣本數量必須大於 驗證集內的樣本數量
理論上,驗證集和測試測試應包含相同的 或近似的樣本
測試集中的樣本數量必須大於 驗證集或訓練集的樣本數量。
訓練集內的樣本數量通常會大於 驗證集或測試集中的範例數目;不過 不同的組合沒有百分比要求。
假設您的測試集包含足夠的範例,可以執行 具有統計顯著性的測試此外 測試集會產生較低的損失不過模型實際執行的 這在現實世界中可能難以捉摸。此時該如何處理這種狀況?
判斷原始資料集與實際資料的差異。
可以。即使是最合適的資料集,也是實際資料的數據匯報; 基礎 基準真相 也可能隨時間改變。雖然測試集 足以提供足夠的模型品質建議 資料集的表現可能不夠與實際資料一致。 您可能需要針對新的資料集重新訓練和重新測試。
對相同的測試集重新測試。測試結果可能會 則是異常狀況
雖然重新測試產生的結果可能稍有不同 這種策略可能沒有幫助
測試集應該包含幾個範例?
足以產生具統計顯著性的測試。
可以。有幾個例子?你需要進行實驗。
至少 15% 原始資料集。
15% 的示例不一定足夠。