機器學習 —— 決策樹

機器學習 —— 決策樹(Decision Tree)詳細介紹

決策樹是一種直觀且易于解釋的監督學習算法,廣泛應用于分類和回歸任務。它通過模擬人類決策過程,將復雜問題拆解為一系列簡單的判斷規則,最終形成類似 “樹” 狀的結構。以下從基礎概念、原理、算法類型、優缺點及應用場景等方面展開詳細介紹。

一、決策樹的基礎概念

1. 核心定義

決策樹是一種基于樹狀結構進行決策的模型,每個節點代表對某個特征的判斷,每條分支代表該判斷的可能結果,葉子節點則代表最終的決策結果(分類任務中為類別,回歸任務中為數值)。

2. 基本結構

  • 根節點(Root Node):樹的起點,包含所有樣本數據,是第一個特征判斷的起點。
  • 內部節點(Internal Node):表示對某個特征的判斷條件(如 “年齡是否> 30 歲”),每個內部節點會根據特征值分裂為多個子節點。
  • 分支(Branch):連接節點的線段,代表特征判斷的結果(如 “是” 或 “否”)。
  • 葉子節點(Leaf Node):樹的終點,輸出最終的預測結果(分類任務中為類別標簽,回歸任務中為預測值)。

示例:用決策樹判斷 “是否購買電腦”
根節點:收入水平(高 / 中 / 低)→ 內部節點:年齡(<30/30-40/>40)→ 葉子節點:購買 / 不購買。

二、決策樹的工作原理

決策樹的核心是如何選擇特征進行節點分裂,目標是通過分裂使子節點的 “純度” 更高(即子節點中的樣本盡可能屬于同一類別或數值更集中)。具體流程如下:

1. 特征選擇:如何分裂節點?

特征選擇的關鍵是通過不純度指標衡量分裂效果,常用指標包括:

(1)信息增益(Information Gain)—— ID3 算法

基于熵(Entropy)?計算,熵衡量樣本集合的混亂程度,熵值越低,純度越高。

  • 熵的計算公式(針對分類任務):

對于樣本集合D,若有k個類別,每個類別占比為pi?,則熵為:

信息增益:分裂后子節點的熵與父節點熵的差值,即:

其中A為特征,Dv?為特征A取第v個值的子樣本集,信息增益越大,特征越優。

(2)信息增益率(Gain Ratio)—— C4.5 算法

解決信息增益偏向多值特征的問題(如 “身份證號” 這類特征分裂后熵極低,但無實際意義)。
信息增益率 = 信息增益 / 特征自身的熵(分裂信息)。

(3)基尼指數(Gini Index)—— CART 算法

衡量從樣本中隨機抽取兩個樣本,類別不同的概率,基尼指數越低,純度越高。
計算公式:

CART 算法通過最小化基尼指數選擇特征。

(4)均方誤差(MSE)—— 回歸樹

針對回歸任務,用子節點樣本的均方誤差衡量分裂效果,MSE 越小越好:

其中yˉ?為子節點樣本的均值。

2. 樹的構建過程

  1. 從根節點開始,計算所有特征的不純度指標(如信息增益)。
  2. 選擇最優特征進行分裂,將樣本分配到子節點。
  3. 對每個子節點重復步驟 1-2,直到滿足停止條件:
    • 子節點樣本全部屬于同一類別(分類)或數值方差小于閾值(回歸)。
    • 節點樣本數小于最小分裂閾值。
    • 樹的深度達到預設最大值。

3. 剪枝:防止過擬合

決策樹若完全生長可能導致過擬合(對訓練數據擬合過好,泛化能力差),需通過剪枝優化:

  • 預剪枝(Pre-pruning):在樹構建過程中提前停止分裂(如限制深度、最小樣本數)。
  • 后剪枝(Post-pruning):先構建完整樹,再移除對泛化能力無幫助的分支(如通過交叉驗證判斷分支是否保留)。

三、常見決策樹算法對比

