決策樹和隨機森林算法 簡介

  • 決策樹(Decision Tree) 是一種基礎的分類回歸算法
  • 隨機森林 是由多棵決策樹集成在一起的集成學習算法

決策樹生成過程:

  • 特征選擇
  • 決策樹生成
  • 決策樹剪枝

信息熵

用來衡量一個節點內信息的不確定性的。

  • 信息熵越大, 不確定性越大, 樣本就越多樣, 樣本的純度低
  • 信息熵越小, 不確定性越小, 樣本趨于一致, 樣本的純度高

決策樹在每次劃分的時候, 理想的是每個條件分支都能夠最大化地去劃分這些樣本, 每個檢點的信息熵低, 樣本的一致性高.

剪枝操作

對一棵樹進行簡化, 減少它的復雜度, 提高模型的泛化能力.

判斷某個節點去掉后, 模型的準確度如果沒有降低, 就可以減掉這個節點.

決策樹算法

  • ID3(Iterative Dichotomiser 3,迭代二叉樹3代)
    • 分類
    • 多叉樹
    • 最初代決策樹算法
    • 使用的計算指標是信息增益
    • 簡單易懂
    • 無法剪枝, 容易擬合
    • 無法處理連續值
  • C4.5
    • 分類
    • 多叉樹
    • ID3 基礎上改進后的算法
    • 使用的計算指標是信息增益率
    • 可以處理缺失值, 連續值
    • 可以剪枝, 避免過擬合
  • CART(Classification and Regression Trees,分類與回歸樹)
    • 分類 / 回歸
    • 二叉樹
    • 做分類問題時, 使用的是 Gini 系數 (Gini Coefficient 基尼系數)
    • 做回歸問題時, 使用的是 偏差值
    • 可以處理缺失值, 連續值
    • 可以剪枝, 避免過擬合
    • 既可以處理分類問題, 也可以處理回歸問題

點擊查看 Gini 系數: https://blog.csdn.net/galoiszhou/article/details/135148568

隨機森林

由多棵決策樹組成,隨機指的是每一個決策樹的樣本是隨機從數據集中采樣得到的。

隨機森林屬于集中學習 (Ensemble Learning).

計算成本會更高. 面對復雜樣本的時候, 沒有辦法很好的區分, 模型上限很低.

決策樹算法的優點:

  • 可解釋性強, 直觀好理解
  • 可以從結果向上追溯原因

決策樹算法的缺點:

  • 數據量大, 數據維度多的時候, 會非常的復雜, 訓練時間會很久
  • 對決策樹的深度設置如果不合理, 結果不理想

決策樹和隨機森林算法的適用場景:

  • 決策樹
    • 分類問題
      • 決策樹廣泛應用于分類問題,例如判定郵件是否為垃圾郵件、圖像是否包含某個物體等。
    • 回歸問題
      • 決策樹可以用于回歸問題,例如預測房價、銷售量等連續型變量。
    • 非線性關系
      • 決策樹適用于處理非線性關系的數據,對于線性模型表現不佳的情況,決策樹可能更為合適。
    • 特征之間存在復雜交互
      • 當特征之間存在復雜的交互關系,決策樹可以更好地捕捉這些關系。
    • 可解釋性要求高
      • 決策樹提供了直觀的決策規則,對于需要可解釋性高的場景,例如醫學診斷、法律決策等,決策樹是一個不錯的選擇。
    • 特征類型混合
      • 決策樹可以處理混合類型的特征,包括連續型和離散型特征。
    • 少量樣本數據
      • 決策樹對于少量樣本數據也可以表現得相當魯棒,不容易過擬合。
  • 隨機森林
    • 大規模數據集
      • 隨機森林通常能夠很好地處理大規模數據集,因為它可以并行處理多個決策樹。
    • 高維特征
      • 隨機森林對高維數據具有較好的適應性,可以處理具有大量特征的數據集。
    • 復雜的分類問題
      • 隨機森林適用于處理復雜的分類問題,尤其是當數據具有復雜的特征關系時。
    • 噪聲較大的數據
      • 由于隨機森林可以減少過擬合,因此在數據中存在噪聲或異常值的情況下表現較好。
    • 特征重要性分析
      • 如果需要對特征的重要性進行分析,隨機森林能夠提供每個特征對于模型的貢獻程度。
    • 集成學習
      • 隨機森林是一種集成學習方法,通過結合多個弱學習器,可以顯著提高模型的穩定性和準確性。
    • 處理缺失值
      • 隨機森林能夠有效處理缺失值,不需要對缺失值進行額外的處理。

