機器學習--決策樹2

目錄

第一代裁判:ID3 與信息增益的 “偏愛”

第二代裁判:C4.5 用 “增益率” 找平衡

第三代裁判:CART 的 “基尼指數” 新思路

遇到連續值?先 “砍幾刀” 再說

給決策樹 “減肥”:剪枝的學問

動手試試:決策樹的 “調參” 小技巧

最后想說


決策樹的 “成長記”:從分錯到分巧的進化

? ? 上次琢磨決策樹時,總覺得 “選哪個特征當節點” 像猜謎 —— 直到今天才算摸到了門道。原來決策樹也在 “進化”,從最初的 ID3 到后來的 C4.5、CART,每一步都在解決上一代的小麻煩。這就像給分類問題找裁判,一代比一代更懂 “公平” 和 “高效”。

第一代裁判:ID3 與信息增益的 “偏愛”

? ? 最早的決策樹算法 ID3,選節點靠的是 “信息增益”—— 哪個特征能讓數據的 “混亂度”(熵)降得最多,就選哪個。這思路挺直接,比如用 “天氣” 劃分打球數據時,信息增益最大,那就讓 “天氣” 當根節點。

? ? 但 ID3 有個小毛病:特別喜歡 “選項多” 的特征。比如給數據加個 “編號” 特征(1 到 7 號),每個編號對應唯一結果,用它劃分時信息增益肯定最大 —— 但這顯然沒意義,因為它根本沒抓住規律,純屬 “抬杠式劃分”。就像裁判偏愛話多的選手,哪怕說的都是廢話。

第二代裁判:C4.5 用 “增益率” 找平衡

? ? 為了治 ID3 的 “偏愛”,C4.5 算法站了出來。它不直接用信息增益,而是用 “信息增益率”—— 信息增益除以這個特征自身的熵。

? ? 這么一來,“選項多” 的特征(比如編號)自身熵很高,就算信息增益大,增益率也可能變低,從而被 “勸退”。比如用 “天氣” 和 “編號” 比,天氣的自身熵低,信息增益率反而更突出,這就避免了 “抬杠式劃分”。相當于裁判學會了 “聽質量” 而非 “聽數量”,更公平了。

第三代裁判:CART 的 “基尼指數” 新思路

? ? 后來又出現了 CART 算法,它換了個衡量標準 ——“基尼指數”。這東西說的是:從數據里隨機抽兩個樣本,類別不一樣的概率。概率越低,說明數據越純(比如全是 “去打球” 或全是 “不去”)。

? ? 和熵相比,基尼指數計算更簡單(不用算對數),但效果類似:純度越高,基尼指數越小。CART 用它來選節點,相當于裁判換了把更輕便的 “尺子”,效率更高了。

遇到連續值?先 “砍幾刀” 再說

? ? 現實中的數據不全是 “晴天 / 陰天” 這種離散值,更多是 “溫度 30 度”“收入 125K” 這種連續數。決策樹怎么處理呢?答案是:把連續值變成 “選擇題”。

? ? 比如 “收入” 這個特征,有 60K、70K、85K… 我們可以用 “貪婪算法” 找分界點:先把所有值排序,然后在每兩個相鄰值中間 “砍一刀”(比如 60 和 70 之間砍成 “≤65” 和 “>65”),算每個分界點的信息增益(或基尼指數),選最好的那個。這其實就是把連續值 “離散化”,讓決策樹能看懂。

給決策樹 “減肥”:剪枝的學問

? ? 決策樹有個壞毛病:學太細容易 “鉆牛角尖”。比如把訓練數據里的每個小例外都當成規律,結果換個新數據就錯得離譜(過擬合)。這時候就得 “剪枝”—— 給樹瘦瘦身。

預剪枝是 “邊長邊剪”:比如限制樹的最大深度(最多問 5 個問題就得出結論),或者規定葉子節點至少得有 10 個樣本才繼續分。就像家長提前說 “不許挑食”,從一開始就避免壞習慣。

后剪枝是 “長完再剪”:先讓樹長得枝繁葉茂,再回頭看哪些分支是 “多余的”。判斷標準是 “損失函數”:自身的基尼指數(或熵)加上 α 乘以葉子節點數。α 越大,越鼓勵少用葉子(簡化樹);α 越小,越允許復雜但精準的劃分。就像考完試回頭改錯題,把沒必要的步驟刪掉。

