iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
生成式 AI

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

第 14 天:模型訓練第九步|模型評估

  • 分享至 

  • xImage
  •  

最後我們來到的「模型評估」的環節啦,基本上就是最後幫你的模型表現做驗證,我選了一些常見的評估法來進行判斷:

  1. 基本評估指標: 我們計算了 RMSE 和 R2 分數。RMSE 反映了預測誤差的大小,而 R2 反映了模型解釋數據變異的能力。
  2. 殘差分析: 繪製殘差圖可以幫助我們檢查模型的假設是否成立。理想情況下,殘差應該隨機分佈在 0 周圍。
  3. 學習曲線: 學習曲線顯示了模型在不同訓練集大小下的表現。它可以幫助我們判斷模型是否存在過擬合或欠擬合問題。
  4. 預測 vs 實際值的散點圖: 這個圖直觀地展示了模型預測的準確性。理想情況下點應該集中在對角線附近。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import learning_curve
from sklearn.metrics import mean_squared_error, r2_score
from xgboost import XGBRegressor

# 1. 基本評估指標
y_pred = best_xgb.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
r2 = r2_score(y_test, y_pred)

print(f"RMSE: {rmse:.4f}")
print(f"R2 Score: {r2:.4f}")

# 2. 殘差分析
residuals = y_test - y_pred
plt.figure(figsize=(10, 6))
plt.scatter(y_pred, residuals)
plt.xlabel('預測值')
plt.ylabel('殘差')
plt.title('殘差圖')
plt.axhline(y=0, color='r', linestyle='--')
plt.show()

# 3. 學習曲線
train_sizes, train_scores, test_scores = learning_curve(
    best_xgb, X_processed, y, cv=5, n_jobs=-1, 
    train_sizes=np.linspace(0.1, 1.0, 10), scoring='neg_mean_squared_error')

train_scores_mean = np.sqrt(-np.mean(train_scores, axis=1))
test_scores_mean = np.sqrt(-np.mean(test_scores, axis=1))

plt.figure(figsize=(10, 6))
plt.plot(train_sizes, train_scores_mean, label='訓練誤差')
plt.plot(train_sizes, test_scores_mean, label='驗證誤差')
plt.xlabel('訓練樣本數')
plt.ylabel('RMSE')
plt.title('學習曲線')
plt.legend()
plt.show()

# 4. 預測vs實際值的散點圖
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'r--', lw=2)
plt.xlabel('實際值')
plt.ylabel('預測值')
plt.title('實際值 vs 預測值')
plt.show()

這樣測試完就可以大概知道模型訓練的表現啦!看起來還不錯,我們接下來也可以來實際透過資料來玩玩看是不是真的可以來預測房價了~

在寫的過程中我也是不斷地跟 AI 討論和測試才完成這個模型的建立,老實說沒有 AI 的輔助我覺得我很難真的完成這個模型的建立,因此我認為現在是一個最好的時代,只要你有想法跟實踐的心,基本上想實現什麼都是有機會的,也辛苦一路一起參與的你,讓我們在下一篇文章來測試我們努力的結果吧!


上一篇
第 13 天:模型訓練第八步|模型調參
下一篇
第 15 天:模型訓練第十步|模型部署
系列文
從 0 到 1 學習生成式 AI 模型建立以及 Prompt 技巧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言