【機器學習基礎】機器學習入門核心算法:邏輯回歸(Decision Tree)

在這里插入圖片描述

機器學習入門核心算法:邏輯回歸(Decision Tree)

  • 一、算法邏輯
      • 1.1 基本概念
      • 1.2 算法流程
  • 二、算法原理與數學推導
      • 2.1 特征選擇指標
        • 信息熵(ID3算法)
        • 信息增益(Information Gain)
        • 信息增益率(C4.5算法)
        • 基尼系數(CART算法)
      • 2.2 決策樹生成算法
      • 2.3 剪枝處理
        • 預剪枝(Pre-pruning)
        • 后剪枝(Post-pruning)
  • 三、模型評估
      • 3.1 評估指標
      • 3.2 學習曲線分析
  • 四、應用案例
      • 4.1 鳶尾花分類
      • 4.2 金融風控評分卡
  • 五、經典面試題
      • 問題1:ID3、C4.5、CART的區別?
      • 問題2:如何處理連續特征?
      • 問題3:決策樹的優缺點?
  • 六、高級優化技術
      • 6.1 多變量決策樹
      • 6.2 增量學習
      • 6.3 異構決策樹
  • 七、最佳實踐指南
      • 7.1 參數調優建議
      • 7.2 特征處理技巧
  • 總結與展望

一、算法邏輯

1.1 基本概念

決策樹是一種樹形結構監督學習算法,通過遞歸地將特征空間劃分為互不重疊的區域來完成分類或回歸任務。核心組成元素:

  • 根節點:包含全體數據的起始節點
  • 內部節點:表示特征判斷條件的分支節點
  • 葉節點:存放最終決策結果的終端節點

關鍵特點

  1. 天然支持可解釋性(白盒模型)
  2. 可處理數值型和類別型數據
  3. 通過樹深度控制模型復雜度

1.2 算法流程

構建決策樹的遞歸過程

  1. 選擇當前最優劃分特征
  2. 根據特征取值分割數據集
  3. 對每個子集重復上述過程直到:
    • 節點樣本純度達到閾值
    • 達到最大樹深度
    • 樣本數量小于分裂閾值

決策過程可視化

是否年齡>30?
├── 是 → 是否有房產?
│   ├── 是 → 批準貸款
│   └── 否 → 拒絕貸款
└── 否 → 收入>50k?├── 是 → 批準貸款└── 否 → 拒絕貸款

二、算法原理與數學推導

2.1 特征選擇指標

信息熵(ID3算法)

衡量數據集混亂程度:
E n t ( D ) = ? ∑ k = 1 K p k log ? 2 p k Ent(D) = -\sum_{k=1}^K p_k \log_2 p_k Ent(D)=?k=1K?pk?log2?pk?
其中 p k p_k pk?為第 k k k類樣本的比例

信息增益(Information Gain)

G a i n ( D , a ) = E n t ( D ) ? ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D, a) = Ent(D) - \sum_{v=1}^V \frac{|D^v|}{|D|} Ent(D^v) Gain(D,a)=Ent(D)?v=1V?DDv?Ent(Dv)
缺點:偏向選擇取值多的特征

信息增益率(C4.5算法)

G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D, a) = \frac{Gain(D, a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a)?
其中固有值:
I V ( a ) = ? ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log ? 2 ∣ D v ∣ ∣ D ∣ IV(a) = -\sum_{v=1}^V \frac{|D^v|}{|D|} \log_2 \frac{|D^v|}{|D|} IV(a)=?v=1V?DDv?log2?DDv?

基尼系數(CART算法)

G i n i ( D ) = 1 ? ∑ k = 1 K p k 2 Gini(D) = 1 - \sum_{k=1}^K p_k^2 Gini(D)=1?k=1K?pk2?
基尼指數:
G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D, a) = \sum_{v=1}^V \frac{|D^v|}{|D|} Gini(D^v) Gini_index(D,a)=v=1V?DDv?Gini(Dv)

2.2 決策樹生成算法

ID3算法偽代碼

def create_tree(D, A):if D中樣本全屬于同一類別C:return 葉節點標記為Cif A = ? or D在所有特征上取值相同:return 葉節點標記為D中最多類選擇最優劃分特征a*生成分支節點:for a*的每個取值v:Dv = D中在a*上取值為v的子集if Dv為空:分支標記為D中最多類else:遞歸調用create_tree(Dv, A-{a*})return 分支節點

