Scikit-Learn隨機森林

Scikit-Learn隨機森林

    • 1、隨機森林
      • 1.1、集成學習
      • 1.2、Bagging方法
      • 1.3、隨機森林算法
      • 1.4、隨機森林的優缺點
    • 2、Scikit-Learn隨機森林回歸
      • 2.1、Scikit-Learn隨機森林回歸API
      • 2.2、隨機森林回歸實踐(加州房價預測)




1、隨機森林


隨機森林是一種由決策樹構成的集成算法,它在大多情況下都能有不錯的表現。隨機森林既可用于回歸也可用于分類。隨機森林回歸在機器學習知識結構中的位置如下:

1.1、集成學習


隨機森林是一種由決策樹構成的(并行)集成算法,屬于Bagging類型,隨機森林通過組合多個弱分類器,最終結果通過投票或取均值,使得整體模型的結果具有較高的精確度和泛化性能,同時也有很好的穩定性,因此廣泛應用在各種業務場景中

隨機森林有如此優良的表現,主要歸功于隨機和森林。顧名思義,隨機森林是一個比喻,它由若干決策樹構成,每棵決策樹都是其基本單元。至于隨機,只是一個數學抽樣概念。隨機使它具有抗過擬合能力,森林使它更加精準

隨機森林的基本思想在于集思廣益,集中群眾的智慧,廣泛吸收有益的意見。這往往可以得到更好的解決方案。集思廣益在機器學習中對應一個關鍵概念——集成學習

集成學習(Ensemble Learning)通過訓練學習多個個體學習器,當預測時通過結合策略將多個個體學習器的結果組合作為最終強學習器的結果輸出

對于訓練數據集,我們訓練一系列個體學習器,再通過結合策略將它們集成起來,形成一個更強的學習器,這就是集成學習所做的事情

在這里插入圖片描述
其中,個體學習器是相對于集成學習來說的,其實我們在之前了解到的很多模型,例如決策樹算法、樸素貝葉斯算法等,都是個體學習器

而集成可以分為同質集成和異質集成:

  • 同質集成:只包含同種類型的個體學習器,個體學習器稱作基學習器。例如隨機森林中全是決策樹集成
  • 異質集成:包含不同類型的個體學習器,個體學習器稱作組件學習器。例如同時包含決策樹和神經網絡進行集成

個體學習器代表的是單個學習器,集成學習代表的是多個學習器的結合

集成學習的核心問題有兩個:

  • 使用什么樣的個體學習器?
    • 準確性:個體學習器不能太弱,需要有一定的準確性
    • 多樣性:個體學習器之間要存在差異性,即具有多樣性
  • 如何選擇合適的結合策略構建強學習器?
    • 并行組合方式:例如隨機森林
    • 傳統組合方式:例如Boosting樹模型

1.2、Bagging方法


這里我們只講隨機森林的并行集成模型,而Bagging是并行式集成學習方法最著名的代表

Bagging方法全稱為自助聚集(Bootstrap Aggregating),顧名思義,Bagging由Bootstrap與Aggregating兩部分組成

要理解Bagging,首先要了解自助采樣法(Bootstrap Sampling)

在這里插入圖片描述
自助采樣的過程為

  • 給定包含m個樣本的數據集,先隨機取出一個樣本放入采樣集中,再把該樣本放回初始數據集,使得下次采樣時該樣本仍有可能被選中
  • 重復上述過程m輪,得到包含m個樣本的采樣集,初始數據集中有的樣本在采樣集中多次出現,有的則從未出現
  • 假設約63.2%的樣本出現在采樣集中,而未出現的約36.8%的樣本可用作驗證集來對后續的泛化性能進行包外估計

Bagging方法是在自助采樣基礎上構建的,上述的采樣過程我們可以重復T次,采樣出T個包含m個樣本的采樣集,然后基于每個采樣集訓練出一個基學習器,然后將這些基學習器進行結合

在對預測輸出進行結合時,Bagging通常對分類任務使用簡單投票法,對回歸任務使用

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

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

相關文章

mac安裝的VMware虛擬機進行橋接模式配置

1、先進行網絡適配器選擇,選擇橋接模式 2、點擊網絡適配器 設置... 3、選擇WiFi(我使用的是WiFi,所以選擇這個),注意看右邊的信息:IP和子網掩碼,后續配置虛擬機的ifcfg-ens文件會用到 4、編輯if…

【論文閱讀筆記】The Google File System

1 簡介 Google File System (GFS) 是一個可擴展的分布式文件系統,專為快速增長的Google數據處理需求而設計。這篇論文發表于2003年,此前已在Google內部大規模應用。 GFS不僅追求性能、可伸縮性、可靠性和可用性等傳統分布式文件系統的設計目標&#xf…

benchmark::State benchmark 原理

benchmark::State benchmark::State是Google Benchmark庫中的一個核心類,用于管理單個基準測試的狀態信息和控制基準測試的執行流程。在編寫基準測試時,這個類提供了一套豐富的接口,允許用戶獲取測試循環的次數、調整測試參數、測量時間等&a…

P9 【力扣+知識點】【算法】【二分查找】C++版

【704】二分查找(模板題)看到復雜度logN,得想到二分 給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返回下標&#xff0…

企業微信hook接口協議,ipad協議http,語音轉文字

