機器學習:集成學習概念、分類、隨機森林

本文目錄:

  • 一、集成學習概念
    • **核心思想:**
  • 二、集成學習分類
    • (一)Bagging集成
    • (二)Boosting集成
    • (三)兩種集成方法對比
  • 三、隨機森林

一、集成學習概念

集成學習是一種通過結合多個基學習器(弱學習器)的預測結果來提升模型整體性能的機器學習方法。其核心思想是“集思廣益”,通過多樣性(Diversity)和集體決策降低方差(Variance)或偏差(Bias),從而提高泛化能力。

核心思想:

弱學習器:指性能略優于隨機猜測的簡單模型(如決策樹樁、線性模型);

強學習器:通過組合多個弱學習器構建的高性能模型;

核心目標:減少過擬合(降低方差)或欠擬合(降低偏差)。

傳統機器學習算法 (例如:決策樹,邏輯回歸等) 的目標都是尋找一個最優分類器盡可能的將訓練數據分開。集成學習 (Ensemble Learning) 算法的基本思想就是將多個分類器組合,從而實現一個預測效果更好的集成分類器。集成算法可以說從一方面驗證了中國的一句老話:三個臭皮匠,賽過諸葛亮。
在這里插入圖片描述

二、集成學習分類

集成學習算法一般分為:bagging和boosting
在這里插入圖片描述

(一)Bagging集成

Bagging 框架通過有放回的抽樣產生不同的訓練集,從而訓練具有差異性的弱學習器,然后通過平權投票、多數表決的方式決定預測結果。
在這里插入圖片描述

(二)Boosting集成

Boosting 體現了提升思想,每一個訓練器重點關注前一個訓練器不足的地方進行訓練,通過加權投票的方式,得出預測結果。
在這里插入圖片描述
Boosting是一組可將弱學習器升為強學習器算法,這類算法的工作機制類似:

1.先從初始訓練集訓練出一個基學習器;

2.在根據基學習器的表現對訓練樣本分布進行調整,使得先前基學習器做錯的訓練樣本(增加權重)在后續得到最大的關注;

3.然后基于調整后的樣本分布來訓練下一個基學習器;

4.如此重復進行,直至基學習器數目達到實現指定的值T為止。

5.再將這T個基學習器進行加權結合得到集成學習器。

簡而言之:每新加入一個弱學習器,整體能力就會得到提升
在這里插入圖片描述

(三)兩種集成方法對比

在這里插入圖片描述

三、隨機森林

隨機森林是基于 Bagging 思想實現的一種集成學習算法,通過構建多棵決策樹并結合它們的預測結果來提高模型的準確性和魯棒性。它由Leo Breiman在2001年提出,廣泛應用于分類和回歸任務。

其構造過程是:

  1. 訓練:
    (1)有放回的產生訓練樣本;
    (2)隨機挑選 n 個特征(n 小于總特征數量)。
  2. 預測:
    (1)分類任務:投票(多數表決);
    (2)回歸任務:平均預測值。

優點與缺點:
在這里插入圖片描述
實例:

#1.數據導入
#1.1導入數據
import pandas as pd
#1.2.利用pandas的read.csv模塊從互聯網中收集泰坦尼克號數據集
titanic=pd.read_csv("data/泰坦尼克號.csv")
titanic.info() #查看信息
#2人工選擇特征pclass,age,sex
X=titanic[['Pclass','Age','Sex']]
y=titanic['Survived']
#3.特征工程
#數據的填補
X['Age'].fillna(X['Age'].mean(),inplace=True)
X = pd.get_dummies(X)
#數據的切分
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test =train_test_split(X,y,test_size=0.25,random_state=22)#4.使用單一的決策樹進行模型的訓練及預測分析
from sklearn.tree import DecisionTreeClassifier
dtc=DecisionTreeClassifier()
dtc.fit(X_train,y_train)
dtc_y_pred=dtc.predict(X_test)
dtc.score(X_test,y_test)#5.隨機森林進行模型的訓練和預測分析
from sklearn.ensemble import RandomForestClassifier
rfc=RandomForestClassifier(max_depth=6,random_state=9)
rfc.fit(X_train,y_train)
rfc_y_pred=rfc.predict(X_test)
rfc.score(X_test,y_test)#6.性能評估
from sklearn.metrics import classification_report
print("dtc_report:",classification_report(dtc_y_pred,y_test))
print("rfc_report:",classification_report(rfc_y_pred,y_test))# 隨機森林做預測
# 1 實例化隨機森林
rf = RandomForestClassifier()
# 2 定義超參數的選擇列表
param={"n_estimators":[80,100,200], "max_depth": [2,4,6,8,10,12],"random_state":[9]}
# 超參數調優
# 3 使用GridSearchCV進行網格搜索
from sklearn.model_selection import GridSearchCV
gc = GridSearchCV(rf, param_grid=param, cv=2)
gc.fit(X_train, y_train)
print("隨機森林預測的準確率為:", gc.score(X_test, y_test))

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

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

