28/100 XGBoost 回歸 🚀 競賽冠軍演算法,強大又準確的提升樹模型!

更新 發佈閱讀 11 分鐘

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


28/100 第三週:監督學習(回歸)


28. XGBoost 回歸 🚀 競賽冠軍演算法,強大又準確的提升樹模型!


🚀 XGBoost 回歸(Extreme Gradient Boosting Regression)

________________________________________


📌 1️⃣ 什麼是 XGBoost 回歸?


XGBoost(Extreme Gradient Boosting) 是一種基於 梯度提升樹(Gradient Boosting Trees, GBTs) 的強大機器學習演算法。


與傳統的回歸方法(如線性回歸、決策樹回歸)相比,它更擅長:


處理非線性數據

自動處理缺失值

高效且計算速度快

適用於大規模數據集

防止過擬合(內建正則化機制)


📌 適用場景


預測房價、銷售額

股票市場預測

醫療診斷、風險評估

數據科學競賽(Kaggle 冠軍模型!)

________________________________________


📌 2️⃣ XGBoost 回歸 vs. 傳統回歸


線性回歸適用於數據關係明確為線性的情境,計算速度非常快,但對於缺失值的處理能力較差,需要先行手動補齊,且容易出現過擬合問題。決策樹回歸則能處理非線性數據,透過條件分割應對複雜結構,計算速度中等,但同樣存在過擬合風險,且對缺失值需要手動處理。


相比之下,XGBoost 回歸是進階強化版本,不僅適用於結構複雜的數據,還因為底層採用 C++ 實現而計算效率極高,並且內建對缺失值的自動處理能力,搭配正則化技術,有效降低過擬合風險,是處理大型數據與複雜問題時的優選工具。



✅ XGBoost 回歸在大數據和非線性數據中表現最佳!

________________________________________


📌 3️⃣ XGBoost 回歸的核心概念


XGBoost 是 基於梯度提升(Gradient Boosting)的提升樹模型,核心概念包括:


🎯 (1) 梯度提升(Gradient Boosting)


使用多棵決策樹來提升預測能力

每棵新樹修正前一棵樹的誤差

最終將所有樹的預測值加總,得到最終結果


📌 簡單理解 1️⃣ 第一棵決策樹 做出預測


2️⃣ 第二棵樹 修正第一棵樹的錯誤

3️⃣ 重複 n 次,最終組合所有樹的結果來提高準確度

________________________________________


🎯 (2) XGBoost 的優勢


✅ 計算速度快(用 C++ 編寫,並行計算)

✅ 可自動處理缺失值

✅ 防止過擬合(L1 & L2 正則化)

✅ 適用於數值型和分類型特徵

________________________________________


📌 4️⃣ Python 實作:XGBoost 回歸


我們將比較:


1. 決策樹回歸

2. XGBoost 回歸

________________________________________


✅ (1) 產生數據


python


import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.tree import DecisionTreeRegressor

from xgboost import XGBRegressor

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error, r2_score


# 產生非線性數據(房屋面積 vs. 房價)

np.random.seed(42)

X = np.random.randint(20, 200, size=(100, 1)) # 房屋面積

y = 5000 * X + 100000 + np.random.randint(-50000, 50000, size=(100, 1)) # 房價(含隨機噪聲)


# 繪製散點圖

plt.scatter(X, y, color='blue', alpha=0.5, label="真實數據")

plt.xlabel("房屋面積(平方公尺)")

plt.ylabel("房價(萬元)")

plt.title("房價 vs. 房屋面積(非線性數據)")

plt.legend()

plt.show()

📌 房價 vs. 房屋面積的關係包含隨機噪聲,適合測試 XGBoost 回歸的能力!

________________________________________


✅ (2) 訓練決策樹回歸 vs. XGBoost


python


# 分割訓練集與測試集

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


# 🔹 決策樹回歸

tree_reg = DecisionTreeRegressor(max_depth=5, random_state=42)

tree_reg.fit(X_train, y_train)


# 🔹 XGBoost 回歸

xgb_reg = XGBRegressor(objective="reg:squarederror", n_estimators=100, learning_rate=0.1, max_depth=5)

xgb_reg.fit(X_train, y_train)


📌 XGBoost 的 n_estimators=100 代表使用 100 棵樹來訓練,learning_rate=0.1 控制學習速度

________________________________________


✅ (3) 預測與評估


python


# 預測

y_pred_tree = tree_reg.predict(X_test)

y_pred_xgb = xgb_reg.predict(X_test)


# 計算 MSE 和 R²

mse_tree = mean_squared_error(y_test, y_pred_tree)

r2_tree = r2_score(y_test, y_pred_tree)


mse_xgb = mean_squared_error(y_test, y_pred_xgb)

r2_xgb = r2_score(y_test, y_pred_xgb)


