決策樹概念與原理

決策樹簡介

決策樹是一種樹形結構

樹中每個內部節點表示一個特征上的判斷,每個分支代表一個判斷結果的輸出,每個葉子節點代表一種分類結果

(僅舉例無其他意義或隱喻)就像一個女孩去相親,那么首先詢問是否大于30,大于則不見,不大于再看外貌條件,不丑則在看收入條件等。這些選擇就是這棵樹的特征

決策樹的建立過程

1.特征選擇:選取有較強分類能力的特征。

2.決策樹生成:根據選擇的特征生成決策樹。

3. 決策樹也易過擬合,采用剪枝的方法緩解過擬合

然后我們引入一個特殊的概念:

信息熵

熵 Entropy :信息論中代表隨機變量不確定度的度量

熵越大,數據的不確定性度越高,信息就越多

熵越小,數據的不確定性越低

信息熵的計算方法

例如

信息增益

公式有點難看明白,所以來看個例子8:

了解完熵之后,就可以看后面的了

ID3決策樹

接下來還要了解一些信息增益率

信息增益率 = 信息增益 /特征熵

求特征ab的信息增益率

CART樹

基尼值GiniD):從數據集D中隨機抽取兩個樣本,其類別標記不一致的概率。故,GiniD值越小,數據集D的純度越高

基尼指數Gini_indexD):選擇使劃分后基尼系數最小的屬性作為最優化分屬性。

例子

CRAT分類樹

已知:是否拖欠貸款數據。

需求:計算各特征的基尼指數,選擇最優分裂點

CART回歸樹

平方損失

根據平方損失構建CART回歸樹

但是實際使用中回歸問題還是用線性回歸來做,決策樹容易過擬合

"""
結論:回歸類的問題。即能使用線性回歸,也能使用決策樹回歸優先使用線性回歸,因為決策樹回歸可能比較容易導致過擬合
"""import  numpy as np
import  pandas as pd
from sklearn.tree import  DecisionTreeRegressor  #回歸決策樹
from sklearn.linear_model import  LinearRegression #線性回歸
import matplotlib.pyplot as plt#1、獲取數據
x = np.array(list(range(1, 11))).reshape(-1, 1)
y = np.array([5.56, 5.70, 5.91, 6.40, 6.80, 7.05, 8.90, 8.70, 9.00, 9.05])#2、創建線性回歸 和 決策樹回歸
es1=LinearRegression()
es2=DecisionTreeRegressor(max_depth=1)
es3=DecisionTreeRegressor(max_depth=10)#3、模型訓練
es1.fit(x,y)
es2.fit(x,y)
es3.fit(x,y)#4、準備測試數據 ,用于測試
# 起始, 結束, 步長.
x_test = np.arange(0.0, 10.0, 0.1).reshape(-1, 1)
print(x_test)#5、模型預測
y_predict1=es1.predict(x_test)
y_predict2=es2.predict(x_test)
y_predict3=es3.predict(x_test)#6、繪圖
plt.figure(figsize=(10,5))#散點圖
plt.scatter(x,y,color='gray',label='data')plt.plot(x_test,y_predict1,color='g',label='liner regression')
plt.plot(x_test,y_predict2,color='b',label='max_depth=1')
plt.plot(x_test,y_predict3,color='r',label='max_depth=10')plt.legend()
plt.xlabel("data")
plt.ylabel("target")plt.show()

決策樹剪枝

決策樹剪枝是一種防止決策樹過擬合一種正則化方法;提高其泛化能力。

把子樹的節點全部刪掉,使用用葉子節點來替換

1.預剪枝:指在決策樹生成過程中,對每個節點在劃分前先進行估計,若當前節點的劃分不能帶來決策樹泛化性能提升,則停止劃分并將當前節點標記為葉節點;

優點:

預剪枝使決策樹的很多分支沒有展開,不單降低了過擬合風險,還顯著減少了決策樹的訓練、測試時間開銷

缺點:

有些分支的當前劃分雖不能提升泛化性能,但后續劃分卻有可能導致性能的顯著提高;

預剪枝決策樹也帶來了欠擬合的風險

2.后剪枝:是先從訓練集生成一棵完整的決策樹,然后自底向上地對非葉節點進行考察,若將該節點對應的子樹替換為葉節點能帶來決策樹泛化性能提升,則將該子樹替換為葉節點。

優點:比預剪枝保留了更多的分支。一般情況下,后剪枝決策樹的欠擬合風險很小,泛化性能往往優于預剪枝

缺點:后剪枝先生成,后剪枝。自底向上地對樹中所有非葉子節點進行逐一考察,訓練時間開銷比未剪枝的決策樹和預剪枝的決策樹都要大得多。

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

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

相關文章

SQL面試題及詳細答案150道(116-135) --- 高級查詢與函數篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 116. 如何使用CASE語句實…

VeRL:強化學習與大模型訓練的高效融合框架

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! 1 概述:VeRL的起源與核心價值 VeRL(Versatile…

2. 計算機系統基礎知識

1 計算機系統概述 計算機系統 (Computer System) 是指用于數據管理的計算機硬件、軟件及網絡組成的系統。 計算機系統可劃分為硬件(子系統)和軟件(子系統)兩部分。硬件由機械、電子元器件、磁介質和光介質等物理實體構成,例如處理器(含運算單元和控制單元)、存儲器、…

國產EtherCAT從站芯片FCE1353與N32G435 MCU功能板測試流程

上期推薦,我們在前期介紹了FCE1353與國民N32G435 MCU開發板的基本情況,本期主要介紹此開發板的測試流程,以便用戶拿到此板做功能驗證、兼容性測試、可靠性測試時更加便捷地提高開發驗證效率。01概述FCE1353_N32G435RBL7_GPIO_V1 開發板主要通…

向日葵亮點16功能解析:被控端“快速解鎖”

向日葵16重磅上線,本次更新新增了諸多實用功能,提升遠控效率,實現應用融合突破設備邊界,同時全面提升遠控性能,操作更順滑、畫質更清晰!無論遠程辦公、設計、IT運維、開發還是游戲娛樂,向日葵16…

深度解析:IService 與 ServiceImpl 的區別

在使用 MyBatis-Plus 開發業務邏輯時,IService 和 ServiceImpl 是經常遇到的兩個核心類。很多初學者會疑惑: 為什么要定義 IService?ServiceImpl 又解決了什么問題?它們之間到底有什么區別與聯系? 本文將結合源碼與應用…

YOLO12 改進、魔改|通道自注意力卷積塊CSA-ConvBlock,通過動態建模特征圖通道間的依賴關系,優化通道權重分配,在強化有效特征、抑制冗余信息

在分割的研究中,傳統卷積神經網絡(CNN)存在兩大關鍵問題:一是池化操作雖能降低計算復雜度,卻會導致特征圖中有效空間信息丟失,尤其太陽暗條這類不規則、精細結構的特征易被削弱;二是傳統 CNN 對…

JuiceFS分布式文件系統

對象存儲雖然具備極高的擴展性和成本優勢,卻缺乏對POSIX語義的支持,導致許多應用無法直接使用。正是在這樣的背景下,JuiceFS 應運而生——它巧妙地融合了對象存儲的彈性與傳統文件系統的易用性,為現代應用提供了一種全新的存儲解決…

nginx配置前端請求轉發到指定的后端ip

nginx conf配置 配置把“前端靜態文件”和“后端接口”統一收在 同一個 server{} 塊 里,通過 兩條 location 做分流,其中 /api 這條 location 用到了一點“小技巧”把路徑裁掉后再轉發。下面按執行順序逐句拆解,告訴你“請求是怎么被轉發到 1…

HTML 各種標簽的使用說明書

HTML 各種標簽的使用說明書 1. HTML 簡介 HTML(HyperText Markup Language,超文本標記語言)是用于創建網頁的標準標記語言。它使用一系列標簽來描述網頁的結構和內容,這些標簽被瀏覽器解釋并渲染成用戶看到的網頁。HTML是構建We…

從關鍵詞到語義理解:小陌引擎如何重構AI搜索優化邏輯?

引言:AI搜索時代的范式轉變在傳統互聯網時代,SEO(搜索引擎優化)是企業數字營銷的核心策略,通過關鍵詞密度、外鏈建設等技術手段提升網頁在搜索引擎結果頁(SERP)中的排名。然而,隨著生…

ADE explorer遇到XVFB服務器的問題

遇到這個報錯,是因為服務器沒有安裝xvfb的原因。yum install Xvfb即可解決問題。

期權的套利怎么理解?

期權套利是利用期權價格之間的不合理偏差,通過構建對沖組合獲取無風險利潤的策略。其核心邏輯基于“無套利定價原則”——若存在價格偏差,市場力量會迅速修正,套利者通過反向操作鎖定利潤。期權的套利怎么理解?一、主要套利類型與…

RabbitMQ 重試機制 和 TTL

目錄 1. 重試機制 1.1 簡介 1.2 配置文件 1.3 消費者確認機制為 auto 時 1.4 消費者確認機制為 manual 時 2. TTL 2.1 設置消息的過期時間 2.2 設置隊列的過期時間 2.3 給過期隊列中消息設置過期時間 1. 重試機制 1.1 簡介 在消息傳遞過程中, 可能會遇到各種問題, …

四、FVP啟動linux

目錄 1 實驗目的及環境 1.1 實驗目的 1.2 實驗環境 1.2.1 拉取代碼 1.2.2搭建交叉編譯環境 2 相關鏡像編譯 2.1 TF-A鏡像編譯 2.2 U-Boot鏡像編譯 2.3 Linux Kernel鏡像編譯 2.4 構建跟文件系統 3 啟動linux內核 3.1 啟動腳本構建 3.2 啟動Linux內核 1 實驗目的及環境 1.1 實驗…

淺聊一下微服務的服務保護

在微服務架構里,服務間調用關系錯綜復雜,一個服務出問題很可能引發連鎖反應,也就是 “雪崩”。今天就帶大家從零開始學習 Sentinel,這款阿里開源的微服務保護工具,幫你解決雪崩難題,做好流量控制、隔離降級…

ECharts Gallery:Apache官方數據可視化模板庫,助你快速制作交互圖表并實現深度定制

你有沒有過這種時候?手里攥著一堆 Excel 數據,想做個直觀的圖表給同事看,用 Excel 自帶的圖表吧,樣式丑不說,稍微復雜點的交互(比如點擊柱子顯示詳情)根本做不了;想自己用代碼寫吧&a…

[數據結構——lesson3.單鏈表]

目錄 引言 學習目標: 1.什么是鏈表 2.鏈表的分類 2.1 單向鏈表和雙向鏈表 (1)單向鏈表 (2)雙向鏈表 2.2 帶頭結點鏈表和不帶頭結點鏈表 (1)帶頭結點鏈表 (2)不帶頭結點鏈表 2.3 循環鏈表和不循環鏈表 (1)循環鏈表 (2)非循環鏈表 3.鏈表的實…

從零深入理解嵌入式OTA升級:Bootloader、IAP與升級流程全解析

引言(Opening)想象一下,你開發的一款智能水杯、一個環境監測設備或者一臺共享充電寶,已經部署到了成千上萬的用戶手中。突然,你發現了一個軟件bug,或者需要增加一個酷炫的新功能。你不可能派人跑到每個設備…

【Ansible】實施 Ansible Playbook知識點

1.清單概念與靜態清單文件是什么?答:Ansible 清單是被管理主機的列表,用于明確Ansible的管理范圍,分為靜態清單和動態清單。靜態清單是通過手動編輯的文本文件來定義被管主機,文件格式可以是INI格式或YAML格式。在INI格…