算法任務類型特征選擇指標樹結構優勢缺點
ID3分類信息增益多叉樹簡單直觀不支持連續特征,易過擬合
C4.5分類信息增益率多叉樹支持連續特征、缺失值處理計算復雜,不支持回歸
CART分類 / 回歸基尼指數(分類)、MSE(回歸)二叉樹可處理分類和回歸,效率高對不平衡數據敏感

四、決策樹的優缺點

優點

  1. 可解釋性強:樹結構直觀,能清晰展示決策規則(如 “若年齡> 30 且收入高,則購買”)。
  2. 無需特征預處理:對特征縮放、歸一化不敏感,可直接處理類別型和數值型特征。
  3. 訓練效率高:基于貪心算法,計算復雜度較低(尤其 CART 樹)。
  4. 抗噪聲能力較強:通過剪枝可減少噪聲影響。

缺點

  1. 易過擬合:未剪枝的樹可能過度擬合訓練數據,泛化能力差。
  2. 對樣本敏感:訓練數據微小變化可能導致樹結構大幅改變(穩定性差)。
  3. 偏向高維特征:信息增益等指標可能優先選擇多值特征。
  4. 難以處理非線性關系:單個決策樹對復雜數據的擬合能力有限(可通過集成學習彌補)。

五、決策樹的擴展:集成學習

為解決單個決策樹的局限性,衍生出集成學習方法,通過組合多個決策樹提升性能:

  • 隨機森林(Random Forest):多個決策樹的投票 / 平均,通過隨機采樣樣本和特征降低方差。
  • 梯度提升樹(GBDT):迭代生成決策樹,每個樹修正前序樹的誤差,提升精度。
  • XGBoost/LightGBM:優化的 GBDT 實現,效率和精度更優,廣泛用于競賽和工業界。

六、應用場景

決策樹因其易解釋性和實用性,在多個領域廣泛應用:

  1. 金融風控:信用評分(如 “收入> 5 萬且無逾期,則貸款批準”)。
  2. 醫療診斷:疾病判斷(根據癥狀特征逐步排查病因)。
  3. 客戶分類:用戶畫像與行為預測(如 “高活躍度且消費頻繁的用戶為優質客戶”)。
  4. 工業質檢:通過特征判斷產品是否合格。
  5. 回歸預測:房價預測、銷量預測等(回歸樹)。

總結

決策樹是一種簡單高效的監督學習算法,核心是通過不純度指標選擇特征分裂節點,結合剪枝優化避免過擬合。盡管存在穩定性差等局限,但通過集成學習(如隨機森林、GBDT)可顯著提升性能,使其成為工業界和學術界的重要工具。理解決策樹的原理是掌握集成學習的基礎,也是機器學習入門的核心知識點之一。

用一個簡單案例說明ID3的計算方法

數據如圖所示

以下是使用?ID3 算法?構建決策樹的詳細計算過程,基于你提供的天氣數據集(判斷是否適合戶外運動?play),步驟如下:

1. 數據集與目標

  • 數據集:包含 14 條樣本,特征為?outlook(天氣)、temperature(溫度)、humidity(濕度)、windy(是否有風),標簽為?play(是否適合運動,yes/no)。
  • 目標:用 ID3 算法選擇特征、構建決策樹,實現對?play?的分類。

2. ID3 核心思想:用?信息增益(Information Gain)?選擇最優特征

信息增益公式:

  • H(D):數據集?D?的?經驗熵(衡量標簽不確定性)。
  • H(Dv?):特征?A?取值為?v?時子集?Dv??的經驗熵。
  • 信息增益越大,特征對分類結果的 “區分度” 越高,優先選它做決策節點。

3. 計算步驟

步驟 1:計算數據集?D?的經驗熵?H(D)

標簽?play?的分布:

  • yes:9 條(索引 2,3,4,6,8,9,10,11,12)
  • no:5 條(索引 0,1,7,13,5)

經驗熵公式:

其中?pk??是標簽?k?的占比。

代入計算:

步驟 2:對每個特征,計算信息增益?IG(D,A)
特征 1:outlook(取值:sunny、overcast、rainy)
  • 子集劃分

    • sunny(D1):5 條(索引 0,1,7,8,10)→?play?分布:no(3 條)、yes(2 條)
    • overcast(D2):4 條(索引 2,6,11,12)→?play?分布:yes(4 條)、no(0 條)
    • rainy(D3):5 條(索引 3,4,5,9,13)→?play?分布:yes(3 條)、no(2 條)
  • 計算各子集的經驗熵

  • 信息增益?IG(D,outlook)

特征 2:temperature(取值:hot、mild、cool)
  • 子集劃分

    • hot(D1):4 條(索引 0,1,2,12)→?play?分布:yes(2 條)、no(2 條)
    • mild(D2):6 條(索引 3,7,9,10,11,13)→?play?分布:yes(4 條)、no(2 條)
    • cool(D3):4 條(索引 4,5,6,8)→?play?分布:yes(3 條)、no(1 條)
  • 計算各子集的經驗熵

  • 信息增益?IG(D,temperature)

特征 3:humidity(取值:high、normal)
  • 子集劃分

    • high(D1):7 條(索引 0,1,2,3,7,11,13)→?play?分布:yes(3 條)、no(4 條)
    • normal(D2):7 條(索引 4,5,6,8,9,10,12)→?play?分布:yes(6 條)、no(1 條)
  • 計算各子集的經驗熵

  • 信息增益?IG(D,humidity)

特征 4:windy(取值:FALSE、TRUE)
  • 子集劃分

    • FALSE(D1):8 條(索引 0,2,3,4,7,8,9,12)→?play?分布:yes(6 條)、no(2 條)
    • TRUE(D2):6 條(索引 1,5,6,10,11,13)→?play?分布:yes(3 條)、no(3 條)
  • 計算各子集的經驗熵

  • 信息增益?IG(D,windy)

步驟 3:選擇信息增益最大的特征作為根節點

對比 4 個特征的信息增益:

  • IG(outlook)≈0.246(最大)
  • IG(humidity)≈0.151
  • IG(windy)≈0.048
  • IG(temperature)≈0.029

因此,根節點選?outlook

步驟 4:遞歸劃分子集,構建子樹

對?outlook?的每個取值(sunny、overcast、rainy),遞歸重復上述過程(計算子集的經驗熵、信息增益,選最優特征)。

以?outlook=overcast?為例:

  • 子集共 4 條樣本(索引 2,6,11,12),play?全為?yes?→?已是純子集,直接生成葉節點?play=yes

以?outlook=sunny?為例:

  • 子集共 5 條樣本(索引 0,1,7,8,10),play?分布:no(3 條)、yes(2 條)。
  • 繼續計算該子集下各特征的信息增益(重復步驟 2),最終會選?humidity?或其他特征進一步劃分,直到所有子集都 “純”(熵為 0)或無特征可分。

以?outlook=rainy?為例:

  • 子集共 5 條樣本(索引 3,4,5,9,13),play?分布:yes(3 條)、no(2 條)。
  • 同樣遞歸計算信息增益,選擇最優特征(如?windy?或?humidity?等)繼續劃分。

5. 最終決策樹結構

總結

ID3 算法通過?信息增益?選特征,優先拆分 “區分度最高” 的特征。對這個天氣數據集,根節點是?outlook,然后遞歸處理各子集,直到所有葉節點 “純”(熵為 0)。實際實現時,可通過代碼(如 Python +?scikit-learn?或手動遞歸)完整構建決策樹。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92086.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

車規MCU軟錯誤防護技術的多維度分析與優化路徑

摘要&#xff1a;隨著汽車電子技術的飛速發展&#xff0c;微控制單元&#xff08;MCU&#xff09;在汽車電子系統中的應用日益廣泛。然而&#xff0c;大氣中子誘發的單粒子效應&#xff08;SEE&#xff09;對MCU的可靠性構成了嚴重威脅。本文深入探討了軟錯誤防護技術在車規MCU…