print(f"決策樹回歸 - MSE: {mse_tree:.2f}, R²: {r2_tree:.4f}")

print(f"XGBoost 回歸 - MSE: {mse_xgb:.2f}, R²: {r2_xgb:.4f}")


📌 結果示例:


決策樹回歸 - MSE: 3.2e+9, R²: 0.85

XGBoost 回歸 - MSE: 1.5e+9, R²: 0.92


📌 解讀


XGBoost 回歸的 MSE(誤差)比決策樹回歸低

R² 更接近 1,表示擬合效果更佳

XGBoost 能更有效地降低過擬合問題

________________________________________


✅ (4) 視覺化預測曲線


python


# 產生更多測試點來畫曲線

X_grid = np.linspace(min(X), max(X), 100).reshape(-1, 1)

y_pred_xgb_curve = xgb_reg.predict(X_grid)


# 繪製結果

plt.scatter(X, y, color='blue', alpha=0.5, label="真實數據")

plt.plot(X_grid, tree_reg.predict(X_grid), color='red', linewidth=2, label="決策樹回歸")

plt.plot(X_grid, y_pred_xgb_curve, color='green', linewidth=2, label="XGBoost 回歸")

plt.xlabel("房屋面積(平方公尺)")

plt.ylabel("房價(萬元)")

plt.title("XGBoost 回歸 vs. 決策樹回歸")

plt.legend()

plt.show()


📌 結果:


決策樹回歸(紅色):較容易過擬合

XGBoost(綠色):擬合更平滑,對數據適應性更強

________________________________________


📌 5️⃣ XGBoost 回歸的優缺點


✅ 優點

比決策樹和隨機森林更準確

內建正則化(L1 & L2),減少過擬合

可處理缺失值

訓練速度快(C++ 實作,並行運算)


⚠ 缺點

參數較多,需要調參

計算資源需求較高(適合大數據)

________________________________________


🎯 總結


✅ XGBoost 回歸是比決策樹更強大的回歸模型!

✅ 適合大數據與非線性數據,計算速度快!

✅ 防止過擬合,能自動處理缺失值!


🚀 下一步:學習「深度學習回歸」來進一步提升預測能力!🌲🔥


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
11會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/27
貝葉斯回歸以機率分佈估計權重,即使樣本少、噪聲大也能穩健預測,並提供參數與結果的不確定性量化;若你想在醫療、金融等高風險場景掌握「可信度」而不僅是點估計,Bayesian Regression 是低樣本、高信賴的最佳選擇。
Thumbnail
2025/05/27
貝葉斯回歸以機率分佈估計權重,即使樣本少、噪聲大也能穩健預測,並提供參數與結果的不確定性量化;若你想在醫療、金融等高風險場景掌握「可信度」而不僅是點估計,Bayesian Regression 是低樣本、高信賴的最佳選擇。
Thumbnail
2025/05/27
支援向量回歸(SVR)透過「ε 容忍管」忽略微小誤差,再以最大間隔尋找最平滑超平面,能優雅擬合高度非線性資料。搭配 RBF 內核,不需大量特徵工程即可大幅降低 MSE、提升 R²,且對離群點更具韌性。若想在中小型複雜數據集獲得精準回歸,SVR 絕對是高 CP 值選擇。
Thumbnail
2025/05/27
支援向量回歸(SVR)透過「ε 容忍管」忽略微小誤差,再以最大間隔尋找最平滑超平面,能優雅擬合高度非線性資料。搭配 RBF 內核,不需大量特徵工程即可大幅降低 MSE、提升 R²,且對離群點更具韌性。若想在中小型複雜數據集獲得精準回歸,SVR 絕對是高 CP 值選擇。
Thumbnail
2025/05/27
決策樹回歸像玩二十問答,逐層條件分割資料區間,以均值擬合非線性趨勢;免除繁瑣特徵工程也能大幅降低預測誤差,且保留直觀可解釋性。透過調整樹深即可抑制過擬合,是快速上手的靈活回歸利器,在房價估值、銷售預測等場景尤其實用。
Thumbnail
2025/05/27
決策樹回歸像玩二十問答,逐層條件分割資料區間,以均值擬合非線性趨勢;免除繁瑣特徵工程也能大幅降低預測誤差,且保留直觀可解釋性。透過調整樹深即可抑制過擬合,是快速上手的靈活回歸利器,在房價估值、銷售預測等場景尤其實用。
Thumbnail
看更多
你可能也想看
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型,並在 AI說書 - 從0開始 - 115 載入權重並執行 Tokenizing,現
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型,並在 AI說書 - 從0開始 - 115 載入權重並執行 Tokenizing,現
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從 AI說書 - 從0開始 - 82 到 AI說書 - 從0開始 - 85 的說明,有一個很重要的結論:最適合您的模型不一定是排行榜上最好的模型,您需要學習 NLP 評
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News