CART決策樹

一、基本概念

CART(Classification and Regression Trees)決策樹是一種典型的分類和回歸的樹形結構模型,由於其簡單、易於理解和實現,在實際應用中得到廣泛應用。 CART決策樹包含兩種類型:分類樹和回歸樹,其中分類樹用於分類問題,回歸樹用於回歸問題。

CART決策樹構建過程的核心是在每個節點上尋找最佳的分裂特徵和分裂點。節點的分裂是指根據某個特徵和對應的分裂點將節點劃分為左右兩個子節點。劃分的目的是儘可能地將同一類別的樣本放到同一子節點中,同時儘可能地將不同類別的樣本分到不同的子節點中。

在CART決策樹的構建過程中,我們需要採用一些指標來衡量節點的「純度」,這些指標主要有基尼係數和信息增益兩種。其中基尼係數是CART決策樹使用的默認指標,它的計算很簡單,公式如下:

Gini(p) = 1 - ∑(i=1~k) p(i)^2

其中k表示類別的個數,p(i)表示樣本屬於第i類的概率。當一個節點中的樣本全部屬於同一個類別時,基尼係數最小為0;當一個節點中的樣本屬於不同的類別時,基尼係數最大為1。

二、分類樹的構建

對於分類問題,CART決策樹的構建過程如下:

1、節點的初始狀態:

將所有樣本看作一個整體,將整個訓練數據集看作一個節點,在該節點上找到最佳的分裂特徵和分裂點來確定左右子節點,將數據集分為兩部分,第一部分樣本屬於某一個類別,第二部分樣本屬於其他類別。

2、節點的分裂:

根據某個特徵和對應的分裂點將節點劃分為左右兩個子節點,這個分裂點的選擇在回歸樹和分類樹中不同。在分類樹中,為了讓同一類別的樣本盡量分到同一節點中,我們需要找到最優的分裂特徵和分裂點。 在這個過程中,我們需要設計一個評價指標來衡量節點的純度。常用的指標有基尼係數和信息熵。

3、遞歸構建樹:

對於當前節點的左右兩個子節點,重複執行步驟2和步驟3,直到達到預設的停止條件,例如節點中的樣本數量達到了預設的最小值,或者節點的深度達到了預設的最大值。當無法再分裂時,節點變為葉節點。

三、回歸樹的構建

對於回歸問題,CART決策樹的構建過程如下:

1、節點的初始狀態:

將所有樣本看作一個整體,將整個訓練數據集看作一個節點,在該節點上找到最佳的分裂特徵和分裂點來確定左右子節點,將數據集分為兩部分,第一部分樣本擬合出的回歸函數與真實值的誤差儘可能小,第二部分樣本擬合出的回歸函數與真實值的誤差儘可能小。

2、節點的分裂:

根據某個特徵和對應的分裂點將節點劃分為左右兩個子節點,這個分裂點的選擇需要最小化誤差平方和,即:

min∑(y-y_hat)^2

其中y表示真實值,y_hat表示預測值。回歸樹採用的是一種自頂向下、貪心的策略,即每次選擇最優的特徵進行分裂,因此得到的樹是不穩定的,容易受到噪聲的影響。

3、遞歸構建樹:

對於當前節點的左右兩個子節點,重複執行步驟2和步驟3,直到達到預設的停止條件,例如節點中的樣本數量達到了預設的最小值,或者節點的深度達到了預設的最大值。當無法再分裂時,節點變為葉節點。

四、代碼示例

以下示例代碼展示了如何使用CART決策樹進行分類:

import numpy as np
from sklearn.tree import DecisionTreeClassifier

# 構造示例數據集
X = np.array([
    [5.1, 3.5, 1.4, 0.2],
    [4.9, 3.0, 1.4, 0.2],
    [6.2, 3.4, 5.4, 2.3],
    [5.9, 3.0, 5.1, 1.8]])
y = np.array([0, 0, 1, 1])

# 構建分類樹模型
clf = DecisionTreeClassifier()
clf.fit(X, y)

# 預測新樣本類別
x_test = np.array([5.8, 2.8, 5.1, 2.4])
y_pred = clf.predict([x_test])

print("預測類別為:", y_pred)  # 輸出預測結果

原創文章,作者:XXFGX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/334136.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XXFGX的頭像XXFGX
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:05

相關推薦

  • 詳解決策樹ID3算法

    一、ID3算法介紹 ID3(Iterative Dichotomise 3)算法是一種決策樹算法。它使用信息增益作為特徵選擇的標準,即從所有可能的特徵中選擇出信息增益最大的特徵,作…

    編程 2025-04-24
  • Python實現決策樹

    一、決策樹簡介 決策樹(Decision Tree)是一種常見的分類和回歸算法,其可處理離散型和連續型數據,在數據挖掘、機器學習等領域被廣泛應用。 決策樹的結構類似一棵樹,每個節點…

    編程 2025-04-22
  • 機器學習之決策樹

    一、什麼是決策樹? 決策樹是一種基於樹形結構的機器學習算法,用於進行分類和回歸分析。在分類問題中,決策樹將數據分成不同的類別,每一個葉子節點代表一個類別。在回歸問題中,決策樹用於預…

    編程 2025-01-20
  • 機器學習決策樹詳解

    一、什麼是決策樹 決策樹屬於一類非常重要的無監督機器學習算法,它被廣泛用於數據挖掘和機器學習領域。決策樹是一種樹形結構,選擇某個屬性作為根節點,其他屬性作為子節點。通過遞歸生成樹形…

    編程 2025-01-09
  • c語言cart決策樹,cart決策樹算法

    本文目錄一覽: 1、決策樹算法 CART和C4.5決策樹有什麼區別?各用於什麼領域? 2、決策樹分類算法的適用領域,不要概括成經濟、社會、醫療領域,具體到實際問題。且用什麼軟件實現…

    編程 2024-12-24
  • 決策樹分類器(DecisionTreeClassifier)

    一、什麼是決策樹分類器 決策樹分類器是一種基於決策樹模型,將不同數據判定為其所屬類別的算法。在分類數據時,它將不同的特徵進行分類,並基於此將新的數據映射到相應的類別。這種算法可用於…

    編程 2024-12-22
  • 決策樹剪枝

    一、決策樹剪枝算法 決策樹剪枝是為了避免過擬合而產生的一種方法。決策樹剪枝可以看作是一種減小模型複雜度的方法,其核心思想是通過去除一些決策樹分支來讓模型更加簡單。 常用的決策樹剪枝…

    編程 2024-12-15
  • CART分類樹

    一、CART分類樹算法 CART(Classification and Regression Tree)分類樹算法是一種決策樹分類模型,既可以用於分類問題,也可以用於回歸問題。它是…

    編程 2024-12-12
  • PythonLightGBM: 高效的基於決策樹的梯度提升庫

    PythonLightGBM是一個高效、快速、可擴展、靈活的基於決策樹的梯度提升庫。它被設計成分佈式的,憑藉高效率,輕量級性,以及更加合理的系統用法而在許多機器學習競賽中佔據了主導…

    編程 2024-12-12
  • CART決策樹詳解

    一、CART決策樹算法 CART決策樹(Classification And Regression Tree)是一種基於二叉樹結構的決策樹算法。CART算法通過不斷的對數據集進行分…

    編程 2024-12-11

發表回復

登錄後才能評論