【深度之眼機器學習筆記】04-01-決策樹簡介、熵,04-02-條件熵及計算舉例,04-03-信息增益、ID3算法

1. 決策樹與熵

1.1 決策樹簡介

  • 下面有一個貸申請樣本表,有許多特征
    在這里插入圖片描述
  • 我們根據特征數據生成一棵樹,比如年齡有青年,中年,老年三個類別,那么就有三個分支,分別對應著三種類別。如果是青年那么就看工作,如果有工作就給他貸款,如果沒工作就不給他貸款。以上面這個例子來理解這棵樹
    在這里插入圖片描述
  • 再舉一個例子:我們有一個樣本:老年,有工作,沒房子,信貸情況好,那么我們就可以走這樣的一條路
    在這里插入圖片描述
  • 為什么先給年齡而不是先給工作呢?換句話說是怎么選擇特征構建樹的呢?
    • 這不是我們人為決定的,而是要進行計算

1.2 熵

  • 熵表示不確定性,定義如下:其中 nnn 為特征數,pip_ipi? 表示一個概率
    在這里插入圖片描述
  • 假設 n=2n=2n=2,則有:圖中越靠近 p=0.5p=0.5p=0.5(即越不確定),熵就越大。這表明熵越大,隨機變量的不確定性就越大
    在這里插入圖片描述

1.3 熵的計算舉例

  • 例:我們需要計算我們數據集的熵,計算數據集的熵要算的是目標變量(或叫做類別標簽),在這里我們是計算是否給這個人貸款,即最后一列
    在這里插入圖片描述
  • 我們把 DDD 稱作我們的一個數據集,∣D∣|D|D 表示數據集的條數,在這個例子為 ∣D∣=15|D|=15D=15
  • kkk 表示目標變量的種類數,在這個例子為 k=2k=2k=2
  • CkC_kCk? 表示當前的這個類別條數有多個條,比如否有 6 條,那么 C1=6C_1=6C1?=6
  • 最后用下面的這個公式算出來即可
    在這里插入圖片描述

2. 條件熵

2.1 條件熵介紹

  • 還是上節課的這個貸款數據集
    在這里插入圖片描述
  • 條件熵的公式為含義為:在給定 X 為多少的條件下,計算 Y 的熵是多少
  • 由于 X 有很多個取值,我們對它展開。比如之類年齡有青年,中年,老年
  • 這里 pip_ipi? 是變量 X 取值為 xix_ixi? 的概率
    在這里插入圖片描述
  • 那么回到數據集的條件熵的計算公式來說,下面公式的含義如下:
    • 這里的 AAA 為條件變量,比如年齡
    • DDD 為數據集,∣D∣|D|D 為數據集條數,∣Di∣|D_i|Di? 為條件變量當前取值的條數
    • nnn 為條件的種類數
    • KKK 依舊為目標變量的種類數
    • ∣Dik∣|D_{ik}|Dik? 為兩個變量同時滿足的條數
      在這里插入圖片描述

2.2 條件熵的計算例子

  • 我們以年齡為條件變量來嘗試計算以它為條件的條件熵
  • 以年齡為青年時為例子,我們 i=1i=1i=1 為青年,這里的 ∣D∣∣D1∣=515{|D| \over |D_1|}={5 \over {15}}D1?D?=155?,總共有 555 個青年,然后右部的連加就是在以青年為條件下的目標變量的信息熵,所以有式子的右半部分的展開
  • 對年齡的三個類別都做一次這樣的操作后求連加即為以青年為條件的條件熵
    在這里插入圖片描述

3. 信息增益與 ID3 算法

3.1 信息增益

  • 信息增益(也叫互信息)的定義如下:我們用符號 g(D,A)g(D,A)g(D,A) 來表示,即用數據集的信息熵減去以某個特征為條件的條件熵
    在這里插入圖片描述
  • 根據信息增益準則的特征選擇方法:
    1. 對訓練數據集(或子集)D,計算其每個特征的信息增益
    2. 比較它們的大小,選擇信息增益最大的特征
  • 信息增益算法:
    1. 計算數據集 D 的信息熵 H(D):
      在這里插入圖片描述

    2. 計算特征 A 對數據集 D 的經驗條件熵 H(D|A)
      在這里插入圖片描述

    3. 計算信息增益
      在這里插入圖片描述

  • 例子:
    在這里插入圖片描述
    在這里插入圖片描述