語音轉文字 參數名必選類型說明uuid是String每個實例的唯一標識,根據uuid操作具體企業微信msgid是int要轉文字的語音消息id 請求示例 {"uuid":"a4ea6a39-4b3a-4098-a250-2a07bef57355","msgid":1063645 } 返回示例 {"data&…

電源模塊測試系統怎么測試輸入電壓范圍?

在現代電子設備中,電源模塊的性能直接影響著整個系統的穩定性和效率。其中,電源輸入電壓范圍是指電源能夠接受的輸入電壓的最小值和最大值,它是確保電源正常工作的重要參數。為了提高測試效率和精度,自動化的測試方法逐漸取代了傳…

【Game】Rumble Heroes

文章目錄 1 英雄2 守護獸3 符文4 祝福5 陣容推薦6 Boss7 兌換碼 1 英雄 (1)力量 神話英雄 圣騎士-烏瑟爾 傳說英雄 雙刀-宮本武藏死亡騎士-阿薩斯冰霜騎士-亞瑟疾風焰刃-緣壹熊貓武僧-阿寶 史詩英雄 大劍-克勞德狂戰士-奎托斯魔山-克里剛獵人-奈辛瓦里 稀…

寶塔部署Java+Vue前后端分離項目

1. 服務器 服務器選擇Linux的CentOS7的版本 2. 寶塔Linux面板 2.1 百度搜索寶塔 2.2 進去之后點擊立即免費安裝 2.3 選擇Linux在線安裝,輸入服務器信息進行安裝(也可以選擇其他方式) 安裝完成之后會彈一個寶塔的應用面板,并附帶有登錄名稱和密碼&…

多模態大模型:系統、趨勢與問題

引言 多模態大模型是當今人工智能領域的熱門方向之一。它不僅能處理文本,還能理解和生成圖像、視頻、語音等多種模態的數據。這種能力使得多模態大模型在自然語言處理、計算機視覺等多個領域展示出巨大的潛力和應用價值。那么,多模態大模型是如何訓練出…

AI菜鳥向前飛 — LangChain系列之十五 - Agent系列:從現象看機制(中篇)一個Agent的“旅行”

Agent基本架構 先談談Agent基本架構概念,如果看得云里霧里,等看完本篇之后,再回頭看就會豁然開朗的,而我盡量寫得更易懂: ) 這里面會穿插著上一篇的內容,請大家記得往回翻翻,傳送門&…

MySQL 慢查詢優化指南

MySQL 慢查詢優化指南 在現代數據庫管理中,性能優化是一個不可忽視的重要環節。尤其是對于高并發、大數據量的應用,慢查詢可能會成為系統的性能瓶頸。本文將介紹如何查看和優化 MySQL 的慢查詢,幫助你提高數據庫性能。 一、什么是慢查詢&am…

C語言 | Leetcode C語言題解之第118題楊輝三角

題目&#xff1a; 題解&#xff1a; int** generate(int numRows, int* returnSize, int** returnColumnSizes) {int** ret malloc(sizeof(int*) * numRows);*returnSize numRows;*returnColumnSizes malloc(sizeof(int) * numRows);for (int i 0; i < numRows; i) {re…

C#實現計算數據和刷新ListView列表并發執行

下面是一個示例代碼&#xff0c;演示如何在C#中實現計算列表的數據和刷新ListView控件的數據的并發執行&#xff1a; using System; using System.Collections.Generic; using System.Threading; using System.Windows.Forms;class Program {static List<int> dataList …

前端API: IntersectionObserver的那一二三件事

IntersectionObserver 基礎 IntersectionObserver 可以監聽一個元素和可視區域相交部分的比例&#xff0c;然后在可視比例達到某個閾值的時候觸發回調。比如可以用來處理圖片的懶加載等等 首先我們來看下基本的格式&#xff1a; const observer new IntersectionObserver(c…

yolov10 使用自己的數據集訓練目標檢測模型

1 環境配置(使用anaconda) conda create -n yolov10 python=3.9 //創建虛擬環境 conda activate yolov10 //激活虛擬環境 pip install -r requirements.txt //執行yolov10 路徑下requirements.txt 安裝依賴 pip install -e .2.數據集制作 使用lableImage制作數據集(win版…

華為云Astro Zero低代碼平臺案例:小、輕、快、準助力銷售作戰數字化經營

客戶背景&#xff1a; 隨著業務的不斷擴展&#xff0c;華為云某一線作戰團隊發現&#xff0c;原本基于線上Excel的項目跟蹤方式面臨新的挑戰&#xff1a;多區域、多場景下的業務管理越來越復雜&#xff0c;項目管道存在多種不可控因素&#xff0c;客戶關系、進展跟蹤同步不及時…

【Qt秘籍】[003]-Qt環境變量配置-磨刀不誤砍柴工

一、為什么要設置環境變量 &#xff1f;[原因] 配置PATH環境變量的主要用處在于讓操作系統能夠識別并執行不在當前工作目錄下的可執行文件。具體來說&#xff0c;它的作用包括&#xff1a; 命令執行便捷性&#xff1a;當你在命令行輸入一個命令&#xff08;如java, python或np…

【Unity程序】Unity游戲開發中常用的設計模式【一】

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;Uni…

【C語言習題】26.字符逆序

文章目錄 1.描述2.解題思路3.具體代碼 1.描述 輸入描述: 將一個字符串str的內容顛倒過來&#xff0c;并輸出。可以有空格 數據范圍&#xff1a;1≤&#x1d459;&#x1d452;&#x1d45b;(&#x1d460;&#x1d461;&#x1d45f;)≤10000 1≤len(str)≤10000 輸出描述&…

Android基礎-數據庫

在Android系統中&#xff0c;數據庫扮演著至關重要的角色&#xff0c;它負責存儲、管理和檢索應用程序所需的數據。隨著移動應用的日益復雜和功能的不斷增加&#xff0c;對數據庫的需求也日益提高。在Android中&#xff0c;有多種數據庫管理系統和工具可供選擇&#xff0c;其中…