初識決策樹-理論部分

決策樹

前言

參考了大佬的博客:博客地址

適合分析離散數據,若是連續數據需要轉換成離散數據再做分析(比如圖中的年齡)

image-20250725201509189

結構

決策樹由節點和有向邊組成;節點可分為內部節點和葉節點

  • 內部節點:特征
  • 葉節點:類別
  • 有向邊:特征的取值范圍
image-20250725202928652

在用決策樹進行分類時,首先從根結點出發,對實例在該結點的對應屬性進行測試,接著會根據測試結果,將實例分配到其子結點;然后,在子結點繼續執行這一流程,如此遞歸地對實例進行測試并分配,直至到達葉結點;最終,該實例將被分類到葉結點所指示的結果中

在決策樹中,若把每個內部結點視為一個條件,每對結點之間的有向邊視為一個選項,則從根結點到葉結點的每一條路徑都可以看做是一個規則,而葉結點則對應著在指定規則下的結論。這樣的規則具有互斥性和完備性,從根結點到葉結點的每一條路徑代表了一類實例,并且這個實例只能在這條路徑上。從這個角度來看,決策樹相當于是一個 if-then 的規則集合,因此它具有非常好的可解釋性

作用

表示隨機變量的不確定度;對于決策樹的節點來說,理想狀態是節點特征對樣本進行分類后,能最大程度降低樣本的熵;可以這樣理解,構建決策樹就是對特征進行層次選取,而衡量特征選取的合理指標,就是熵

定義

對于在有限范圍內的離散隨機變量X,概率分布為:P(X=xi)=pi,i=1,2,…,n對于在有限范圍內的離散隨機變量X,概率分布為:\\ P(X=x_i) = p_i,i=1,2,\dots,n 對于在有限范圍內的離散隨機變量X,概率分布為:P(X=xi?)=pi?,i=1,2,,n

我們假設一個樣本中有k個類別,比如不同顏色的球

image-20250725203903860
k=4pblue=27,pyellow=27,pred=27,pgreen=17k=4\\ p_{blue}=\frac{2}{7},p_{yellow}=\frac{2}{7},p_{red}=\frac{2}{7},p_{green}=\frac{1}{7} k=4pblue?=72?,pyellow?=72?,pred?=72?,pgreen?=71?
則離散隨機變量X的熵定義為
H(X)=?∑i=1kpilogpi=?∑i=1k∣Ci∣∣D∣log∣Ci∣∣D∣Ci表示第i類樣本,D表示整個數據集H(X) = -\sum_{i=1}^{k}p_ilogp_i=-\sum_{i=1}^{k}\frac{|C_i|}{|D|}log\frac{|C_i|}{|D|}\\ C_i表示第i類樣本,D表示整個數據集 H(X)=?i=1k?pi?logpi?=?i=1k?DCi??logDCi??Ci?表示第i類樣本,D表示整個數據集
則X的熵僅與其分布有關,而與取值無關,H(X)也可以寫成H§
pi∈[0,1],logpi∈(?∞,0],?logpi∈[0,+∞)p_i \in [0,1],logp_i \in (-∞,0],-logp_i\in [0,+∞) pi?[0,1],logpi?(?,0],?logpi?[0,+)
當k很大時,H(X)也會變得很大

條件熵

引入

image-20250725204954318

以天氣為例,晴天為A類,陰天為B類,雨天為C類;他們都有k=2個類別,即是/否
H(XA)=?∑i=12pilogpi=?(12log12+12log12)=log2H(XB)=?∑i=12pilogpi=?(1log1+log0)=0H(XC)=?∑i=12pilogpi=?(0log0+1log1)=0H(X_A)=-\sum_{i=1}^{2}p_ilogp_i = -(\frac{1}{2}log\frac{1}{2}+\frac{1}{2}log\frac{1}{2})=log2\\ H(X_B)=-\sum_{i=1}^{2}p_ilogp_i=-(1log1+log0) = 0\\ H(X_C)=-\sum_{i=1}^{2}p_ilogp_i=-(0log0+1log1)=0\\ H(XA?)=?i=12?pi?logpi?=?(21?log21?+21?log21?)=log2H(XB?)=?i=12?pi?logpi?=?(1log1+log0)=0H(XC?)=?i=12?pi?logpi?=?(0log0+1log1)=0
整體天氣系統的熵
P(XA)=814,P(XB)=314,P(XC)=314H(X天氣)=814×H(XA)+314×H(XB)+314×H(XC)=47log2P(X_A)=\frac{8}{14},P(X_B) = \frac{3}{14},P(X_C) = \frac{3}{14}\\ H(X_{天氣}) = \frac{8}{14}\times H(X_A)+\frac{3}{14}\times H(X_B)+\frac{3}{14}\times H(X_C)=\frac{4}{7}log2 P(XA?)=148?,P(XB?)=143?,P(XC?)=143?H(X天氣?)=148?×H(XA?)+143?×H(XB?)+143?×H(XC?)=74?log2

