機器學習算法(9)——集成技術(Bagging——隨機森林分類器和回歸)

一、說明

????????在這篇文章,我將向您解釋集成技術和著名的集成技術之一,它屬于裝袋技術,稱為隨機森林分類器和回歸

????????集成技術是機器學習技術,它結合多個基本模塊和模型來創建最佳預測模型。為了更好地理解這個定義,我們需要退一步考慮機器學習和模型構建的最終目標。一旦我們對此有了清晰的認識,我們就可以深入研究具體的例子以及首選集成模型的原因。在上一篇文章中,我們學習了決策樹。

機器學習算法(8)——決策樹算法

在本文中,我將重點討論決策樹的用途。決策樹是最強大的之一......

向開發網

????????本文討論使用決策樹來確定個人是否應該在某些天氣條件下在戶外打高爾夫球。這棵樹會考慮各種天氣因素,并根據每個因素做出決定或提出另一個問題。例如,如果是陰天,則決定在外面玩,但如果是晴天、雨天或有風,樹會在決定是否玩之前詢問進一步的問題。

????????要創建決策樹,我們必須考慮將使用哪些特征來做出決策,以及將使用什么閾值將每個問題分類為是或否答案。我們可以繼續添加問題,直到定義是和否類。但如果我們想問自己是否有朋友可以一起玩,會發生什么呢?如果我們有朋友的話,我們每次都會玩。如果沒有,我們可能會繼續問自己有關天氣的問題。通過添加一個附加問題,我們希望更好地定義“是”和“否”類。但我們怎樣才能做到這一點呢?

????????這里需要用到集成技術。使用集成方法使我們能夠考慮決策樹樣本,確定每次分割時使用哪些特征,并根據樣本決策樹的聚合結果做出最終預測器。這種方法比僅依靠一棵決策樹來做出最終決策更可靠。在 Esemble 技術中,有 2 種技術。

  • 套袋技術
  • 升壓技術

二、裝袋技術如何發揮作用?

????????Bagging 也稱為引導聚合,通過使用多個模型訓練數據集來獲得更準確的輸出。這個主題特別重要,因為許多公司現在在數據分析中使用這些技術。