2.3 剪枝處理

預剪枝(Pre-pruning)

在樹生成過程中提前停止分裂:

  • 設置最大深度max_depth
  • 設置節點最小樣本數min_samples_split
  • 設置信息增益閾值min_impurity_decrease
后剪枝(Post-pruning)

生成完整樹后進行剪枝:

  1. 計算節點經驗熵:
    C α ( T ) = C ( T ) + α ∣ T ∣ C_{\alpha}(T) = C(T) + \alpha |T| Cα?(T)=C(T)+αT
    • C ( T ) C(T) C(T):模型對訓練數據的預測誤差
    • ∣ T ∣ |T| T:葉節點個數
  2. 自底向上遞歸剪枝,選擇使 C α C_{\alpha} Cα?最小的子樹

三、模型評估

3.1 評估指標

任務類型常用指標計算公式
分類準確率、F1 Score、AUC A c c u r a c y = T P + T N N Accuracy = \frac{TP+TN}{N} Accuracy=NTP+TN?
回歸MSE、MAE、R2 M S E = 1 n ∑ ( y i ? y ^ i ) 2 MSE = \frac{1}{n}\sum(y_i-\hat{y}_i)^2 MSE=n1?(yi??y^?i?)2

3.2 學習曲線分析

過擬合識別

訓練集準確率:0.98
測試集準確率:0.72
→ 模型過擬合

解決方案

  • 增加剪枝強度
  • 減少樹的最大深度
  • 使用集成方法(如隨機森林)

四、應用案例

4.1 鳶尾花分類

數據集:150個樣本,4個特征(花萼長寬、花瓣長寬)
實現代碼

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_irisiris = load_iris()
clf = DecisionTreeClassifier(max_depth=3)
clf.fit(iris.data, iris.target)# 可視化決策樹
from sklearn.tree import plot_tree
plot_tree(clf, feature_names=iris.feature_names)

模型效果

  • 準確率:0.96
  • 關鍵分裂特征:花瓣長度(Petal length)

4.2 金融風控評分卡

業務場景:信用卡申請風險評估
特征工程

  1. WOE編碼處理類別變量:
    W O E i = ln ? ( B a d i / T o t a l B a d G o o d i / T o t a l G o o d ) WOE_i = \ln\left(\frac{Bad_i/TotalBad}{Good_i/TotalGood}\right) WOEi?=ln(Goodi?/TotalGoodBadi?/TotalBad?)
  2. IV值篩選特征:
    I V = ∑ ( B a d % ? G o o d % ) × W O E IV = \sum (Bad\% - Good\%) \times WOE IV=(Bad%?Good%)×WOE

模型輸出

  • 高風險客戶識別率:82%
  • KS值:0.48

五、經典面試題

問題1:ID3、C4.5、CART的區別?

對比分析

算法分裂標準任務類型樹結構缺失值處理
ID3信息增益分類多叉樹不支持
C4.5信息增益率分類多叉樹支持
CART基尼系數/MSE分類/回歸二叉樹支持

問題2:如何處理連續特征?

解決方案

  1. 排序所有特征值: a 1 , a 2 , . . . , a n a_1, a_2,...,a_n a1?,a2?,...,an?
  2. 計算候選劃分點:
    T a = { a i + a i + 1 2 ∣ 1 ≤ i ≤ n ? 1 } T_a = \left\{\frac{a_i + a_{i+1}}{2} | 1 \leq i \leq n-1\right\} Ta?={2ai?+ai+1??∣1in?1}
  3. 選擇使指標最優的劃分點:
    G a i n ( D , a , t ) = E n t ( D ) ? ∣ D l ∣ ∣ D ∣ E n t ( D l ) ? ∣ D r ∣ ∣ D ∣ E n t ( D r ) Gain(D, a, t) = Ent(D) - \frac{|D^l|}{|D|}Ent(D^l) - \frac{|D^r|}{|D|}Ent(D^r) Gain(D,a,t)=Ent(D)?DDl?Ent(Dl)?DDr?Ent(Dr)

問題3:決策樹的優缺點?