決策樹和隨機森林算法的案例:

  • 決策樹
    • 貸款申請審核
      • 決策樹可用于銀行貸款申請審核。通過分析申請者的信用、收入、債務等特征,決策樹可以幫助判斷貸款是否應該被批準。
    • 醫學診斷
      • 決策樹可用于醫學領域,例如預測患者是否患有某種疾病。通過分析患者的癥狀、檢測結果等特征,決策樹可以輔助醫生做出診斷。
    • 銷售預測
      • 在銷售領域,決策樹可用于預測產品的銷售量。通過考慮各種因素,如廣告投放、季節性等,可以制定更有效的銷售策略。
    • 人力資源管理
      • 決策樹可用于人力資源管理,例如預測員工是否會離職。通過分析員工的績效、滿意度等特征,可以制定員工留存策略。
    • 客戶流失預測
      • 決策樹可用于預測客戶流失概率。通過分析客戶的行為、使用頻率等特征,企業可以采取措施留住潛在流失客戶。
  • 隨機森林
    • 圖像識別
      • 隨機森林可用于圖像識別任務。通過構建多個決策樹,隨機森林可以有效地處理復雜的圖像特征,用于物體識別或人臉識別等場景。
    • 信用評分模型
      • 隨機森林可用于建立信用評分模型。通過分析申請者的信用歷史、收入、債務等特征,隨機森林可以更準確地評估申請者的信用風險。
    • 森林火災預測
      • 隨機森林可以用于預測森林火災的概率。通過分析氣象數據、植被狀況等特征,可以提前預警潛在的火災風險。
    • 金融欺詐檢測
      • 在金融領域,隨機森林可用于檢測信用卡交易中的欺詐行為。通過分析交易金額、交易地點等特征,可以識別潛在的欺詐行為。
    • 醫學圖像分析
      • 隨機森林在醫學圖像分析中應用廣泛,例如腫瘤檢測。通過分析醫學圖像的特征,可以幫助醫生進行病變檢測和分類。

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

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

相關文章

java 抽象類_什么是final?Java抽象類又是什么?抽象類能使用 final 修飾嗎?

第十三題講解人:張小龍 8.23郵箱:2304940425qq.com一.什么是final?final是java中的一個關鍵字,可以用來修飾變量、方法和類。用關鍵詞final修飾的域成為最終域。用關鍵詞final修飾的變量一旦賦值,就不能改變&…

mysql范式與反范式_MySQL 三種范式以及反范式 | 劍花煙雨江南

第一范式確保數據表中每列(字段)的原子性,即每個字段都是最小單位,不可拆分。如:用戶表(user)中的 user_name,password,nick_name。第二范式在第一范式的基礎上,保證表中的每列都與主鍵相關。如果一個關系滿…

查找微信公眾號服務器地址,手把手教大家搭建微信公眾號查題功能

最近比較主流的公眾號輸入查題功能比較火爆,現在手把手教大家搭建自己的公眾號查題。如下圖:準備:備案域名、服務器、公眾號域名備案、服務器申請、公眾號申請在這里就不單獨介紹了。1、配置PHP文件把兩個php代碼上傳服務器。更改api.php接口…

python更新excel內容_使用python將Excel表中的數據更新到數據庫中

代碼如下: # -*- coding: utf-8 -*- import pymysql import xlrd # 連接數據庫 try: db pymysql.connect(host"127.0.0.1", user"root", passwd"root", db" test", charsetutf8) except: print("could not connect t…

mysql 中文字符排序規則_mysql中字符集和排序規則說明

數據庫需要適應各種語言和字符就需要支持不同的字符集(Character Set),每種字符集也有各自的排序規則(Collation)。一.字符集字符集,即用于定義字符在數據庫中的編碼的集合。 常見的字符集:utf-8 gbk 等。二.排序規則數據庫中的排序規則用來定…

sql server服務器位置,SQL語句實現查詢SQL Server服務器名稱和IP地址

獲取服務器名稱:SELECT SERVERPROPERTY(MachineName)select SERVERNAMEselect HOST_NAME()獲取IP地址可以使用xp_cmdshell執行ipconfig命令:--開啟xp_cmdshellexec sp_configureshow advanced options, 1reconfigure with overrideexec sp_configurexp_c…

如何卸載MySQL8.0.11_win10安裝mysql8.0.11卸載5.7

卸載5.7的安裝方式是免安裝版本的,需要卸載。1、停止服務以管理員身份啟動cmd命令窗口net stop mysql或是任務管理器找到mysql服務停止。2、刪除sc delete mysql3、windowsR 開始運行里面輸入regedit,打開注冊表,有MySQL文件夾的對MySQL文件刪除HKEY_LOCAL_MACHINE/…

django項目如何連接前端_工作筆記前端小白如何搭建前端項目

“前言,來到杭州差不多有兩年左右了,大小小做過不少項目。之前都是有技術大佬在前面抗住、作為菜雞的本人只要在大佬后面聽大佬指揮摸魚劃水就行。最近公司接到一個新項目,由于大佬們紛紛出走,于是搭建前端框架的任務就落到本人的…

mysql編碼轉換工具_mysql編碼轉換搞定