? ? 比如有個分支,剪枝前在驗證集上正確率 57%,剪枝后反而升到 71%—— 顯然這分支是 “畫蛇添足”,該剪!

動手試試:決策樹的 “調參” 小技巧

? ? 實際用決策樹時,代碼里有幾個關鍵參數得留意:

  • criterion:選 “gini”(基尼指數)還是 “entropy”(信息熵),看數據特點;

  • max_depth:樹別太深,5-20 層通常夠了,太深容易過擬合;

  • splitter:“best” 是找最優切分點,“random” 是隨機找,后者快但可能稍欠精準。

? ? 比如用決策樹預測泰坦尼克號幸存者時,調對這些參數,就能讓模型更準 —— 畢竟不是越復雜的樹,越能看透 “生存規律”。

最后想說

? ? 決策樹的進化,其實是人類在教機器 “怎么更聰明地分類”。從 ID3 的直接,到 C4.5 的平衡,再到 CART 的高效,每一步都在逼近 “簡單又準確” 的目標。就像我們自己做決策,既要抓住重點,又不能鉆牛角尖 —— 原來機器學習和生活智慧,道理相通。

? ? 下次再用決策樹時,或許會忍不住想:這一步劃分,是 ID3 會喜歡,還是 C4.5 更認可?這種 “與算法對話” 的感覺,還挺奇妙的。

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

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

相關文章

yggjs_react使用教程 v0.1.1

yggjs_react是一個用于快速創建React項目的工具,它集成了Vite、TypeScript、Zustand和React Router等現代前端技術棧,幫助開發者快速搭建高質量的React應用。 快速入門 快速入門部分將指導您如何安裝yggjs_react工具、創建新項目并啟動開發服務器。 安…

vulhub可用的docker源

