25/100 決策樹回歸 🌳 像問問題一樣,透過條件分割找出最佳結果!

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

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


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


25. 決策樹回歸 🌳 像問問題一樣,透過條件分割找出最佳結果!


🌳 決策樹回歸(Decision Tree Regression)

像問問題一樣,透過條件分割找出最佳結果!

________________________________________


📌 1️⃣ 什麼是決策樹回歸?


決策樹回歸是一種 非線性回歸模型,它的核心概念是:

像問問題一樣,把數據依條件不斷分割

在每個區間內使用平均值(或其他統計方法)來預測

適合處理非線性、複雜關係的數據集


📌 與線性回歸的比較


線性回歸假設數據之間具有線性關係,透過數學公式擬合一條直線來預測結果,具有良好的可解釋性,但在面對複雜或非線性數據時,準確度可能有限;相較之下,決策樹回歸適用於非線性數據,透過條件判斷逐步分割數據空間,雖然同樣具備可解釋性,但模型容易出現過擬合現象,對於複雜結構能更好擬合,但需要注意模型的泛化能力。


✅ 決策樹回歸適用於複雜的數據關係,不需要假設數據是線性分佈的!

________________________________________


📌 2️⃣ 決策樹回歸的工作原理


🎯 如何建構決策樹?


(1) 選擇最佳分割點(Feature & Threshold)

(2) 根據該分割點將數據拆分成兩組(子節點)

(3) 對每個子節點繼續重複以上步驟,直到滿足停止條件

(4) 最終,每個終端節點的值是該區間內樣本的「平均值」


📊 例子:房價預測


假設我們想要根據「房屋面積(平方公尺)」來預測「房價(萬元)」。


房屋面積(平方公尺) 房價(萬元)


30 50

50 80

70 110

90 150

110 180


決策樹可能會這樣分割:


房屋面積 ≤ 60 → 平均房價 65 萬

60 < 房屋面積 ≤ 100 → 平均房價 130 萬

房屋面積 > 100 → 平均房價 180 萬


這樣,新來的房屋就可以依條件進行分類並得到預測房價!

________________________________________


📌 3️⃣ Python 實作:決策樹回歸


我們將比較:


1. 線性回歸

2. 決策樹回歸

3. 決策樹的深度影響

________________________________________


✅ (1) 產生數據


python


import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

from sklearn.tree import DecisionTreeRegressor

from sklearn.linear_model import LinearRegression

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=(50, 1)) # 房屋面積

y = 3000 * np.sqrt(X) + np.random.randint(-50000, 50000, size=(50, 1)) # 非線性房價


# 繪製散點圖

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

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

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

plt.title("房價 vs. 房屋面積")

plt.legend()

plt.show()


📌 房價與房屋面積的關係呈現非線性曲線,線性回歸將難以擬合。

________________________________________


✅ (2) 訓練線性回歸與決策樹回歸


python


# 分割訓練集與測試集

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


# 創建線性回歸模型

lin_reg = LinearRegression()

lin_reg.fit(X_train, y_train)


# 創建決策樹回歸(預設 max_depth=None,即完全展開)

tree_reg = DecisionTreeRegressor(random_state=42)

tree_reg.fit(X_train, y_train)

________________________________________


✅ (3) 預測與比較結果


python


# 預測

y_pred_lin = lin_reg.predict(X_test)

y_pred_tree = tree_reg.predict(X_test)


# 計算 MSE 和 R²

mse_lin = mean_squared_error(y_test, y_pred_lin)

r2_lin = r2_score(y_test, y_pred_lin)


mse_tree = mean_squared_error(y_test, y_pred_tree)

r2_tree = r2_score(y_test, y_pred_tree)


print(f"線性回歸 - MSE: {mse_lin:.2f}, R²: {r2_lin:.4f}")

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


📌 結果示例:


線性回歸 - MSE: 4.5e+10, R²: 0.52

決策樹回歸 - MSE: 1.2e+9, R²: 0.91


📌 解讀


決策樹回歸的 MSE(誤差)比線性回歸小很多

R² 接近 1,代表模型擬合度更高

________________________________________


✅ (4) 視覺化回歸曲線


python


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

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

y_pred_tree_curve = tree_reg.predict(X_grid)


# 繪製比較圖

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

plt.plot(X, lin_reg.predict(X), color='red', linewidth=2, label="線性回歸")

plt.plot(X_grid, y_pred_tree_curve, color='green', linewidth=2, label="決策樹回歸")

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

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

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

plt.legend()

plt.show()


📌 結果:

線性回歸(紅色):直線擬合效果差

決策樹回歸(綠色):更靈活地擬合非線性數據

________________________________________


📌 4️⃣ 如何選擇決策樹的深度?


如果決策樹太深,它可能會「記住訓練數據」,導致過擬合(Overfitting)。

我們可以透過 max_depth 控制樹的深度:


python


# 設定不同的樹深度

tree_reg_3 = DecisionTreeRegressor(max_depth=3, random_state=42)

tree_reg_3.fit(X_train, y_train)


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

tree_reg_5.fit(X_train, y_train)


tree_reg_full = DecisionTreeRegressor(random_state=42)

tree_reg_full.fit(X_train, y_train)


📌 一般建議


max_depth=3~5:適合大部分情境,平衡準確度與泛化能力

完全展開(max_depth=None):可能會過擬合,須使用交叉驗證來調整

________________________________________


🎯 總結


✅ 決策樹回歸適合非線性數據,能比線性回歸更準確!

✅ 可以調整 max_depth 來避免過擬合

✅ 決策樹可以擴展為隨機森林回歸,效果更好!


