17/100 資料分割(訓練集、測試集) ✂ 適當切分數據,避免 AI 記住答案而不會「舉一反三」!

更新於 發佈於 閱讀時間約 10 分鐘

AI時代系列(1) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》


17/100 第二週:資料處理與特徵工程


17. 資料分割(訓練集、測試集) ✂ 適當切分數據,避免 AI 記住答案而不會「舉一反三」!


資料分割(訓練集、測試集) ✂


適當切分數據,避免 AI 記住答案,而不會「舉一反三」!


在機器學習中,為了讓模型具備「泛化能力」,我們需要將數據切分成不同部分,以確保模型不會只記住訓練數據,而能夠在新數據上表現良好。這樣可以有效避免過擬合(Overfitting),並提升模型在實際應用中的效能。

________________________________________


1️⃣ 為什麼要做資料分割?


📌 主要目標:


確保模型的泛化能力:讓 AI 學會「舉一反三」,而不是死記硬背。

避免過擬合:如果模型只學習訓練數據,可能無法在新數據上表現良好。

評估模型效能:透過測試集驗證模型是否能夠應用於真實世界的數據。

________________________________________


2️⃣ 常見的資料分割方法


一般來說,數據會被分成以下幾個部分:


訓練集(Training Set)📚:用來訓練模型,通常佔 60%~80%。

驗證集(Validation Set)🔍:用來調整模型超參數,避免過擬合,通常佔 10%~20%。

測試集(Test Set)🎯:用來最終評估模型效能,通常佔 10%~20%。


📊 最常見的分割比例


在劃分訓練集、驗證集與測試集時,不同的比例劃分適用於不同的模型開發階段與複雜度。


常見的 80/20 劃分方式,將 80% 的數據用於訓練,20% 用於測試,適合用於初步模型評估,快速檢視模型效果。而 70/15/15 的比例則更加均衡,將數據分為 70% 訓練集、15% 驗證集與 15% 測試集,


有助於超參數調整與模型優化過程中對模型表現進行更細緻的評估。對於較複雜的模型,則可採用 60/20/20 的劃分,將更多數據分配給驗證集與測試集,以便更充分地檢測模型在不同階段的泛化能力與穩定性。選擇適當的數據劃分比例,能有效提升模型訓練的效率與最終表現。

________________________________________


3️⃣ 資料分割的 Python 實作


✅ (1) 80/20 分割(訓練集 + 測試集)


📌 適用於一般機器學習專案

python


from sklearn.model_selection import train_test_split

import numpy as np

import pandas as pd


# 生成隨機數據(100 筆數據,5 個特徵)

X = np.random.rand(100, 5)

y = np.random.randint(0, 2, size=100) # 0 或 1


# 80% 訓練集,20% 測試集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


print(f"訓練集大小: {X_train.shape}, 測試集大小: {X_test.shape}")


📌 結果

80% 用於訓練

20% 用於測試

________________________________________


✅ (2) 70/15/15 分割(訓練集 + 驗證集 + 測試集)


📌 適用於深度學習 & 超參數調整


python


# 先分割為 80% 訓練集 & 20% 測試集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


# 再將訓練集切分為 70% 訓練集 & 15% 驗證集

X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.1875, random_state=42) # 15/80 = 18.75%


print(f"訓練集大小: {X_train.shape}, 驗證集大小: {X_val.shape}, 測試集大小: {X_test.shape}")


📌 結果


70% 訓練集

15% 驗證集(用來調整超參數)

15% 測試集(最終評估)

________________________________________


✅ (3) K-Fold 交叉驗證(Cross Validation, CV)


📌 適用於數據量少,最大化數據利用率


python


from sklearn.model_selection import KFold, cross_val_score

from sklearn.ensemble import RandomForestClassifier


kf = KFold(n_splits=5, shuffle=True, random_state=42)


# 訓練隨機森林模型並執行交叉驗證

model = RandomForestClassifier()

scores = cross_val_score(model, X, y, cv=kf)


print(f"每折的準確度: {scores}")

print(f"平均準確度: {scores.mean():.4f}")


📌 結果

透過 5 折交叉驗證,每次使用不同的測試集,最終計算平均準確度。

________________________________________


✅ (4) 時間序列分割(Time Series Split)


📌 適用於時間序列數據(如股票、天氣預測)


python


from sklearn.model_selection import TimeSeriesSplit


tscv = TimeSeriesSplit(n_splits=5)


for train_index, test_index in tscv.split(X):

print("訓練集索引:", train_index, "測試集索引:", test_index)


📌 結果

每次測試集都比訓練集的時間點晚,模擬真實預測情境。

________________________________________


4️⃣ 如何選擇合適的資料分割方法?


數據集切分方法依需求而定。80/20 分割簡單易用,適合初步測試,但可能受數據分佈影響。


70/15/15 分割適用於超參數調整和深度學習,惟測試集較小。K-Fold 交叉驗證能最大化數據利用率,適合數據量少的情況,但計算成本較高。


時間序列分割則保持時間順序,適用於時間序列預測,但無法隨機打亂數據。根據任務特性選擇合適策略,有助於提升模型效果。

________________________________________


5️⃣ 避免數據分割的錯誤


⚠ 錯誤 1:測試集數據洩漏


🚫 錯誤: 測試數據不應出現在訓練數據中。

✅ 解決方案: 在分割前檢查是否有重複數據,確保測試集是「完全新」的數據。


⚠ 錯誤 2:類別不平衡(Imbalanced Data)