定義

上面的例子其實就是在求條件熵
概率統計中條件概率公式:P(A∣B)=P(AB)P(B)對于隨機變量(X,Y),其聯合分布P(X=xi,Y=yj)=pij概率統計中條件概率公式:P(A|B) = \frac{P(AB)}{P(B)}\\ 對于隨機變量(X,Y),其聯合分布P(X=x_i,Y=y_j)=p_{ij} 概率統計中條件概率公式:P(AB)=P(B)P(AB)?對于隨機變量(X,Y),其聯合分布P(X=xi?,Y=yj?)=pij?

H(Y∣X)=∑i=1kpiH(Y∣X=xi)H(Y∣X):在X條件下的熵pi:P(X=xi)H(Y|X) = \sum_{i=1}^{k}p_iH(Y|X=x_i)\\ H(Y|X):在X條件下的熵\\ p_i:P(X=x_i)\\ H(YX)=i=1k?pi?H(YX=xi?)H(YX):X條件下的熵pi?:P(X=xi?)

劃分選擇

信息增益

ID3算法選用的評估標準
g(D,X)=H(D)?H(D∣X)H(D∣X)=∑i=1k∣Ci∣∣D∣H(X=xi)g(D,X)為信息增益,表示特征X使數據集D不確定性的減少程度g(D,X) = H(D)-H(D|X) \\ H(D|X)=\sum_{i=1}^{k}\frac{|C_i|}{|D|}H(X=x_i)\\ g(D,X)為信息增益,表示特征X使數據集D不確定性的減少程度 g(D,X)=H(D)?H(DX)H(DX)=i=1k?DCi??H(X=xi?)g(D,X)為信息增益,表示特征X使數據集D不確定性的減少程度

選擇根節點

將使信息增益G(D,X)最大的特征X作為根節點

信息增益率

C4.5算法選用的評估標準

為什么引入信息增益率?

以信息增益作為標準時,會偏向于選擇取值較多的特征;比如給定編號與活動是否舉辦,那么1個編號一定只對應1個是/否,編號必然是最優的特征;但是編號對于類別劃分沒有幫助,所以我們需要引入一個新的概念-信息增益率
信息增益率𝑔𝑅(𝐷,𝑋)定義為其信息增益𝑔(𝐷,𝑋)與數據集𝐷在特征𝑋上值的熵𝐻𝑋(𝐷)之比HX(D)=?∑i=1k∣Di∣∣D∣log∣Di∣∣D∣∣D∣:整個數據集樣本數,∣Di∣:第i類的樣本數gR(D,X)=g(D,X)HX(D)信息增益率 𝑔_𝑅(𝐷, 𝑋) 定義為其信息增益 𝑔(𝐷, 𝑋) 與數據集 𝐷 在特征 𝑋 上值的熵 𝐻_𝑋(𝐷) 之比\\ H_X(D) = -\sum_{i=1}^{k}\frac{|D_i|}{|D|}log\frac{|D_i|}{|D|}\\ |D|:整個數據集樣本數,|D_i|:第i類的樣本數\\ g_R(D,X) = \frac{g(D,X)}{H_X(D)}\\ 信息增益率gR?(D,X)定義為其信息增益g(D,X)與數據集D在特征X上值的熵HX?(D)之比HX?(D)=?i=1k?DDi??logDDi??D:整個數據集樣本數,Di?:i類的樣本數gR?(D,X)=HX?(D)g(D,X)?

為什么信息增益率能降低偏向于選擇取值較多的特征的影響?

當樣本數量|D|增加后,|Di|/|D|降低,取對數再取負以后,H_X(D)就增大,信息增益率就降低

基尼系數

CART算法選用的評估標準

基尼系數代表了模型的不純度,基尼系數越小,則不純度越低,特征越好