按照下面做法,終于成功了!慶祝,紀念......背景:某個系統的mysql數據庫dnname采用默認的latin1字符集,系統升級需要將所有數據轉換成utf-8格式,目標數據庫為newdbname(建庫時使用utf8)方法一:步驟…

python基礎面試都問什么問題_基本 Python 面試問題

def Stack(object): def __init__(self): self.stack [] def push(self,value): # 進棧 self.stack.append(value) def pop(self): # 出棧 if self.stack: self.stack.pop() else: raise LookupError(stack is empty!) def is_empty(self): # 查看stack是否為空 reture bool(s…

按鈕點擊計數器存入mysql_按鈕點擊數統計計數器(PHP+MYSQL+JS)

公共頁面con.php <?php mysql_connect("localhost:3306","user","password") or die("數據庫連接失敗");mysql_select_db("click") or die("數據表連接失敗");mysql_query("set names gbk");?>…

es6去除重復項_Excel的去除重復項你真的明白原理嗎?淺嘗去除重復項的函數奧秘...

Excel函數學習&#xff1a;悟空百問の009&#xff1a;去除重復項的深入思考我們經常整理一些數據&#xff0c;數據不可以動原數據&#xff0c;又需要進行數據分析處理&#xff0c;整理&#xff0c;數據匯總&#xff0c;如何快速的找到這些重復的值&#xff0c;這成了我們很頭疼…

unit類型是什么?_面試官虛晃一槍:項目中有用過鎖嗎?能解釋一下什么是AQS?...

1 前言鎖是用來控制多個線程訪問共享資源的方式&#xff0c;一般來說&#xff0c;一個鎖能防止多個線程同時訪問共享資源(但是有些鎖可以允許多個線程并發的訪問共享資源&#xff0c;如讀寫鎖)。在以前&#xff0c;Java程序是靠synchronized來實現鎖功能的&#xff0c;而在Java…

瀏覽器里面看到的表單數據映射到python_python爬蟲入門01:教你在 Chrome 瀏覽器輕松抓包...

通過python爬蟲入門&#xff1a;什么是爬蟲&#xff0c;怎么玩爬蟲&#xff1f;我們知道了什么是爬蟲也知道了爬蟲的具體流程那么在我們要對某個網站進行爬取的時候要對其數據進行分析就要知道應該怎么請求就要知道獲取的數據是什么樣的所以我們要學會怎么抓咪咪&#xff01;哦…

sql查詢mysql參數配置_查詢參數配置

示例請求示例http(s)://rds.aliyuncs.com/?ActionDescribeParameters&DBInstanceIdrm-uf6wjk5xxxxxxx&正常返回示例XML 格式此選項設置服務器范圍內的默認填充因子值。提供填充因子是為了優化索引數據存儲和性能。fill factor50mssql2008r2此選項設置服務器范圍內的默…

python3類的繼承詳解_基于python3 類的屬性、方法、封裝、繼承詳解

下面小編就為大家帶來一篇基于python3 類的屬性、方法、封裝、繼承實例講解。小編覺得挺不錯的&#xff0c;現在就分享給大家&#xff0c;也給大家做個參考。一起跟隨小編過來看看吧Python 類Python中的類提供了面向對象編程的所有基本功能&#xff1a;類的繼承機制允許多個基類…

linux本地mysql與服務器同步數據_linux下指定mysql數據庫服務器主從同步的配置實例...

一、 概念&#xff1a;① 數據庫同步 (主從同步 --- 主數據庫寫的同時 往從服務器寫數據)② 數據庫同步 (主主同步 --- 兩臺數據庫服務器互相寫數據)二、 舉例數據庫服務器(A) 主數據庫 IP&#xff1a;192.168.1.134數據庫服務器(B) 主數據庫 IP&#xff1a;192.168.1.13…

c#二叉樹 取葉子節點個數_兩種類似但是原理不同的算法求二叉樹的所有葉子節點和...

技術提高是一個循序漸進的過程&#xff0c;所以我講的leetcode算法題從最簡單的level開始寫的&#xff0c;然后到中級難度&#xff0c;最后到hard難度全部完。目前我選擇C語言&#xff0c;Python和Java作為實現語言&#xff0c;因為這三種語言還是比較典型的。由于篇幅和精力有…

所有的service報紅但不報錯_從一個應用報錯來看centos系統的/tmp目錄自動清理規則...

概述分享最近應用碰到的一個奇怪bug&#xff0c;一開始以為是代碼上的問題&#xff0c;找了一段時間發現居然是因為系統的一個自動清理規則導致&#xff0c;下面一起來看看吧~一、應用報錯&#xff1a;logwire.core.exceptions.GeneralUnhandledException: 服務端未處理異常...…

python對瀏覽器的常用操作_Selenium元素的常用操作方法分析

本文實例講述了Selenium元素的常用操作方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11)&#xff0c;Mozill…