這一塊不太容易找,我試了好幾個源,下面是20250820測試可用源 編輯方法sudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json 配置內容 [1] {"registry-mirrors" : ["https://docker.registry.cyou", "https://docker-…

基于YOLOv8-SEAttention與LLMs融合的農作物害蟲智能診斷與防控決策系統

1. 引言 1.1 研究背景與意義 農作物蟲害是制約農業產量與質量的重要因素。據FAO報告,全球每年因病蟲害造成的糧食損失高達 20%–40%。傳統人工巡查與經驗診斷具有時效性差、成本高與專業人才不足等缺陷。近年來,計算機視覺特別是目標檢測技術在農業檢測…

從零開始構建GraphRAG紅樓夢知識圖譜問答項目(三)

文章結尾有CSDN官方提供的學長的聯系方式!! 歡迎關注B站從零開始構建一個基于GraphRAG的紅樓夢項目 第三集01 搭建后端服務 創建一個python文件server.py 完整源碼放到文章最后了。 1.1 graphrag 相關導入 # GraphRAG 相關導入 from graphrag.query.cont…

S32K328(Arm Cortex-M7)適配CmBacktrace錯誤追蹤

CmBacktrace 相當于重寫了hard_fault函數,在hard_fault函數里面去分析SCB寄存器的信息和堆棧信息,然后把這些信息打印出來(或者寫到flash);通過使用串口輸出產生hard_fault的堆棧信息,然后利用addr2line工具反推出具體的代碼執行函…

AI研究引擎的簡單技術實現步驟

產品愿景與核心功能 1.1 產品使命 “洞見 Weaver”是一個全棧AI Web應用,旨在將用戶的復雜研究問題,通過AI驅動的動態思維導圖和結構化報告,轉化為一次沉浸式的、可追溯的視覺探索之旅。我們的使命是,將AI復雜的推理過程透明化,將人類的探索直覺與AI的分析能力無縫結合,…

open webui源碼分析5-Tools

本文從最簡單的時間工具入手,分析Tools相關的代碼。一、安裝工具git clone https://github.com/open-webui/openapi-servers cd openapi-servers# 進入時間工具目錄 cd servers/timepip install -r requirements.txt# 啟動服務 uvicorn main:app --host 0.0.0.0 --r…

windows下通過vscode遠程調試linux c/cpp程序配置

windows下通過vscode遠程調試linux c/cpp程序配置vscode插件配置linux依賴工具安裝launch.json配置vscode插件配置 CodeLLDB插件需要提前下載: linux依賴工具安裝 sudo apt update sudo apt install cmake clangdlaunch.json配置 {"version": "0…

IDEA報JDK版本問題

解決思路:1.找到配置jdk的IDEA配置位置settings和project structure2.先配置setting3.再修改項目結構

VirtualBox 安裝 Ubuntu Server 系統及 Ubuntu 初始配置

文章目錄簡介VirtualBoxUbuntu Server 簡介Ubuntu Server 下載安裝 Ubuntu Server首選項配置導入系統鏡像配置系統用戶配置內存 CPU 虛擬硬盤開始安裝 Ubuntu安裝完成登錄系統配置網絡Ubuntu 系統配置安裝常用工具安裝 SSH設置 root 密碼配置 IP 地址(推薦自動分配I…

Milvus 可觀測性最佳實踐

Milvus 介紹 Milvus 是一個開源的向量數據庫,專為處理大規模、高維度向量數據而設計,廣泛應用于人工智能、推薦系統、圖像檢索、自然語言處理等場景。它支持億級向量的高效存儲與快速檢索,內置多種相似度搜索算法(如 HNSW、IVF、…

arcgis-空間矯正工具(將下發數據A的信息放置原始數據B的原始信息并放置到成果數據C中,主要按下發數據A的范圍)

正常來說,可以直接相交獲取,但是會存在原始數據B將下發數據A進行分割,所以相交功能會導致最終成果會產生稀碎圖斑及圖斑切割,因此,經學習了解,學會此方法進行既保留原始數據B的信息,又按下發數據…

MySQL深分頁慢問題及性能優化

在數據驅動的應用中,分頁是不可或缺的功能。然而,當數據量達到百萬甚至千萬級別時,傳統基于 LIMIT OFFSET 的分頁方式會遭遇嚴重的性能瓶頸,即“深分頁”問題。本文將剖析其根源并提供主流的優化策略。問題根源:LIMIT …

漫談《數字圖像處理》之平滑

在數字圖像處理中,平滑(Smoothing) 的核心目標是降低圖像噪聲、模糊細節或簡化紋理,本質是通過 “局部鄰域運算” 對像素值進行 “平均化” 或 “規整化”,讓圖像整體更 “平緩”。形態學平滑與高斯平滑、均值平滑等其…

機器學習之數據預處理學習總結

在機器學習中,數據預處理是模型訓練前至關重要的環節,直接影響模型的性能和準確性。通過本次學習,我系統掌握了數據預處理的核心方法與工具,現將主要內容總結如下:一、缺失值處理缺失值是實際數據中常見的問題&#xf…

在完全沒有無線網絡(Wi-Fi)和移動網絡(蜂窩數據)的環境下,使用安卓平板,通過USB數據線(而不是Wi-Fi)來控制電腦(版本2)

在完全沒有無線網絡(Wi-Fi)和移動網絡(蜂窩數據)的環境下,要實現用安卓手機通過USB數據線控制電腦,核心思路是:利用USB數據線創建一個純粹的、本地的有線網絡連接。 這不僅是可行的,…

Ubuntu22.04配置網絡上網

前言 安裝Ubuntu系統后,有時會遇到無法聯網、無法使用瀏覽器的問題。然而當宿主機已連接網絡時,虛擬機通常也能聯網,需要進行一些配置,現在就以Ubuntu22.04為例。 VMware配置打開虛擬網絡編輯器 啟動VMWare點擊編輯,并…

網絡協議之TCP和UDP

寫在前面 本文來看下TCP和UDP協議。 我們接觸這兩個協議最多的應該就是在面試中了,經典題目就是“TCP和UDP有什么區別?”,而最常得到的答案就是TCP是面向連接的,而UDP是面向無連接的。 那么這里的連接到底是什么呢?難…

Qt音樂播放器項目實踐:本地持久化與邊角問題處理

本音樂播放器完整項目源碼(包含各個按鈕的圖片文件): ly/Project-Code - Gitee.com 一.本地持久化 請注意,學習此部分之前需要讀者具有一定的Mysql基礎。如果讀者能夠接受無法本地持久化,那么可以跳過這部分內容,直接去看邊角問題處理。我…

基于NB-IoT技術的寵物定位跟蹤系統設計#基于STM32\物聯網\單片機技術的寵物定位跟蹤系統

基于NB-IoT技術的寵物定位跟蹤系統設計#基于STM32\物聯網\單片機技術的寵物定位跟蹤系統在設計基于NB-IoT技術的寵物定位跟蹤系統時,首先明確了系統分為感知層、網絡層和應用層三個部分。在感知層,考慮到需要獲取寵物位置和運動狀態,選用GPS定…