3.2 ID3 算法構建決策樹

  • ID3 算法:在決策樹遞歸構建過程中,使用信息增益的方法進行特征選擇

  • 決策樹生成過程:

    1. 從根節點開始計算所有特征的信息增益,選擇信息增益最大的特征作為結點特征
    2. 再對子節點遞歸調用以上方法,構建決策樹
    3. 所有特征信息增益很小或沒有特征可以選擇時遞歸結束得到一顆決策樹
  • 比如說我們開始選擇了 A3A_3A3? 作為我們的根節點(根據上面的計算得到),此時我們會往下分叉出是或者否,然后我們又根據是或者否的子集來遞歸計算信息增益,比如是對應一個子集,否又對應一個子集
    在這里插入圖片描述

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

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

相關文章

八股文場景題

如何預估接口上線后的 QPS 問題引入 這個問題其實是一個非常實際的問題,因為我們在開發需求后,例如:新增了一個接口 有一個步驟是值得做的,那就是預估這個接口的QPS 因為我們是可以去調配對應服務器的數量和運行配置的 例如我…

【Web安全】深入淺出理解“SQL注入-偽靜態注入”及空格限制繞過技巧

文章目錄什么是偽靜態注入?偽靜態注入中如何繞過空格限制?1. 用注釋符替代空格2. 用不可見字符(URL 編碼)替代3. 用括號分隔語句4. 用特殊符號替代核心邏輯往期文章【Web安全】一次性搞懂 ReDOS 漏洞原理/檢測/防御 【Web安全】一…

【讀論文】Step-Audio 2 深度解讀:邁向工業級語音交互的「全能型選手」

引言:step-Audio升級 語音交互技術,作為人機交互最自然、最直接的方式之一,正以前所未有的速度發展。從簡單的語音指令到流暢的語音對話,我們對 AI 的期望越來越高。然而,要讓 AI 真正成為我們的“知心伙伴”,僅僅能“聽懂”和“說出”還遠遠不夠。 一個理想的語音 AI,…

java web 重定向

目錄結構 demo\day20\src\com\demo\service\Dome1.javademo\day20\src\com\demo\service\Dome2.javademo\day20\src\com\demo\service\Dome3.javademo\day20\src\com\demo\service\Dome4.javademo\day20\web\WEB-INF\lib\javax.servlet.jardemo\day20\web\index.jspdemo\day20\…

MySQL(配置)——MariaDB使用

一、簡介 MariaDB 和 MySQL 作為兩個流行的關系型數據庫管理系統,它們的區別可以從多個角度來探討。盡管 MariaDB 最初是 MySQL 的一個分支,但隨著時間的推移,它們逐漸在功能、性能和開發方向上有所不同。MariaDB 是 MySQL 的一個分支&#x…

Web3:賽道劃分與發展趨勢解析

區塊鏈技術現在已經從單一的加密貨幣支付系統發展為涵蓋金融、藝術、組織治理和社區文化的多元生態系統。這次我們將深入解析 DeFi(去中心化金融)、NFT(非同質化代幣)、DAO(去中心化自治組織)與 MEME&#…

LeetCode 283 - 移動零

思路 使用雙指針法,一次遍歷完成原地修改。 慢指針 slow:指向下一個非零元素應該被放置的位置。快指針 fast:遍歷整個數組,尋找非零元素。 當 fast 遇到非零數時,將其值賦給 slow 指向的位置,然后 slow 前進…

8. 網絡層

在復雜的網絡環境中確定一個合適的路徑.1. IP協議1. 基本概念IP協議:提供一種能力(有非常大的概率,做到某事),把數據報從主機A,跨網絡,送到主機B --> 必須要有方式,標識通信兩端唯一性!&…

【通識】線性代數(Linear Algebra)

線性代數被廣泛應用于抽象代數和泛函分析中;通過解析幾何,線性代數能被具體表示,線性代數被泛化為算子理論。而非線性模型被近似為線性模型,應用場景多為自然科學和社會科學。 費馬和笛卡爾的工作,線性代數出現于十七世…

Qt 嵌入式界面優化技術

在嵌入式系統中,界面性能直接影響用戶體驗和系統穩定性。由于嵌入式設備通常資源受限(如低性能 CPU、有限內存、小尺寸屏幕),需針對性優化 Qt 界面以實現流暢顯示和高效交互。本文從渲染引擎、資源管理、布局優化到硬件加速&#…