????????假設我們有一個特定的問題陳述,并且有一個名為 D 的數據集。在這個特定的數據集中,我們將創建幾個基本模型(M1、M2、M3 …… Mn)并使用它們來創建基于多個的學習器。對于每個模型,我們將向M1 模型提供小于數據集中記錄數(n)的數據集樣本(D')。我們將使用行采樣和每個模型的替換來提供數據。對于下一個模型,我們將重復相同的過程,我們將重新采樣記錄并將其提供給模型。每個模型都會有一組不同的數據。在向模型提供數據后,他們將接受數據訓練。將對組中的所有模型重復此過程。

完成訓練后,我們將使用測試數據集中的新數據進行預測。對于二元分類,我們將“測試 D”數據發送到模型 1。如果模型1輸出1,模型2輸出0,模型3輸出1,模型Mn輸出1,我們將使用投票分類器來組合測試數據的模型的輸出(為1)。獲得多數票的輸出將被考慮。通過使用帶替換的行采樣和投票分類器,我們將組合模型的輸出以獲得最終結果。這就是套袋技術的工作原理。

注意:對于回歸問題,我們可以將輸出均值作為最終結果。

在裝袋技術中,我們使用兩種算法,

  • 隨機森林分類器
  • 隨機森林回歸

三、隨機森林分類器和隨機森林回歸

????????自舉隨機森林算法將集成學習方法與決策樹框架相結合,從數據中創建多個隨機抽取的決策樹,對結果進行平均以輸出新結果,這通常會導致強大的預測/分類。

????????讓我向您展示一些示例,以幫助您了解隨機如何處理數據集。在bagging中,我們使用多個基學習器模型,例如決策樹1、決策樹2、決策樹3……決策樹Mn(這里我們將用4個模型來解釋)。在隨機森林中,我們使用決策樹來設計這些模型。我們從給定的數據集中采樣一些行和列。我們使用帶替換的行采樣,這意味著我們從數據集中取出一些行(?m )并選擇一些列(?d)作為特征樣本。這就是我們如何使用 bagging 為決策樹選擇行子集。決策樹中的記錄數始終小于數據集中的記錄數。

Number of Records                         : m*d
Number of Rows                            : d
Number of features(columns)               : m
Number of rows selected for row sampling  : d'
Number of features for feature sampling   : nd' < d
n < m

????????這里我們有少量記錄,因此我們指定其中一些用于訓練。然后,我們對這些記錄進行采樣,并將它們提供給第一個決策樹對第二個決策樹重復相同的過程,但使用替換采樣。當我們進行替換采樣時,并非所有記錄都會重復 - 相反,會獲取一個新樣本并將其提供給第二個決策樹。在此過程中,某些記錄和特征可能會重復,但許多記錄會發生變化。對于每個決策樹重復此行和特征采樣過程,每次使用不同的特征集。

????????行采樣(RS)+特征采樣(FS)

????????在給定數據上訓練決策樹后,它可以準確預測新測試數據的結果。在二元分類問題中,如果決策樹給出正(1)輸出,我們可以假設它是正(1)。為了做出最終預測,我們使用模型中的多數票。例如,如果模型 1、模型 2 和模型 4 假設輸出為 1,則我們假設它為正。

當我們使用多個決策樹時,我們需要考慮兩個屬性。

  • 低偏差
  • 高方差

????????如果我們創建一個完整深度的決策樹,它將具有低偏差和高方差,并且它將根據我們的訓練數據集進行適當的訓練。所以訓練誤差會非常低。

????????當決策樹由于新的測試數據而產生大量錯誤時,就會出現高方差。當決策樹創建到其完整深度時,就會發生這種情況,稱為過度擬合。在隨機森林中,使用多個決策樹,每個決策樹都具有高方差。然而,當使用多數投票組合這些決策樹時,高方差將轉換為低方差。這是通過在數據集中使用行和特征采樣來實現的。通過組合多個決策樹的輸出,可以降低高方差。

????????如果我們有 1000 條記錄并更改 200 條記錄,這將如何影響輸出?

????????對輸出的影響

????????我們目前正在對 200 條記錄的每次決策樹更改進行行和特征采樣。這可確保 200 條記錄在決策樹之間正確劃分。一些記錄將進入決策樹 2 或 1,但此更改不會顯著影響決策樹的準確性或輸出。這是由于隨機森林的高方差特性,它適用于大多數機器學習用例。如果這是一個回歸問題,決策樹將給出一個連續值,我們可以取所有輸出的平均值或特定輸出的中位數。

????????在隨機森林中,特定輸出的中值取決于輸出的分布和決策樹的結構。通常,隨機森林的工作原理是查找所有決策樹的輸出平均值。然而,為了減少方差,我們使用多個決策樹、行采樣和特征采樣。

????????隨機森林既有分類器又有回歸。它們之間的唯一區別是分類器使用多數投票,而回歸器找到所有決策樹輸出的平均值或中值。通過調整超參數(例如決策樹的數量),您可以優化隨機森林的性能。

????????隨機森林或決策樹是否需要標準化(縮放)?

沒有!

  • RF 的本質是收斂和數值精度問題(這些問題有時會影響邏輯回歸和線性回歸以及神經網絡中使用的算法)并不那么重要。因此,您不需要像使用神經網絡那樣將變量轉換為通用尺度。
  • 您不會得到任何回歸系數的類似物,回歸系數測量每個預測變量與響應之間的關系。因此,您也不需要考慮如何解釋這些受可變測量尺度影響的系數。

這就是套袋技術中的隨機森林分類器和隨機森林回歸。在下一篇文章中,我們將學習 Boosting 技術。

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

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

相關文章

WLAN配置實驗

本文記錄了WLAN配置實踐的過程&#xff0c;該操作在華為HCIA中屬于相對較復雜的實驗&#xff0c;記錄過程備忘。這里不就WLAN原理解釋&#xff0c;僅進行配置實踐&#xff0c;可以作為學習原理時候的參考。本文使用華為ENSP進行仿真。實驗拓撲圖如下&#xff1a; 1.WLAN工作流程…

【electron】外語函數接口 FFI

? 目錄 ? &#x1f6eb; 導讀需求開發環境 1?? FFI概念優點注意事項 2?? 【廢棄】node-ffi3?? node-ffi-napi安裝&#xff08;windows系統下&#xff09;示例&#xff1a;MessageBoxA、NtSuspendProcess 4?? node-win32-api安裝示例&#xff1a;查找窗口并設置窗口標…

UE5數據傳遞-紋理貼圖

期待結果&#xff1a; 流程 1. 通過C寫入數據到紋理貼圖 2. 在材質中通過采樣能正確讀取寫入的數值 踩坑&#xff1a; 1. UE5之后&#xff0c;需要設置采樣類型&#xff0c;才能達到上圖效果&#xff0c;默認采樣類型做了插值計算 FColor中寫入 PF_B8G8R8A8 UTexture2D* Conve…

第四題:憧憬(JavaPythonC++實現)【第六屆傳智杯-新增場次-程序設計挑戰賽解題分析詳解復盤】

本文僅為【2023傳智杯-第二場】第六屆傳智杯程序設計挑戰賽-題目解題分析詳解的解題個人筆記,個人解題分析記錄。 本文包含:第六屆傳智杯程序設計挑戰賽題目、解題思路分析、解題代碼、解題代碼詳解(Java&Python&C++實現) 文章目錄 更新進度記錄第四題:憧憬(Java…

AI 繪畫 | Stable Diffusion 藝術二維碼制作

前言 這篇文章教會你如果用Stable Diffusion WEB UI制作藝術二維碼,什么是藝術二維碼呢?就是普通二維碼和藝術圖片融合后的二維碼圖片,如下圖所示。主要原理還是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 準備…

【論文閱讀筆記】NeRF+Mip-NeRF+Instant-NGP

目錄 前言NeRF神經輻射場體渲染連續體渲染體渲染離散化 方法位置編碼分層采樣體渲染推導公式&#xff08;1&#xff09;到公式&#xff08;2&#xff09;部分代碼解讀相機變換&#xff08;重要&#xff01;&#xff09; Mip-NerfTo do Instant-NGPTo do 前言 NeRF是NeRF系列的…

DIP——邊緣提取與分割

1.使用canny算法進行邊緣提取 本實驗比較簡單&#xff0c;基本思路是對原圖像進行一個高斯模糊處理&#xff0c;用于去噪&#xff0c;之后轉換為灰度圖&#xff0c;直接調用cv庫中的canny記性邊緣提取。若想直接得到彩色邊緣&#xff0c;則通過按位與操作&#xff0c;將原始彩色…

SQLMap進階使用

預計更新SQL注入概述 1.1 SQL注入攻擊概述 1.2 SQL注入漏洞分類 1.3 SQL注入攻擊的危害 SQLMap介紹 2.1 SQLMap簡介 2.2 SQLMap安裝與配置 2.3 SQLMap基本用法 SQLMap進階使用 3.1 SQLMap高級用法 3.2 SQLMap配置文件詳解 3.3 SQLMap插件的使用 SQL注入漏洞檢測 4.1 SQL注入…

ingress介紹和ingress通過LoadBalancer暴露服務配置

目錄 一.ingress基本原理介紹 1.將原有用于暴露服務和負載均衡的服務的三四層負載均衡變為一個七層負載均衡 2.controller和ingress 3.通過下面這個圖可能會有更直觀的理解 二.為什么會出現ingress 1.NodePort存在缺點 2.LoadBalancer存在缺點 三.ingress三種暴露服務的…

7-6 通訊錄排序

輸入n個朋友的信息&#xff0c;包括姓名、生日、電話號碼&#xff0c;本題要求編寫程序&#xff0c;按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。 輸入格式: 輸入第一行給出正整數n&#xff08;<10&#xff09;。隨后n行&#xff0c;每行按照“…

基于JavaWeb+SSM+Vue微信小程序的科創微應用平臺系統的設計和實現

基于JavaWebSSMVue微信小程序的科創微應用平臺系統的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 1系統概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系統設計思想 1 2相關技術…

Linux Component概述和高通component的使用

1 Linux為什么要引入Component框架&#xff1f; 為了讓subsystem按照一定順序初始化設備才提出來的。 subsystem中由很多設備模塊&#xff0c;內核加載這些模塊的時間不確定。子系統內有些模塊是需要依賴其它模塊先初始化才能進行自己初始化工作(例如v4l2 subdev和v4l2 video …

kubebuilder開發operator

安裝kubebuilder前 需要有kubernetes環境和golang環境 官網&#xff1a;https://go.kubebuilder.io/ 安裝kubebuilder #下載 wget https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH) #改名kubebuilder后加權限 chmod x kubebuilder #放到環境變量里 mv k…

【C語言程序設計】編寫簡單的C程序

目錄 前言 一、程序設計 二、程序改錯 三、程序完善 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1;本文由Filotimo__??原創&#xff0c;首發于CSDN&#x1f4da;。 &#x1f4e3;如…

unity 2d 入門 飛翔小鳥 死亡 顯示GameOver(十四)

1、添加Img create->ui->img 把圖片拖進去 2、和分數一樣、調整位置 3、修改角色腳本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//獲取小鳥&#xff08;剛體&#xff09;private Rigidbod…

【Apipost】批量刪除我的51CTO文章

文章目錄 一、序二、API分析三、Apipost測試四、腳本五、Apipost中完成 一、序 去年開始再51CTO同步更新文章&#xff0c;一年多過去了&#xff0c;只漲了3個粉絲。看了下這個平臺就是賣課、搞培訓的&#xff0c;退出了。決定把文章也刪除了&#xff08;有人私信我說專門注冊了…

ToolkenGPT:用大量工具增強LLM

深度學習自然語言處理 原創作者&#xff1a;cola 用外部工具增強大型語言模型(LLM)已經成為解決復雜問題的一種方法。然而&#xff0c;用樣例數據對LLM進行微調的傳統方法&#xff0c;可能既昂貴又局限于一組預定義的工具。最近的上下文學習范式緩解了這一問題&#xff0c;但有…

Shell 常用命令詳解-上

Shell 常用命令詳解-上 1.目錄查閱相關命令2.文件操作相關命令 1.目錄查閱相關命令 ll 命令 命令描述&#xff1a;ll命令用于顯示指定工作目錄下的內容。 命令格式&#xff1a;ll [參數] [目錄名]。 參數說明&#xff1a; 參數說明-a顯示所有文件及目錄&#xff08;包括隱藏文…

【機器學習】041_模型開發迭代過程

一、模型開發的一般步驟 1. 明確研究問題 確定問題的組成和結果&#xff0c;明晰問題是分類問題還是回歸問題 2. 決定系統總體架構 ①理解數據&#xff1a;采集&#xff08;爬取&#xff09;數據&#xff0c;生成&#xff08;導入&#xff09;數據&#xff0c;進行數據清洗…

代碼隨想錄二刷 |二叉樹 |101. 對稱二叉樹

代碼隨想錄二刷 &#xff5c;二叉樹 &#xff5c;101. 對稱二叉樹 題目描述解題思路 & 代碼實現遞歸法迭代法使用隊列使用棧 題目描述 101.對稱二叉樹 給你一個二叉樹的根節點 root &#xff0c; 檢查它是否軸對稱。 示例 1&#xff1a; 輸入&#xff1a;root [1,2,2,…