相關文章

YOLO機械臂丨使用unity搭建仿真環境,YOLO算法識別,Moveit2控制

文章目錄 前言搭建開發環境在window中安裝Unity創建Docker容器,并安裝相關軟件運行測試改進添加刪除節點前的函數調用 報錯?框選節點的時候報錯?如果無法控制機械臂,查看rviz2的終端,應該會有?規劃路徑超出范圍 參考 前言 本項目介紹通過…

Docker 插件生態:從網絡插件到存儲插件的擴展能力解析

Docker 容器技術以其輕量、快速、可移植的特性,迅速成為構建和部署現代應用的核心工具。然而,盡管 Docker Engine 自身功能強大,但在面對多樣化的生產環境和復雜業務需求時,僅靠核心功能往往無法滿足所有場景。 例如,跨主機的容器網絡通信、異構存儲系統的持久化數據管理…

飛牛fnNAS使用群輝DSM系統

目錄 一、Virtual DSM簡介 二、在飛牛NAS中安裝 1、激活Docker 2、建立路徑 3、創建Compose項目 4、容器啟動 (1)構建容器 (2)容器啟動 5、查看日志 6、登錄DSM地址 7、安裝完成 8、安裝套件示例 9、遠程訪問 10、測試 (1)PC瀏覽器創建筆記 (2)手機創建…

關于FPGA軟核的仿真(一)

MicroBlaze是Xilinx專為FPGA設計的軟核處理器,其本質是通過FPGA的可編程邏輯資源(如查找表LUT、觸發器Flip-Flop)動態構建的處理器架構,其本質為搭建處理器電路。MicroBlaze上運行嵌入式C代碼程序,通過CoreConnect總線…

戶外攝像頭監控如何兼顧安全實時監控

一、技術手段提升隱私安全性 硬件與功能設計 采用支持隱私保護技術的設備,例如帶電子開關的攝像頭(可遠程控制攝像頭啟閉)3,或搭載本地AI算法的設備,僅識別人形、車輛等目標,減少無關信息采集。 使用安全…

【C#朗讀文本DLL動態按鈕控件組及按鈕事件文本框拖放數據】2022-1-21

緣由https://bbs.csdn.net/topics/604357098 DotNetSpeech.dll下載_DotNetSpeech.dll免費版下載 - 系統之家 dotnetspeech.dll 64下載-dotnetspeech.dll下載 v10.2 官方版-IT貓撲網 下載了一個DotNetSpeech.dll,放到 \bin\Debug里,添加引用,…

<5>, Qt系統相關

目錄 一、Qt 事件 1,事件的定義 2,事件的處理 3,鼠標事件 4,按鍵事件 5,定時器 6,事件分發器 7,事件過濾器 二、Qt 文件 1,輸入輸出類 2,文件讀寫類 3&#x…

WordPress主題代碼優化深度指南