🚫 錯誤: 如果一個類別(例如 0/1 標籤)在測試集中幾乎沒有,模型可能無法泛化。

✅ 解決方案: 使用 stratify=y 來保持類別比例一致:


python


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)


⚠ 錯誤 3:時間序列數據亂序

🚫 錯誤: 在時間序列問題中,不應隨機打亂數據。

✅ 解決方案: 使用 TimeSeriesSplit(),保持時間順序。

________________________________________


🎯 結論


📌 正確的數據分割 = 更好的模型泛化能力!

📌 選擇適合的分割方式,確保 AI 學會舉一反三,而不是死記答案! 🚀


👉 你的 AI 不能只學考古題,它需要真正理解新數據! 🎯



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
0會員
42內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/26
想讓模型更快更準?PCA 是入門降維首選!本單元手把手示範數據標準化、解釋方差分析、視覺化技巧,搭配 Python 實作範例,教你在保持資訊量的同時大幅減少維度,解決高維詛咒與共線性。無論是基因序列、影像特徵還是金融指標,學完即可立即應用,提升演算法效率與洞察力,絕對值得收藏!
Thumbnail
2025/05/26
想讓模型更快更準?PCA 是入門降維首選!本單元手把手示範數據標準化、解釋方差分析、視覺化技巧,搭配 Python 實作範例,教你在保持資訊量的同時大幅減少維度,解決高維詛咒與共線性。無論是基因序列、影像特徵還是金融指標,學完即可立即應用,提升演算法效率與洞察力,絕對值得收藏!
Thumbnail
2025/05/26
在 AI 時代中,資料品質往往比模型更關鍵!本單元「特徵選擇技術」深入淺出介紹如何挑選最具代表性的特徵,讓模型表現大幅提升。透過統計方法、資訊理論與模型導向等策略,不僅能提升訓練效率,還能減少過擬合與運算資源浪費。適合想強化資料處理實力的學習者,是建立高效智慧模型的關鍵一課!
Thumbnail
2025/05/26
在 AI 時代中,資料品質往往比模型更關鍵!本單元「特徵選擇技術」深入淺出介紹如何挑選最具代表性的特徵,讓模型表現大幅提升。透過統計方法、資訊理論與模型導向等策略,不僅能提升訓練效率,還能減少過擬合與運算資源浪費。適合想強化資料處理實力的學習者,是建立高效智慧模型的關鍵一課!
Thumbnail
2025/05/24
類別變數處理!一次掌握 One-Hot Encoding 與 Label Encoding 的核心概念、優缺點與 Python 實作,避免維度爆炸、消除錯誤排序,讓模型讀懂「紅藍綠」,精準預測大升級。
Thumbnail
2025/05/24
類別變數處理!一次掌握 One-Hot Encoding 與 Label Encoding 的核心概念、優缺點與 Python 實作,避免維度爆炸、消除錯誤排序,讓模型讀懂「紅藍綠」,精準預測大升級。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
今天想分享我怎麼「用 AI 設計一個學習流程」讓我把學過的英文「真的記住,並且用的出來」 這個過程不會碰到複雜的技術,只需結合基本學習原則,還有在ChatGPT用中文下指令的技巧,這樣你以後就可以針對自己想學的英文內容設計客製化的學習材料跟練習過程喔!
Thumbnail
今天想分享我怎麼「用 AI 設計一個學習流程」讓我把學過的英文「真的記住,並且用的出來」 這個過程不會碰到複雜的技術,只需結合基本學習原則,還有在ChatGPT用中文下指令的技巧,這樣你以後就可以針對自己想學的英文內容設計客製化的學習材料跟練習過程喔!
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
本文介紹了AI助手在數據收集和訓練過程中的工作原理和不斷進步的過程。關注的內容包括從公開的網絡資源、書籍、文章等渠道收集數據,數據的清洗和結構化處理,知識庫的增量更新以及訓練算法和模型的優化。如果大家對AI助手的發展還有任何其他感興趣的話題或建議,歡迎隨時告訴我們,讓我們共同探索,攜手進步。
Thumbnail
本文介紹了AI助手在數據收集和訓練過程中的工作原理和不斷進步的過程。關注的內容包括從公開的網絡資源、書籍、文章等渠道收集數據,數據的清洗和結構化處理,知識庫的增量更新以及訓練算法和模型的優化。如果大家對AI助手的發展還有任何其他感興趣的話題或建議,歡迎隨時告訴我們,讓我們共同探索,攜手進步。
Thumbnail
科技發達,AI智能也越來越發達。 蠢孩子,我每篇小說的圖片都是用AI製作的唷!!
Thumbnail
科技發達,AI智能也越來越發達。 蠢孩子,我每篇小說的圖片都是用AI製作的唷!!
Thumbnail
本文談及資料科學的領域與分工。首先是建造一個AI的研發流程,資料收集到 AI 模型訓練的過程,AI經歷這一切流程被創造出來並產生價值;再來本文也提及在這個領域中的各種腳色、資料工程師、數據庫工程師、資料科學家和資料分析師的各種介紹。並且強調跨領域合作的重要性。
Thumbnail
本文談及資料科學的領域與分工。首先是建造一個AI的研發流程,資料收集到 AI 模型訓練的過程,AI經歷這一切流程被創造出來並產生價值;再來本文也提及在這個領域中的各種腳色、資料工程師、數據庫工程師、資料科學家和資料分析師的各種介紹。並且強調跨領域合作的重要性。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News