優勢分析

  • 直觀易懂,可視化效果好
  • 無需數據歸一化
  • 自動特征選擇

主要缺點

  • 容易過擬合
  • 對樣本擾動敏感
  • 忽略特征間相關性

六、高級優化技術

6.1 多變量決策樹

在非葉節點使用線性組合進行劃分:
∑ i = 1 d w i x i > t \sum_{i=1}^d w_i x_i > t i=1d?wi?xi?>t
優勢:能捕捉特征間交互作用

6.2 增量學習

支持在線更新決策樹:

  1. 保留歷史劃分結構
  2. 僅更新統計量
  3. 動態調整分裂點

6.3 異構決策樹

混合不同分裂標準:

  • 上層使用信息增益率
  • 下層使用基尼指數

七、最佳實踐指南

7.1 參數調優建議

參數推薦值范圍作用說明
max_depth3-10控制模型復雜度
min_samples_split10-100防止過擬合
ccp_alpha0.01-0.1后剪枝強度

7.2 特征處理技巧

  • 類別變量:優先使用目標編碼而非One-Hot
  • 缺失值:采用代理分裂(Surrogate Splits)
  • 高基數特征:進行分箱處理

總結與展望

決策樹作為基礎機器學習算法,具有模型直觀訓練高效的特點,在金融風控、醫療診斷等領域廣泛應用。隨著技術的發展,決策樹的改進方向包括:

  1. 與神經網絡結合(如深度森林)
  2. 自動化特征工程
  3. 分布式計算優化

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

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

相關文章

網絡編程3

管道的性質 讀緩沖區為空,read阻塞寫緩沖區為空,write阻塞一端先close,另一端繼續read,read不阻塞,立刻返回0一端先close,另一端繼續write,write會觸發SIGPIPE信號,進程異常終止 soc…

influxdb時序數據庫

以下概念及操作均來自influxdb2 官方文檔 InfluxDB2 is the platform purpose-built to collect, store, process and visualize time series data. Time series data is a sequence of data points indexed in time order. Data points typically consist of successive meas…

洛谷 P3372 【模板】線段樹 1

【題目鏈接】 洛谷 P3372 【模板】線段樹 1 【題目考點】 1. 線段樹 2. 樹狀數組 【解題思路】 本題要求維護區間和,實現區間修改、區間查詢。 可以使用樹狀數組或線段樹完成該問題,本文僅介紹使用線段樹的解法。 解法1:線段樹 線段樹…

軟件更新 | TSMaster 202504 版本已上線!三大功能讓車載測試更智能

車載測試的智能化時代正在加速到來!TSMaster 202504 版本正式發布,本次更新聚焦以太網通信與數據高效處理,帶來三大核心功能升級—以太網報文信息過濾、XCP on Ethernet支持、按時間范圍離線回放,助力工程師更精準、更靈活地完成測…

java-單列集合list與set。