引言:為何主題優化至關重要 WordPress作為全球最流行的內容管理系統,其性能表現直接關系到用戶體驗和網站成功。主題代碼優化不僅能夠: 提升頁面加載速度(Google研究表明,頁面加載時間每增加1秒,跳出率增加…

數據結構第6章 圖(竟成)

第 6 章 圖 【考綱內容】 1.圖的基本概念 2.圖的存儲及基本操作:(1) 鄰接矩陣法;(2) 鄰接表法;(3) 鄰接多重表、十字鏈表 3.圖的遍歷:(1) 深度優先搜索;(2) 廣度優先搜索 4.圖的基本應用:(1) 最小 (代價) 生…

【ROS2實體機械臂驅動】rokae xCoreSDK Python測試使用

【ROS2實體機械臂驅動】rokae xCoreSDK Python測試使用 文章目錄 前言正文配置環境下載源碼配置環境變量測試運行修改點說明實際運行情況 參考 前言 本文用來記錄 xCoreSDK-Python的調用使用1。 正文 配置環境 配置開發環境,這里使用conda做python環境管理&…

黑馬Java面試筆記之MySQL篇(優化)

一. 慢查詢 在MySQL中,如何定位慢查詢? 出現慢查詢的情況有以下幾種: 聚合查詢多表查詢表數據量過大查詢深度分頁查詢 表象:頁面加載過慢,接口壓測響應時間過長(超過1s) 1.2 如何定位慢查詢&…

歷史數據分析——廣州港

個股簡介 公司簡介: 華南地區最大的綜合性主樞紐港。 本公司是由廣州港集團、國投交通、廣州發展作為發起人,共同出資以發起方式設立的股份有限公司。 經營分析: 一般經營項目:企業管理服務(涉及許可經營項目的除外);港務船舶調度服務;船舶通信服務;企業自有資金…

圖解gpt之Transformer架構與設計原理

Transformer架構。它不僅僅是一個模型,更是一種范式,徹底改變了我們理解和處理自然語言的方式。 2017年,谷歌大腦團隊發表了一篇劃時代的論文,題目就叫《Attention is All You Need》。這標題本身就充滿了力量,宣告了…

HCIP:MPLS靜態LSP的配置及抓包

目錄 一、MPLS的簡單的一些知識點 1.MPLS的概述: 2.MPLS工作原理: 3.MPLS的核心組件: 4. MPLS標簽 5.MPLS標簽的處理 6.MPLS轉發的概述: 7.MPLS的靜態LSP建立方式 二、MPLS的靜態LSP的實驗配置 1.配置接口的地址和配置OS…

Azure DevOps 管道部署系列之一本地服務器

Azure DevOps 是一個幫助改進 SDLC(軟件開發生命周期)的平臺。 在本文中,我們將使用 Azure Pipelines 創建自動化部署。 Azure DevOps 團隊將 Azure Pipelines 定義為“使用 CI/CD 構建、測試和部署,適用于任何語言、平臺和云平臺”。 在這里,我將解釋如何在 Azure Dev…

深入剖析網絡協議:七層協議與四層協議詳解

在計算機網絡的世界中,數據的傳輸與交互離不開協議的規范。其中,七層協議和四層協議是網絡通信架構的核心概念,它們如同網絡世界的 “交通規則”,保障著數據準確、高效地在不同設備間流轉。本文將深入解讀七層協議與四層協議&…

回頭看,FPGA+RK3576方案的功耗性能優勢

作者:Hello,Panda 各位朋友,大家好,熊貓君這次開個倒車,在這個廣泛使用Xilinx(Altera)高端SoC的時代,分享一個“FPGAARM”實現的低功耗高性能傳統方案。 圖1 瑞芯微RK3576電路 當前&#xff0c…

打造極致計算器:HTML+Tailwind+DaisyUI實戰

一、計算器總體描述 創建一個在線計算器來實現基礎數學運算功能,通過單一頁面集成數字按鈕、運算符按鈕和顯示結果區域,界面采用簡潔直觀的布局設計,按鈕排列合理且提供即時運算反饋,確保計算邏輯準確和良好的按鍵響應體驗&#x…

基于mediapipe深度學習的虛擬畫板系統python源碼

目錄 1.前言 2.算法運行效果圖預覽 3.算法運行軟件版本 4.部分核心程序 5.算法仿真參數 6.算法理論概述 7.參考文獻 8.算法完整程序工程 1.前言 虛擬畫板系統基于計算機視覺與深度學習技術,通過攝像頭捕獲用戶手部動作,利用 MediaPipe框架實現手…

開源的JT1078轉GB28181服務器

JT1078轉GB28181流程 項目地址: JT1078轉GB28181的流媒體服務器: https://github.com/lkmio/lkm JT1078轉GB28181的信令服務器: https://github.com/lkmio/gb-cms 1. 創建GB28181 UA 調用接口: http://localhost:9000/api/v1/jt/device/add 請求體如下&#xf…