機器學習(七)決策樹-分類

一 概念

1 決策節點

通過條件判斷而進行分支選擇的節點。

將樣本的屬性值,也就是特征值與決策節點上的值進行比較,從而判斷它的流向。

2 葉子節點

沒有子節點的節點,表示最終的決策結果。

3 決策樹的深度

所有節點的最大層次數

決策樹具有一定的層次結構,根節點的層次數定為0,從下面開始每一層子節點層次數增加。

4 決策樹優缺點

優點:可視化、可解釋能力、對算力要求低;

缺點:容易產生過擬合,所以不要把深度調整太大;

二 基于信息增益決策樹的建立

信息增益決策樹傾向于選擇取值較多的屬性

有些情況下,這類屬性可能不會提供太多有價值的信息,算法只能對描述屬性為離散型屬性的數據集構造決策樹。

1 信息熵

信息熵描述的是不確定性。

信息熵越大,不確定性越大。信息熵的值越小,則樣本集合D的純度越高。

假設樣本集合D共有N類,第K類樣本所占比例為pk,則樣本集合D的信息熵為:

2 信息增益

信息增益是一個統計量,用來描述一個屬性區分數據樣本的能力。

信息增益越大,那么決策樹就會越簡潔。

信息增益的程度用信息上的變化程度來衡量:IG(Y|X)=H(Y)-H(Y|X)≥0

3 信息增益決策樹建立步驟

3.1 計算根節點的信息熵

上表把是否貸款分為2類樣本:“是”占2/3,“否”占1/3;

3.2 計算屬性的信息增益

3.2.1職業 屬性的信息增益