集合定位:存儲數據的容器 與數組的區別: 數組只能存儲同種數據類型數據,集合可以存儲不同類型的數據。 數組的長度一旦創建長度不可變,集合的長度是可變的 數組的操作單一,集合的操作比較豐富(增刪改查&…

ai之pdf解析工具 PPStructure 還是PaddleOCR

目錄 重點是四 先用 PPStructure 版面分析,分成不同的塊兒,再選用 PaddleOCR、或PPStructure基礎路徑OCR模型配置OCR模型配置GPU配置硬件配置性能配置一、框架選型對比分析1. **PaddleOCR核心能力**2. **PP-Structure核心能力**3. **選型結論**二、錯誤根因分析與修復方案1. …

Android計算機網絡學習總結

TCP vs UDP 核心區別?? ?題目?:TCP為什么稱為可靠傳輸協議?UDP在哪些場景下比TCP更具優勢? ?得分要點?: ?可靠性機制? 三握四揮建立可靠連接確認應答(ACK) 超時重傳滑動窗口流量控制擁塞控制&…

深入解析Java組合模式:構建靈活樹形結構的藝術

引言:當對象需要樹形組織時 在日常開發中,我們經常需要處理具有層次結構的對象集合。比如: 文件系統中的文件夾與文件GUI界面中的容器與控件企業組織架構中的部門與員工 這類場景中的對象呈現明顯的整體-部分層次結構,如何優雅…

mobaxterm通過ssh登錄docker無圖形界面

1. 流程 下面是使用Mobaxterm通過SSH登錄Docker無圖形界面的步驟: 步驟 操作 1 在本地安裝Mobaxterm 2 配置Mobaxterm連接SSH 3 啟動Docker容器 4 在Mobaxterm中通過SSH連接到Docker容器 2. 操作步驟 步驟1:安裝Mobaxterm 首先&#xff…

【趙渝強老師】HBase的體系架構

HBase是大表(BigTable)思想的一個具體實現。它是一個列式存儲的NoSQL數據庫,適合執行數據的分析和處理。簡單來說,就是適合執行查詢操作。從體系架構的角度看,HBase是一種主從架構,包含:HBase H…

linux 新增驅動宏config.in配置

?1. 添加配置宏步驟? ?1.1 修改 Kconfig(推薦方式)? ?定位 Kconfig 文件? 內核各子目錄(如 drivers/char/)通常包含 Kconfig 文件,用于定義模塊配置選項7。?添加宏定義? 示例:在 drivers/char/Kc…

關于git的使用

下載git 可以去git的官網下載https://git-scm.com/downloads 也可以去找第三方的資源下載,下載后是一個exe應用程序,直接點開一直下一步就可以安裝了 右鍵任意位置顯示這兩個就代表成功,第一個是git官方的圖形化界面,第二個是用…

WPF【11_8】WPF實戰-重構與美化(UI 與視圖模型的聯動,實現INotifyPropertyChanged)

11-13 【重構】INotifyPropertyChanged 與 ObservableCollection 現在我們來完成新建客戶的功能。 當用戶點擊“客戶添加”按鈕以后系統會清空當前所選定的客戶,客戶的詳細信息以及客戶的預約記錄會從 UI 中被清除。然后我們就可以在輸入框中輸入新的客戶信息了&am…

ArkUI:鴻蒙應用響應式與組件化開發指南(一)

文章目錄 引言1.ArkUI核心能力概覽1.1狀態驅動視圖1.2組件化:構建可復用UI 2.狀態管理:從單一組件到全局共享2.1 狀態裝飾器2.2 狀態傳遞模式對比 引言 鴻蒙生態正催生應用開發的新范式。作為面向全場景的分布式操作系統,鴻蒙的北向應用開發…

List優雅分組

一、前言 最近小永哥發現,在開發過程中,經常會遇到需要對list進行分組,就是假如有一個RecordTest對象集合,RecordTest對象都有一個type的屬性,需要將這個集合按type屬性進行分組,轉換為一個以type為key&…

AI與.NET技術實操系列(八):使用Catalyst進行自然語言處理

引言 自然語言處理(Natural Language Processing, NLP)是人工智能領域中最具活力和潛力的分支之一。從智能客服到機器翻譯,再到語音識別,NLP技術正以其強大的功能改變著我們的生活方式和工作模式。 Catalyst的推出極大降低了NLP…

MySQL 8.0 OCP 1Z0-908 題目解析(13)

題目49 Choose the best answer. t is a non - empty InnoDB table. Examine these statements, which are executed in one session: BEGIN; SELECT * FROM t FOR UPDATE;Which is true? ○ A) mysqlcheck --analyze --all - databases will execute normally on all ta…

Docker 一鍵部署倒計時頁面:Easy Countdown全設備通用

Easy Countdown 介紹 Easy countdown是一個易于設置的倒計時頁面。可以設置為倒計時或計時器。可用于個人生活、工作管理、教育、活動策劃等多個領域。 🚢 項目地址 Github:https://github.com/Yooooomi/easy-countdown 🚀Easy Countdown …

Python訓練打卡Day35

模型可視化與推理 知識點回顧: 三種不同的模型可視化方法:推薦torchinfo打印summary權重分布可視化進度條功能:手動和自動寫法,讓打印結果更加美觀推理的寫法:評估模式 模型結構可視化 理解一個深度學習網絡最重要的2點…

四、生活常識

一、效應定律 效應 1、沉沒成本效應 投入的越多,退出的難度就越大,因為不甘心自己之前的所有付出都付之東流。 2、破窗效應 干凈的環境下,沒有人會第一個丟垃圾,但是當環境變得糟糕,人們就開始無所妒忌的丟垃圾。…