在分類問題中,假設有k個類別,第i個類別概率為pi,則基尼系數為
Gini(p)=∑i=1kpi(1?pi)=∑i=1kpi?∑i=1kpi2=1?∑i=1kpi2Gini(p) = \sum_{i=1}^{k}p_i(1-p_i) = \sum_{i=1}^{k}p_i-\sum_{i=1}^{k}p_i^2=1-\sum_{i=1}^{k}p_i^2 Gini(p)=i=1k?pi?(1?pi?)=i=1k?pi??i=1k?pi2?=1?i=1k?pi2?
對于數據集D,假設有k個類別,第i個類別的數量為C_i,則數據集D的基尼系數為
Gini(D)=∑i=1k∣Ci∣∣D∣(1?∣Ci∣∣D∣)=1?∑i=1k(∣Ci∣∣D∣)2Gini(D) = \sum_{i=1}^{k}\frac{|C_i|}{|D|}(1-\frac{|C_i|}{|D|}) = 1-\sum_{i=1}^{k}(\frac{|C_i|}{|D|})^2 Gini(D)=i=1k?DCi??(1?DCi??)=1?i=1k?(DCi??)2
基尼系數其實表示了一個數據集中分類錯誤的平均概率
如果數據集根據X的取值分為D1,D2,…,DkGini(D,X)=∑i=1k∣Ci∣∣D∣Gini(Di)Gini(D,X)表示數據集D根據特征X劃分后的不確定性如果數據集根據X的取值分為{D_1,D_2,\dots,D_k} \\ Gini(D,X) = \sum_{i=1}^k\frac{|C_i|}{|D|}Gini(D_i) \\ Gini(D,X)表示數據集D根據特征X劃分后的不確定性 如果數據集根據X的取值分為D1?,D2?,,Dk?Gini(D,X)=i=1k?DCi??Gini(Di?)Gini(D,X)表示數據集D根據特征X劃分后的不確定性
觀察公式,其實可以發現面對編號特征時,基尼系數Gini(D,X)會是0

基尼增益

和信息增益類似
G(D,X)=Gini(D)?Gini(D,X)G(D,X) = Gini(D)-Gini(D,X) G(D,X)=Gini(D)?Gini(D,X)
采用越好的特征進行劃分,得到的基尼增益也越大

基尼仍會認為編號是一個比較優的特征(面對編號特征時,基尼系數Gini(D,X)會是0)

基尼增益率

基尼增益率GR(D,X)可以表示為G(D,X)與數據集D在特征X上的取值個數之比GR(D,X)=G(D,X)∣DX∣基尼增益率G_R(D,X)可以表示為G(D,X)與數據集D在特征X上的取值個數之比\\ G_R(D,X) = \frac{G(D,X)}{|D_X|} 基尼增益率GR?(D,X)可以表示為G(D,X)與數據集D在特征X上的取值個數之比GR?(D,X)=DX?G(D,X)?

處理連續值

比如有長度為n的連續數據a1,a2,…,an比如有長度為n的連續數據a_1,a_2,\dots,a_n 比如有長度為n的連續數據a1?,a2?,,an?

對其離散化的步驟:

  • 排序

  • 再任取相鄰點的中位點作為劃分點
    ?=ai+ai+12,1≤i≤n?1一共產生n?1個中位點\phi = \frac{a_i+a_{i+1}}{2},1 \leq i \leq n-1 \\ 一共產生n-1個中位點 ?=2ai?+ai+1??,1in?1一共產生n?1個中位點

  • 對這n-1個中位點劃分出的數據集進行計算熵,熵最小的就是最優劃分點

剪枝

對于決策樹而言,如果不斷向下劃分直至葉子節點的熵為0,理論上我們區分開了所有的類別。但是這樣很容易過擬合(劃分太多次相當于太多特征導致模型太復雜),因此我們需要進行剪枝

剪枝策略:

  • 預剪枝:邊構建決策樹邊剪枝
  • 后剪枝:決策樹構建完之后再剪枝

正則化/預剪枝

預剪枝策略可以通過限制決策樹深度,葉子節點個數,葉子節點含樣本數以及信息增量完成

  • 限制決策樹高度

    image-20250725232346567

    設定深度限度值d,當深度達到d時,就不再構建決策樹(節點不再繼續劃分數據),把當前節點作為葉子節點

  • 限制葉子節點個數

    image-20250725232642744

    當達到預設的葉子節點值n時,即使當前節點可以再繼續往下劃分,也不繼續劃分了,而是作為葉子節點

  • 限制葉子節點樣本數

    image-20250725232907965

    限制葉子節點的樣本數不小于n,如果一個節點下所有分支的葉子節點包含的樣本數都小于n,那么需要對這個分支進行剪枝

  • 限制最低信息增益

    image-20250725233415198

后剪枝