IG(D,"職業“)
在職業中,工人占1/3,工人中,是否貸款各占1/2,所以:

在職業中,白領占2/3, ?白領中,是貸款占3/4, 不貸款占1/4, 所以有

3.2.2?年齡 屬性的信息增益

(以35歲為界)

3.2.3 收入 屬性的信息增益

(以10000為界,大于等于10000為一類)

3.2.4 學歷 屬性的信息增益

(以高中為界, 大于等于高中的為一類)

注意:?

以上年齡使用35為界,收入使用10000為界,學歷使用高中為界。

實計API使用中,會有一個參數"深度", 屬性中具體以多少為界會被根據深度調整。

3.3 劃分屬性

對比屬性信息增益發現,"收入"和"學歷"相等,并且是最高的,所以我們就可以選擇"學歷"或"收入"作為第一個決策樹的節點, 接下來我們繼續重復3.1、3.2的做法繼續尋找合適的屬性節點。

三 基于基尼指數決策樹的建立

基尼指數是指決策樹算法中用于評估數據集純度的一種度量,衡量的是數據集的不純度,也可以說是分類的不確定性。

在構建決策樹時,基尼指數被用來決定如何對數據集進行最優劃分,以減少不純度。

對于一個二分類問題,如果一個節點包含的樣本屬于正類的概率是 (p),則屬于負類的概率是 (1-p)。

這個節點的基尼指數 (Gini(p)) 定義:

對于多分類問題,如果一個節點包含的樣本屬于第 k 類的概率是 p_k,則節點的基尼指數定義為:

3.1 基尼指數的意義

1、當一個節點的所有樣本都屬于同一類別,基尼指數為0,表示純度最高。

2、當一個節點的樣本均勻分布在所有類別時,基尼指數最大,表示純度最低。

3.2 決策樹中的應用

構建決策樹的時候,希望每個內部節點的子節點能更純,也就是基尼指數更小。

那么選擇分割特征和分割點的目標是使子節點的平均基尼指數最小化。具體就是對一個特征,我們計算其所有的可能的分割點對應的子節點的加權平均基尼,選擇最小化這個值的分割點。這個過程會在所有特征中重復,知道找到最佳的分割特征和分割點。

考慮一個數據集D,其中包含N個樣本,特征A將數據集分割為|D1|和|D2|,則特征A的基尼指數為:Gini_A = \frac{|D_1|}{|D|} Gini(D_1) + \frac{|D_2|}{|D|} Gini(D_2),其中|D1|和|D2|分別是子集D1和D2的樣本數量。

通過這樣的方式,決策樹算法逐步構建一棵樹,每層的節點都盡可能減少基尼指數,最終達到對數據集的有效分類。

四 API

class sklearn.tree.DecisionTreeClassifier(....)

參數:

criterion "gini" "entropy” 默認為="gini"?
當criterion取值為"gini"時采用 基尼不純度(Gini impurity)算法構造決策樹,
當criterion取值為"entropy”時采用信息增益( information gain)算法構造決策樹.
max_depth?? ?int, 默認為=None ?樹的最大深度

# 可視化決策樹

function sklearn.tree.export_graphviz(estimator, out_file="iris_tree.dot", feature_names=iris.feature_names)

參數:

estimator決策樹預估器
out_file生成的文檔
feature_names節點特征屬性名


功能:
把生成的文檔打開,復制出內容粘貼到"http://webgraphviz.com/"中,點擊"generate Graph"會生成一個樹型的決策樹圖

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

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

相關文章

IT 服務管理的新格局:從工單系統到一體化 ITSM 平臺

企業 IT 部門的角色轉變在過去,IT 部門更多被視為“技術支持”,主要負責設備維護和故障處理。但隨著數字化轉型加速,IT 已經成為業務連續性和創新的重要推動力。從客戶體驗到數據安全,從業務敏捷到成本控制,IT 服務管理…

創建一個Spring Boot Starter風格的Basic認證SDK

文章目錄前言設計思路SDK實現步驟1. 創建SDK Maven項目(sdk目錄)2. 實現配置類3. 實現認證邏輯4. 實現攔截器5. 實現自動配置6. 創建spring.factories文件使用方集成步驟1. 引入SDK依賴2. 配置Application屬性3. 創建測試接口4. 測試接口訪問SDK擴展功能…

mybatis處理統計sql進度丟失問題

如何處理統計sql進度丟失 SELECT sum(decimal_column) AS sum_value FROM your_table如上sql執行時沒有問題,在數據庫可視工具可以正常顯示,但是在mybatis執行時,卻出現解決辦法 使用轉 decimal 控制精度 SELECT CAST(SUM(decimal_column) A…

全球首款!科聰控制器獲德國 TüV 萊茵功能安全認證

近日,浙江科聰控制技術有限公司(以下簡稱"科聰")的安全移動機器人控制器MSC5000榮獲全球權威認證機構德國萊茵TV集團(TV Rheinland)頒發的功能安全認證證書。這款控制器是全球首款通過SIL3、PLe 認證的移動機…

pureadmin的動態路由和靜態路由

在 PureAdmin(基于 Vue3 的后臺管理框架)中,靜態路由和動態路由是實現路由管理的兩種方式,主要區別在于路由的定義時機、加載方式和靈活性,具體區別如下: 1. 靜態路由 定義方式:路由規則在代碼中…

第3章:CPU實戰

1. Linux操作系統CPU平均負載 以前我們總認為CPU使用率和CPU平均負載是一樣的,負載高了就是CPU使用率提高。但是到底是什么情況呢? 1.1. CPU的平均負載 單位時間內 系統處于 可運行狀態 和不可中斷狀態 的平均進程數,就是平均活躍進程數&a…

【Vue3】06-利用setup編寫vue(1)

其它篇章: 1.【Vue3】01-創建Vue3工程 2.【Vue3】02-Vue3工程目錄分析 3.【Vue3】03-編寫app組件——src 4.【Vue3】04-編寫vue實現一個簡單效果 5.【Vue3】05-Options API和Composition API的區別 6.【Vue3】06-利用setup編寫vue(1) 7.【Vue…

UDS NRC速查

目錄 NRC 一、通用NRC(0x10~0x5F) 二、數據相關NRC(0x70~0x8F) 三、會話與狀態NRC 注意事項 UDS中的NRC(Negative Response Code)即否定響應碼,用于在診斷通信中表示服務端無法成功執行客戶端請求的原因。以下是一些常用的UDS NRC碼及其含義: HEX Name Description 01 …

【AI論文】多模態大型語言模型的視覺表征對齊

摘要:通過視覺指令微調訓練的多模態大型語言模型(MLLMs)在各類任務中均取得了優異表現,然而在以視覺為中心的任務(如物體計數或空間推理)中,其性能仍存在局限。我們將這一差距歸因于當前主流的純…

SKywalking Agent配置+Oracle監控插件安裝指南

SKywalking Agent配置Oracle監控插件安裝指南前言: SkyWalking Elasticsearch8 容器化部署指南 Skywalking版本:V10.2.0 Skywalking Agent版本:V9.4.0 Skywalking Agent下載地址:Downloads | Apache SkyWalking 插件下載地址&…

ES相關問題匯總

問題一:關于【QueryBuilder對象】和【Query String語法】查詢時底層運行方式和結果的差異

5. STM32 時鐘系統分配

文章目錄下述將以stm32f407 為例1. 時鐘系統及頻率分析2. 時鐘配置下述將以stm32f407 為例 1. 時鐘系統及頻率分析 上述STM32F4時鐘系統圖解析入下: STM32F407 系列微控制器(基于 Cortex-M4 內核,帶 FPU)的工作頻率配置如下&…

《從 0 建立測試開發認知:先搞懂 “是什么”,再學 “怎么做”》

🔥個人主頁:草莓熊Lotso 🎬作者簡介:C研發方向學習者 📖個人專欄: 《C知識分享》《Linux 入門到實踐:零基礎也能懂》《數據結構與算法》《測試開發實戰指南》《算法題闖關指南》 ??人生格言&a…

net::ERR_EMPTY_RESPONSE

net::ERR_EMPTY_RESPONSE表現解決表現 Java后端封裝一個接口,透傳前端參數,請求到其他模塊服務 本地開發環境聯調時是沒有問題,測試環境上報錯 1.前端報錯,F12檢查,network上的請求,返回response選項中為空…

在線多功能環境音生成器

https://oltool.cc/toolbox/huanjingyins.html 關于環境音生成器介紹: 1、本工具可以混合各種聲音,比如下雨聲,打雷聲,海浪聲,鳥叫以及蟲鳴聲等,生成新的環境聲。 2、定時器:可以設置倒計時&…

本地電腦映射端口到外網訪問的開啟方法和注意事項,內網服務提供跨網使用簡單操作實現

在計算機網絡中,端口映射是一項重要的技術,它允許外網用戶訪問局域網內的特定設備或服務。當我們在本地電腦搭建部署項目應用后,就可以通過映射端口的方式,簡單快速穩定的提供互聯網訪問服務。以下將詳細介紹如何開啟電腦映射端口…

Java 大視界 -- Java 大數據在智能醫療健康檔案數據分析與個性化健康管理中的應用(410)

Java 大視界 -- Java 大數據在智能醫療健康檔案數據分析與個性化健康管理中的應用(410)引言:正文:一、2023 年 6 月智能醫療健康檔案的核心落地需求(政策 業務雙驅動)1.1 政策倒逼的數據應用痛點&#xff…

微服務架構的基石:Nacos全方位解析與Java實戰指南

引言在云原生與微服務浪潮席卷而來的今天,服務的治理與配置的管理變得前所未有的復雜。一個個單一的應用被拆分為數十甚至上百個微服務,如何讓這些服務輕松地發現彼此?如何在不重啟應用的情況下動態調整所有服務的參數?這些問題直…

IDA pro 生成idapro.hexlic

先安裝IDA pro,安裝好后,把根目錄中的 ida32.dll和ida.dll賦值到python文件腳本同目錄中,如圖。 直接運行py import json import hashlib import os from datetime import datetime, timedelta import platform import winregname input(&…

【ARMv7-M】復位向量與啟動過程

關于ARMv7上電復位后,通過復位向量初始化堆棧位置、PC指針,然后跳轉到匯編入口,開始執行系統初始化等等操作,熟悉了解這個過程,對于嵌入式系統軟件開發來說至關重要。不同的SOC在BootROM與Flash的地址分配上&#xff0…