iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
生成式 AI

從 0 到 1 學習生成式 AI 模型建立以及 Prompt 技巧系列 第 9

第 9 天:模型訓練第四步|數據集劃分

  • 分享至 

  • xImage
  •  

接下來就要把我們清理過的 raw data 來進行數據集的劃分了!劃分的意思是把「原先的數據分為訓練集、驗證集跟測試集」,這樣才可以避免我們的模型只適用於我們的訓練資料,而碰到新的資料模型就失效了,也就是俗稱的「過擬合」。

我們的比例採用 60 20 20,也就是 60% 的數據進行訓練,20% 的數據進行驗證,20% 的數據進行測試,比例他是可以隨時調整的,只是訓練的資料通常一定都是最多的,畢竟越多資料訓練相對的也會精確一些!

from sklearn.model_selection import train_test_split
import numpy as np

# 將特徵和目標變量分開
X = df_cleaned.drop('房價(萬)', axis=1)  # 假設 '房價(萬)' 是我們要預測的目標
y = df_cleaned['房價(萬)']

# 首先,分割出測試集
X_temp, X_test, y_temp, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 然後,從剩下的數據中分割出驗證集
X_train, X_val, y_train, y_val = train_test_split(X_temp, y_temp, test_size=0.25, random_state=42)  # 0.25 x 0.8 = 0.2

# 列出各集合的大小
print(f"訓練集大小: {X_train.shape[0]}")
print(f"驗證集大小: {X_val.shape[0]}")
print(f"測試集大小: {X_test.shape[0]}")

# 保存劃分後的數據集
np.save('X_train.npy', X_train)
np.save('y_train.npy', y_train)
np.save('X_val.npy', X_val)
np.save('y_val.npy', y_val)
np.save('X_test.npy', X_test)
np.save('y_test.npy', y_test)

備註:random_state=42 確保每次運行程式的時候得到的都是相同的劃分結果,這對於實驗的可重複性很重要。

這樣你就可以看到你的訓練集、驗證集跟測試集的資料數量了!數據集劃分可以說是模型訓練當中最重要的一個步驟了,畢竟一個模型是否有效很大部分就是跟他的訓練資料有關,以及這個模型的準確性,所以如果數據充足的話,其實越多的數據訓練是越好的

等後續模型訓練完成,也可以丟類似功用的數據給他訓練,就可以增加模型的運用性了!接下來就來到了「特徵工程」的環節了,讓我們繼續學習下去吧~


上一篇
第 8 天:模型訓練第三步|數據標記
下一篇
第 10 天:模型訓練第五步|特徵工程
系列文
從 0 到 1 學習生成式 AI 模型建立以及 Prompt 技巧21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言