衡量標準
Lα=∑i=1n(Gini(Ti)×∣Ti∣)+α∣Tleaf∣n是葉子節點數Lα表示最終損失(越小越好)Gini(T)表示當前節點的基尼系數∣T∣表示當前節點的樣本數Tleaf表示當前節點被劃分后產生的葉子節點個數α表示偏好系數,類似于正則化參數λ,越大表示對劃分葉子節點懲罰越重L_{\alpha}=\sum_{i=1}^{n} (Gini(T_i)\times|T_i|)+\alpha|T_{leaf}| \\ n是葉子節點數\\ L_{\alpha}表示最終損失(越小越好) \\ Gini(T)表示當前節點的基尼系數 \\ |T|表示當前節點的樣本數 \\ T_{leaf}表示當前節點被劃分后產生的葉子節點個數\\ \alpha表示偏好系數,類似于正則化參數λ,越大表示對劃分葉子節點懲罰越重\\ Lα?=i=1n?(Gini(Ti?)×Ti?)+αTleaf?n是葉子節點數Lα?表示最終損失(越小越好)Gini(T)表示當前節點的基尼系數T表示當前節點的樣本數Tleaf?表示當前節點被劃分后產生的葉子節點個數α表示偏好系數,類似于正則化參數λ,越大表示對劃分葉子節點懲罰越重
image-20250725235407062

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

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

相關文章

opencv--day02--圖像顏色處理及圖像仿射變換

文章目錄前言一、 圖像顏色處理1. 顏色加法1.1 OpenCV加法1.2 numpy加法1.3 顏色加權加法2.顏色空間2.1 RGB顏色空間2.2 HSV顏色空間3. 顏色轉換3.1 讀取的圖片同時轉換3.2 對已有圖片轉換4. 圖像灰度化4.1 灰度圖概念4.2 最大值灰度化4.3 平均值灰度化4.4 加權均值灰度化5. 圖…

第一層nginx訪問url如何透傳到第二層nginx

要讓第一層Nginx將客戶端請求的URL完整透傳到第二層Nginx,關鍵在于正確配置proxy_pass指令及路徑拼接規則。以下是具體配置方法和注意事項: 核心配置原則 proxy_pass指令末尾是否添加/會直接影響URL的透傳方式: 不帶/:會將locatio…

【2025最新畢業設計】外賣點餐小程序(外賣點餐管理系統)