🚀 下一步:探索「隨機森林回歸」來提升預測準確度! 🌲🔥


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
3會員
106內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/27
多項式回歸,透過加入二次、三次等高次項,把直線變曲線,輕鬆捕捉房價、疾病進展等常見非線性趨勢。若你的散點圖呈彎曲,資料量又不大,使用 degree 2-3 的多項式回歸即可大幅降低 MSE、提升 R²,同時避免深度模型的高成本與複雜度。快速、易實作、效果顯著,是入門者解決非線性問題的首選利器!
Thumbnail
2025/05/27
多項式回歸,透過加入二次、三次等高次項,把直線變曲線,輕鬆捕捉房價、疾病進展等常見非線性趨勢。若你的散點圖呈彎曲,資料量又不大,使用 degree 2-3 的多項式回歸即可大幅降低 MSE、提升 R²,同時避免深度模型的高成本與複雜度。快速、易實作、效果顯著,是入門者解決非線性問題的首選利器!
Thumbnail
2025/05/27
正則化回歸在損失函數中加入懲罰項,抑制權重過大,避免模型記憶訓練噪聲而過擬合。Ridge (L2) 收縮所有係數;Lasso (L1) 可將部分係數壓成 0,兼具特徵選擇;ElasticNet 結合 L1 與 L2,兼顧去除冗餘與穩定性,特別適合高維且具共線性的資料。
Thumbnail
2025/05/27
正則化回歸在損失函數中加入懲罰項,抑制權重過大,避免模型記憶訓練噪聲而過擬合。Ridge (L2) 收縮所有係數;Lasso (L1) 可將部分係數壓成 0,兼具特徵選擇;ElasticNet 結合 L1 與 L2,兼顧去除冗餘與穩定性,特別適合高維且具共線性的資料。
Thumbnail
2025/05/27
多元線性回歸單元,教你一次掌握多維特徵建模、共線性診斷與 Python 實戰,讓房價、銷售額等預測更精準,打下進階回歸與正則化基礎。透過真實數據實驗,從特徵選擇、模型訓練到評估指標,一站式建立多變量思維,快速提升商業分析與決策能力。
Thumbnail
2025/05/27
多元線性回歸單元,教你一次掌握多維特徵建模、共線性診斷與 Python 實戰,讓房價、銷售額等預測更精準,打下進階回歸與正則化基礎。透過真實數據實驗,從特徵選擇、模型訓練到評估指標,一站式建立多變量思維,快速提升商業分析與決策能力。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
你從自動回覆的留言中,串接到了這裡,這是CHATGPT所設定好的記憶技巧,當然有經過我的教導,有我的內容,但也不見得都會全對。就是一個思考的指引,你可以參考看看。 當然他的內容 不是只有勞動法令可以運用,至少會給你三種記憶技巧,你再看一下有沒有適合你的方法。※不過 請注意 其他法條的引用要注意一下
Thumbnail
你從自動回覆的留言中,串接到了這裡,這是CHATGPT所設定好的記憶技巧,當然有經過我的教導,有我的內容,但也不見得都會全對。就是一個思考的指引,你可以參考看看。 當然他的內容 不是只有勞動法令可以運用,至少會給你三種記憶技巧,你再看一下有沒有適合你的方法。※不過 請注意 其他法條的引用要注意一下
Thumbnail
在這個充滿不確定性的AI時代,如何以不變應萬變?本文引用了《AI世界的底層邏輯與生存法則》中的觀點,強調成長型思維和專題式學習的重要性,幫助你在職場中脫穎而出,實現倍數成長。
Thumbnail
在這個充滿不確定性的AI時代,如何以不變應萬變?本文引用了《AI世界的底層邏輯與生存法則》中的觀點,強調成長型思維和專題式學習的重要性,幫助你在職場中脫穎而出,實現倍數成長。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
為了充分發揮AI的潛力,我們必須深入瞭解其運作模式和思考邏輯,並學會與AI對話的技巧。《ChatGPT提問課,做個懂AI的高效工作者》這本書提供了豐富的實例,讓讀者更容易學會如何提出精準的問題,並享有提問課程的閱讀回饋。這對於想成為懂AI的高效工作者的人來說,是一本值得一看的書。
Thumbnail
為了充分發揮AI的潛力,我們必須深入瞭解其運作模式和思考邏輯,並學會與AI對話的技巧。《ChatGPT提問課,做個懂AI的高效工作者》這本書提供了豐富的實例,讓讀者更容易學會如何提出精準的問題,並享有提問課程的閱讀回饋。這對於想成為懂AI的高效工作者的人來說,是一本值得一看的書。
Thumbnail
AI與人類分工:預測與判斷的智慧結合
Thumbnail
AI與人類分工:預測與判斷的智慧結合
Thumbnail
以下都是轉貼各方觀點,重點可以進一步看發表者跟回應者,我自己也有自身應用場景的murmur : 低利率環境可能回不去 科技掌握在大資金公司時代則是持續下去 工業時代引導一波人才需求 東方社會喜歡考試定生死 學校教育外還有補習班可以協助 既然AI工具隨處可得 培養厚植的各方素養與多元興趣
Thumbnail
以下都是轉貼各方觀點,重點可以進一步看發表者跟回應者,我自己也有自身應用場景的murmur : 低利率環境可能回不去 科技掌握在大資金公司時代則是持續下去 工業時代引導一波人才需求 東方社會喜歡考試定生死 學校教育外還有補習班可以協助 既然AI工具隨處可得 培養厚植的各方素養與多元興趣
Thumbnail
⋯⋯不過,我所抱持的心態,並不是透過提示來獲得答案,而是透過提示來獲得通往最終答案的靈感或啟發。——《高產出的本事》劉奕酉
Thumbnail
⋯⋯不過,我所抱持的心態,並不是透過提示來獲得答案,而是透過提示來獲得通往最終答案的靈感或啟發。——《高產出的本事》劉奕酉
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News