原生微信小程序實現語音轉文字搜索---同聲傳譯

效果展示 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/23257ce3b6c149a1bb54fd8bc2a05c68.png#pic_center 注意&#xff1a;引入同聲傳譯組件請看這篇文章 1.search.wxml <view class"search-page"><navigation-bar title"搜索" …

Wireshark安裝過程缺失vc_runtimeMinimum_x64.msi文件,安裝 Visual C++ Redistributable

一、我大意了 一開始是Npcap裝不上。 在這個網站下的&#xff1a; Wireshark (kafan58.com) 安裝程序&#xff1a; 安裝過程&#xff1a; 無語死了&#xff0c;感覺被騙了......外網下的才是最正版的。 二、外網正版 下載最新的4.4.8版本Wireshark重新安裝 2.1 vc_runtime…

高通平臺Wi-Fi Display學習-- 調試 Wi-Fi Display 問題

4.1 調試 WFD 性能 4.1.1 通過啟用調節器模式驗證 WFD 當系統設為調節器模式時,設備的運行時鐘將達到峰值。要在系統中啟用調節器模式,應 在序列中輸入以下命令: 1. adb shell stop mpdecision 2. adb shell echo 1→/sys/devices/system/cpu/cpu1/online 3. adb shell…

5G專網與SD-WAN技術融合:某飲料智能工廠網絡架構深度解析

隨著工業互聯網的快速發展&#xff0c;制造業正從傳統的生產模式向智能化、數字化方向轉型。某飲料智能工廠項目創新性地引入了5G專網與SD-WAN技術&#xff0c;形成了“連接-計算-應用-安全”的全鏈條網絡架構。本文將深入剖析這兩種技術在智能工廠中的應用場景、部署架構&…

Java項目:基于SSM框架實現的公益網站管理系統【ssm+B/S架構+源碼+數據庫+畢業論文+答辯PPT+遠程部署】

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本公益網站就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據信息&#x…

向華為學習——IPD流程體系之IPD術語

第一章 IPD體系 1.1集成產品開發IPD Integrated Product Development,IPD是一種領先的、成熟的產品開發的管理思想和管理模式。它是根據大量成功的產品開發管理實踐總結出來的,并被大量實踐證明的高效的產品開發模式。通過IPD,可建立起基于市場和客戶需求驅動的集成產品開…

落霞歸雁:從自然之道到“存內計算”——用算法思維在芯片里開一條“數據高速航道”

作者 落霞歸雁&#xff08;CSDN首發&#xff0c;轉載請注明&#xff09; 段落一 現象&#xff1a;當“摩爾”老去&#xff0c;數據卻在狂奔 過去 30 年&#xff0c;CPU 頻率翻了 60 倍&#xff0c;而 DRAM 帶寬只翻了 20 倍。算力與帶寬的剪刀差&#xff0c;讓“計算”變成“等…

StyleX:Meta推出的高性能零運行時CSS-in-JS解決方案

簡介 StyleX 是由 Meta 開發的零運行時 CSS-in-JS 解決方案&#xff0c;在構建時將樣式編譯為靜態 CSS&#xff0c;消除運行時開銷。 核心特性 零運行時開銷 – 構建時編譯為靜態 CSS類型安全 – 完整的 TypeScript 支持原子化 CSS – 自動生成原子化類名&#xff0c;最小化…

LINUX 85 SHElL if else 前瞻 實例

問題 判斷用戶是否存在 id user id $user變量判斷vsftpd軟件包被安裝 rpm -q vsftpd rpm -ql vsftpd >& null[rootweb ~]# rpm -ql vsftpd >/dev/null 2>&1 您在 /var/spool/mail/root 中有郵件yum install vsftpd 內核主版本判斷 uname -rcut -d[rootweb ~]#…

2025 年非關系型數據庫全面指南:類型、優勢