外賣點餐小程序的設計與實現技術大綱(Vue.js Element UI)需求分析與功能設計用戶需求調研:分析目標用戶群體的核心需求(如快速點餐、支付便捷、訂單跟蹤等)核心功能模塊劃分:用戶端(登錄/注冊、…

兩臺電腦連接交換機,使用其中一臺電腦的網絡上網(NAT轉發)

場景 windows 電腦和 linux電腦連在同一臺交換機上,linux電腦有通過無線網絡。要實現Windows電腦通過交換機共享Linux電腦的無線網絡上網,需將Linux設為網關并進行網絡共享,步驟如下: 一、Linux電腦設置(網關配置&…

OpenCV Mat UMat GpuMat Matx HostMem InputArray等設計哲學

一、概覽: GpuMat對應于cuda;HostMem 可以看作是一種特殊的Mat,其存儲對應cuda在主機分配的鎖頁內存,可以不經顯示download upload自動轉變成GpuMat(但是和GpuMat并無繼承關系);UMat對應于openc…

ATR2652SGNSS全頻段低噪聲放大器

ATR2652S是一款具有高增益、低噪聲系數的低噪聲放大器芯片。支持GNSS全頻段信號,同時GNSS 的兩個頻段可以應用于GNSS雙頻導航接收機中。 采用先進的 SiGe 工藝設計和制作,工藝穩定,低噪聲放大器在 GNSS 整個頻段內可以獲得非常好的射頻性能&a…

大數據中心——解讀60頁IDC云數據中心機房運維服務解決方案【附全文閱讀】

該方案主要面向云數據中心運營管理者、IT 運維人員、企業決策者等,旨在解決云資源和業務網絡管理難題,提升 IT 資源掌控能力。方案核心是 EVM VirtualViz 仿真可視化系統,它整合多源數據,提供 3D 仿真展示,實現數據中心…

環境變量-進程概念(7)

文章目錄Linux 真實調度算法1. queue[140]2. bitmap[5] 位圖3. nr_active4. 活躍進程與過期進程環境變量1. 基本概念2. 命令行參數3. PATH 環境變量4. 環境變量具體操作Linux 真實調度算法 下圖是Linux2.6內核中進程隊列的數據結構,也有Linux2.6內核進程O(1)調度算…

為什么數組可以做到時間復雜度為O(1)的隨機訪問

這個問題涉及數組底層結構與內存尋址機制 一、數組元素在內存中連續存儲 數組在內存中會開辟一塊連續地址空間。假設數組A為int類型,共有n個元素,每個元素大小為4字節,那么他們在內存中的存儲結構可能如下:內存地址數組元素A0x100…

《使用Qt Quick從零構建AI螺絲瑕疵檢測系統》——5. 集成OpenCV:讓程序擁有“視力”

目錄一、概述1.1 背景介紹:賦予應用“視力”1.2 學習目標二、集成OpenCV2.1 安裝OpenCV2.2 在Qt項目中配置CMake三、項目數據集介紹與準備四、圖像的橋梁:ImageProvider與格式轉換五、加載、轉換并顯示圖像六、總結與展望一、概述 1.1 背景介紹&#xf…

智慧駕駛疲勞檢測算法的實時性優化

智慧駕駛疲勞檢測:從技術突破到場景革命全球每年因疲勞駕駛引發的交通事故占比超20%,夜間及長途駕駛場景中這一比例更高。當駕駛員出現疲勞甚至暈倒等危險駕駛行為時,傳統檢測手段因依賴單一傳感器或受環境干擾,存在誤報率高、響應…

USRP X440

產品概述 USRP X440 是 Ettus Research 推出的高性能、多通道、寬帶軟件定義無線電(SDR)系統。基于 Xilinx Zynq UltraScale RFSoC 架構,它提供高密度、相干性的信號收發能力,幫助您快速構建雷達、電子戰(EW&#xff0…

[特殊字符] GitHub 2025年7月月度精選項目 Top5

🚀 GitHub 2025年7月月度精選項目 Top5 本月GitHub有哪些值得關注的優質開源項目?我從數千個新項目中,精選了5個有趣 實用 可演示的倉庫 無論你是開發者、AI愛好者、工具控,還是正在做副業產品,這篇文章都值得收藏&a…

微服務架構下的自動化測試策略調優經驗分享

微服務架構下,自動化測試策略需針對分布式特性、服務自治性和高耦合風險進行針對性調整的關鍵調整方向及實施方法: 一、??測試策略重構:分層與契約驅動?? 1. ??測試金字塔升級為鉆石模型?? ??調整邏輯??:傳統金字塔中UI測試占比過高,而微服務需強化契約測試與…

圖論:并查集

入門 久聞并查集的大名,今天來一探究竟,到底什么是并查集,并查集有什么用? 并查集(Disjoint Set Union, DSU)是一種處理不相交集合的合并及查詢問題的數據結構。 其實并查集的作用主要就有兩個: 1、將兩個元素添加到…

告別靜態文檔!Oracle交互式技術架構圖讓數據庫學習“活“起來

🗺? 當數據庫架構圖學會"互動" 想象一下,你正在學習Oracle數據庫架構,面對密密麻麻的靜態文檔和復雜的組件關系圖,是不是常常感到: 像在迷宮里找路,不知道組件間如何協作?想深入了…

day62-可觀測性建設-全鏈路監控zabbix+grafana

🌟監控api接口 🔍監控zabbix-api接口 生成API tokens命令行測試 curl -s -X POST -H "Content-Type: application/json-rpc" -d {"jsonrpc": "2.0","method": "host.get","params": {&quo…

通過Deepseek找工作

推送的結果如下,對應的AI提示詞在底部: 計算機方向遠程工作職位匯總 整合全球遠程技術崗位 | 支持全地域遠程辦公 | 涵蓋開發、安全、云計算等方向 覆蓋方向:8+個技術領域 薪資范圍:10K-40K/月 工作模式:100%遠程 遠程技術職位列表 職位名稱 技能要求 經驗要求 薪資…

vscode文件顏色,只顯示自己更改的文件顏色、剛git下來的庫,vscode打開后,顯示所有文件都被修改了

問題:git新的庫,然后我用vscode打開,默認顯示所有的文件都更改了,但是我打開他們修改的對比,沒有顯示任何有被修改的地方,是怎么回事 linux/wsl下這么設置就可以了:git config core.autocrlf in…

基于ENMeval包的MaxEnt模型參數優化總結

MaxEnt模型參數優化1. MaxEnt模型優化:增加RM,降低模型過擬合風險,簡易模型,平滑響應曲線,增強模型可解釋性和轉移性(生物入侵)2. 默認參數:FCLQHP,RM12.1. 基于優化的 M…