去除視頻字幕 4 : 下一步,打算研究 Video Inpainting (視頻修復):

就是說,到現在,才算是真正開始,才發現真正的問題。 嘗試去除視頻上的字幕,使用 IOPaint, 效果很初級。。。問題描述 請幫我分析此時的效果。 此時的右側字幕區域,閃爍不停!我原本以為效果會很好。實際非常…

代碼隨想錄算法訓練營第五十五天|圖論part5

并查集理論基礎 初始化: void init() {for (int i 0; i < n; i) {father[i] i;} } 尋根&#xff1a; // 并查集里尋根的過程 int find(int u) {return u father[u] ? u : father[u] find(father[u]); // 路徑壓縮 } 判斷u跟v是否同根 // 判斷 u 和 v是否找到同一個根 b…

安卓模擬器 adb Frida hook 抓包

基本步驟 adb connect 127.0.0.1:62001adb forward tcp:27042 tcp:27042 adb forward tcp:27043 tcp:27043adb shell./data/local/tmp/frida-server再開啟cd D:\linuxdir\python\fridapython main.py下載夜神模擬 https://www.yeshen.com/ 安裝adb 點擊下載adb&#xff08…

編程與數學 03-002 計算機網絡 14_網絡性能分析

編程與數學 03-002 計算機網絡 14_網絡性能分析一、網絡性能指標&#xff08;一&#xff09;帶寬、時延、吞吐量等指標的定義與測量方法&#xff08;二&#xff09;性能指標對網絡應用的影響二、網絡性能的測試方法&#xff08;一&#xff09;使用網絡測試工具&#xff08;如Wi…

AT9880B參數特征

AT9880B 是一款高性能北斗單模衛星導航接收機 SOC 單芯片&#xff0c;芯片集成射頻前端和數字基帶、北斗多頻衛星信號處理引擎、電源管理功能。 芯片支持接收中國北斗二號和北斗三號&#xff0c;支持接收 B1I、B1C、B2I、B3I、B2a 和 B2b 等頻點信號。主要特征 支持北斗二號/三…

eBPF 賦能云原生: WizTelemetry 無侵入網絡可觀測實踐

引言 隨著 KubeSphere 企業版 4.2.0 的正式發布&#xff0c;WizTelemetry 可觀測平臺 2.0 也同步亮相。作為本次升級中的重磅模塊之一&#xff0c;它迅速引發了開發與運維團隊的廣泛關注。 本系列文章將系統解讀 WizTelemetry 的核心能力與落地實踐。繼前兩篇介紹了平臺架構與指…

【JAVA安全-Fastjson系列】Fastjson 1.2.24 反序列化漏洞分析及測試環境構建【復習回顧】

Fastjson 1.2.24 反序列化漏洞分析及測試環境構建 漏洞背景 Fastjson 是阿里巴巴開源的一個高性能 Java JSON 庫&#xff0c;廣泛用于 Java 對象的序列化和反序列化。在 1.2.24 及之前的版本中&#xff0c;存在一個嚴重的安全漏洞&#xff0c;攻擊者可以通過構造惡意的 JSON 字…

關于神經網絡CNN的搭建過程以及圖像卷積的實現過程學習

通過如下博客內容學習了CNN搭建的步驟&#xff0c;按照博主的思路完成了cnn網絡的構建并完成50個epoch的訓練并畫出損失函數的曲線圖時有滿滿的成就感 PyTorch深度學習實戰&#xff08;3&#xff09;——使用PyTorch構建神經網絡_pytorch 神經網絡-CSDN博客 通過如下博客內容…

nodejs 實現Excel數據導入數據庫,以及數據庫數據導出excel接口(核心使用了multer和node-xlsx庫)

項目地址&#xff1a;https://gitee.com/LiangDouJun/nodejsExcel 一、實現效果 1、數據庫數據導出 2、excel導入 二、代碼實現 // 根據環境加載對應的配置文件 const env process.env.NODE_ENV || development; require(dotenv).config({ path: .env.${env} });const expr…

VUE2 學習筆記8 v-text/html/cloak/once/pre/自定義

除了之前已經介紹過的v-on v-bind v-for v-if v-show&#xff0c;vue還有很多其他的指令。v-textv-text是Vue內置指令。內置指令&#xff0c;是Vue內部定義好的&#xff0c;開發的時候直接拿來用就行了。v-text用于向其所在的標簽添加文本。<body><div id"root&q…