非關系型數據庫的分類與特點隨著數據量呈指數級增長和數據類型日益多樣化&#xff0c;傳統關系型數據庫在處理海量非結構化數據時面臨著嚴峻挑戰。非關系型數據庫&#xff08;NoSQL&#xff09;應運而生&#xff0c;它摒棄了傳統關系模型的約束&#xff0c;采用更靈活的數據存儲…

深度殘差網絡ResNet結構

Deep Residual Learning for Image Recognition&#xff0c;由Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun于2016年發表在CVPR上 1512.03385 (arxiv.org)https://arxiv.org/pdf/1512.03385 下圖中&#xff0c;左側為VGG19網絡&#xff0c;中間為34層的普通網絡&#xf…

python筆記--socket_TCP模擬瀏覽器實現

""" 1,導包 2,創建TCP套接字 3,建立連接 4,拼接客戶端請求報文 5,發送請求報文 6,接收響應報文 7,過濾出html頁面 8,保存為html文件 9,關閉套接字 """ # 1,導包 import socket # 2,創建TCP套接字 tcp_socketsocket.socket(socket.AF_INET,socket…

西門子PLC基礎指令4:置位指令 S、復位指令 R

布爾指令 1、置位指令 S Setbit 是要進行置位操作的地址的首地址&#xff0c;N 是從該首地址開始連續置位的位數 。 LD I0.0 // 裝載輸入繼電器I0.0的狀態&#xff08;當I0.0為ON時&#xff0c;執行后續指令&#xff09; S Q0.0, 3 // 從Q0.0開始&#xff0c;連續置位3…

2.3 子組件樣式沖突詳解

Vue2組件樣式沖突的成因與解決方案組件樣式沖突的根本原因在Vue單頁面應用中&#xff0c;所有組件的DOM結構最終都會合并到同一個index.html 頁面中。若子組件未使用scoped屬性&#xff0c;其樣式會默認全局生效&#xff0c;導致不同組件中相同選擇器&#xff08;如h1、.contai…

26-數據倉庫與Apache Hive

1.數據倉庫 是什么&#xff1f;解決什么&#xff1f;1.1 數據倉庫Data Warehouse 數倉 / DW 是一個用于存儲、分析、報告的數據系統.目的&#xff1a;構建面向分析的集成數據環境&#xff0c;分析結構為企業提供決策支持。數倉專注于分析數倉本身不“”生產“”數據&#xff0c…

前端開發技術教學(二)

書接上回&#xff1a;前端開發技術教學(一) -CSDN博客 必要資源&#xff1a;TRAE - The Real AI Engineer 目錄 一) 自定義函數 - function 二) DOM操控 DOM事件 a.) onclick b.) onkeydown 三) AI寫代碼 書接上回說到的前端3種主語言以及其用法&#xff0c;這期我們…

設計模式 - 組合模式:用樹形結構處理對象之間的復雜關系

文章目錄一、引言二、模式原理分析三、代碼示例四、核心要點五、使用場景分析六、案例七、為何使用組合模式&#xff1f;八、優缺點剖析九、最佳實踐建議十、總結一、引言 “組合模式”&#xff08;Composite Pattern&#xff09;常被誤解為“組合關系”。前者專注于將對象組合…

STM32U575低功耗調試

開啟了MSIK時鐘導致功耗變高在stop2模式下, 整體板子25.41uA; 如果在standby模式, 整體板子5uA;如果在stop2模式, 并且把LPTIM3,4選擇的時鐘是MSIK, 整體功耗53.59uA2.stanby模式板子整體5uA調試的時候, 可以讓板子進入standby模式, 如果電流很小, 可以證明板子沒有漏電(圖畫錯…

基于ARM+FPGA多通道超聲信號采集與傳輸系統設計

針對超聲信號采集系統在多通道同步采集和高速數據傳輸所面臨的挑戰,設計并實現了一種 基于 FPGA 的8通道超聲信號同步采集與傳輸系統。系統以FPGA 作為主控芯片,ADI公司的 AD9279作 為8通道超聲信號同步采集的模擬前端和模數轉換芯片,通過 DDR3SDRAM 及 USB3.0實現數據緩存和 高…