機器學習---集成學習的初步理解

1. 集成學習

? ? ? ? 集成學習(ensemble learning)是現在非常火爆的機器學習方法。它本身不是一個單獨的機器學

習算法,而是通過構建并結合多個機器學習器來完成學習任務。也就是我們常說的“博采眾長”。集

成學習可以用于分類問題集成,回歸問題集成,特征選取集成,異常點檢測集成等等,可以說所有

的機器學習領域都可以看到集成學習的身影。

集成學習通過建立幾個模型來解決單?預測問題。它的?作原理是?成多個分類器/模型,各自獨

立地學習和作出預測。這些預測最后結合成組合預測,因此優于任何?個單分類的做出預測。?

?只要單分類器的表現不太差,集成學習的結果總是要好于單分類器的。

? ? ? ?對于訓練集數據,通過訓練若干個個體學習器,通過一定的結合策略,就可以最終形成一個強

學習器,以達到博采眾長的目的。集成學習有兩個主要的問題需要解決,第一是如何得到若干個個

體學習器,第二是如何選擇一種結合策略,將這些個體學習器集合成一個強學習器。

2. 集成學習例子?

對下面實例D1進行分類,得到兩個分類結果h1和h2:

對多個分類器的分類結果進行某種組合來決定最終的分類,以取得比單個分類器更好的性能:

定義:集成學習是使用一系列學習器進行學習,并使用某種規則把各個學習結果進行整合從而獲得

比單個學習器更好的學習效果的一種機器學習方法。如果把單個分類器比作一個決策者的話,集成

學習的方法就相當于多個決策者共同進行一項決策。

在概率近似正確(PAC)學習的框架中,一個概念(一個類),如果存在一個多項式的學習算法能

夠學習它,如果正確率很高,那么就稱這個概念是強可學習(strongly learnable)的。如果正確率

不高,僅僅比隨機猜測略好,那么就稱這個概念是弱可學習(weakly learnable)的。后來證明強

可學習與弱可學習是等價的。

3. 解決的問題

3.1 弱分類器之間的關系

第一種就是所有的個體學習器都是一個種類的,或者說是同質的。

第二種是所有的個體學習器不全是一個種類的,或者說是異質的。

個體學習器有兩種選擇:

第一種就是所有的個體學習器都是一個種類的,或者說是同質的。比如都是決策樹個體學習器,或

者都是神經網絡個體學習器

第二種是所有的個體學習器不全是一個種類的,或者說是異質的。比如我們有一個分類問題,對訓

練集采用支持向量機個體學習器,邏輯回歸個體學習器和樸素貝葉斯個體學習器來學習,再通過某

種結合策略來確定最終的分類強學習器

目前而言,同質個體學習器應用最廣泛,一般常說的集成學習的方法都是指的同質個體學習器。而

同質個體學習器使用最多的模型是CART決策樹和神經網絡。同質個體學習器按照個體學習器之間

是否存在依賴關系可以分為兩類,第一個是個體學習器之間存在強依賴關系,一系列個體學習器基

本都需要串行生成,代表算法是boosting系列算法,第二個是個體學習器之間不存在強依賴關系,

一系列個體學習器可以并行生成,代表算法是bagging和隨機森林(Random Forest)系列算法。

3.2 如何選擇個體學習器

考慮準確性和多樣性:

準確性指的是個體學習器不能太差,要有一定的準確度;

多樣性則是個體學習器之間的輸出要具有差異性。

3.3 弱分類器的組合策略

平均法:對于數值類的回歸預測問題

思想:對于若干個弱學習器的輸出進行平均得到最終的預測輸出。

簡單平均法:
加權平均法:

其中wi是個體學習器hi的權重,通常有wi≥0,

②投票法:對于分類問題的預測

思想:多個基本分類器都進行分類預測,然后根據分類結果用某種投票的原則進行投票表決,按照

投票原則使用不同投票法:一票否決? 、閾值表決 、 少數服從多數。

閾值表決:首先統計出把實例x劃分為Ci和不劃分為Ci的分類器數目分別是多少,然后當這兩者比

例超過某個閾值的時候把x劃分到Ci。

③學習法:之前的方法都是對弱學習器的結果做平均或者投票,相對比較簡單,但是可能學習誤差

較大。代表方法是Stacking。

思想:不是對弱學習器的結果做簡單的邏輯處理,而是再加上一層學習器,分為2層。第一層是用

不同的算法形成T個弱分類器,同時產生一個與原數據集大小相同的新數據集,利用這個新數據集

和一個新算法構成第二層的分類器。

4. 集成學習方法

根據個體學習器的生成方式,目前的集成學習方法大致可分為兩類:

Boosting:個體學習器間存在強依賴關系,必須串行生成的序列化方法;串行:下一個分類器只

在前一個分類器預測不夠準的實例上進行訓練或檢驗。

Bagging:個體學習器間不存在強依賴關系,可同時生成的并行化方法。并行:所有的弱分類器都

給出各自的預測結果,通過組合把這些預測結果轉化為最終結果。

4.1?Boosting

重賦權法:即在訓練過程的每一輪中,根據樣本分布為每一個訓練樣本重新賦予一個權重。對無法

接受帶權樣本的基學習算法,則可以通過重采樣法來處理,即在每一輪的學習中,根據樣本分布對

訓練集重新進行采樣,在用重采樣而來的樣本集對基學習器進行訓練。

代表算法:

Adboost,決策樹+adboost=提升樹

GBDTGradient BoostDecision Tree)梯度提升決策樹,決策樹+Gradient Boosting=GBDT

其他叫法: Gradient Tree Boosting,GBRT (Gradient BoostRegression Tree) 梯度提升回歸樹

??????????????????? MART (MultipleAdditive Regression Tree) 多決策回歸樹,Tree Net決策樹網絡

4.2?Bagging (bootstrap aggregation )

從樣本集中用Bootstrap采樣選出n個樣本,在所有屬性上,對這n個樣本建立分類器(CART or

SVM or ...),重復以上兩步m次,i.e.build m個分類器(CART or SVM or ...)。將數據放在這m

個分類器上跑,最后vote看到底分到哪一類。

Bootstrap方法是非常有用的一種統計學上的估計方法。 Bootstrap是對觀測信息進行再抽樣,進而

對總體的分布特性進行統計推斷。Bootstrap是一種有放回的重復抽樣方法,抽樣策略就是簡單的

隨機抽樣。

隨機森林:決策樹+bagging=隨機森林

4.3 兩者的區別

從偏差-方差分解的角度:

偏差(bias) 描述的是預測值的期望真實值之間的差距。偏差越大,越偏離真實數據。

方差(variance) 描述的是預測值的變化范圍,離散程度,也就是離其期望值的距離。

方差越大,數據的分布越分散。

Boosting主要關注降低偏差:偏差刻畫了學習算法本身的擬合能力,Boosting思想,對判斷錯誤的

樣本不停的加大權重,為了更好地擬合當前數據,所以降低了偏差,因此Boosting能基于泛化性能

相當弱的學習器構建出很強的集成。Boosting是把許多弱的分類器組合成一個強的分類器。

Bagging主要是降低方差:度量了同樣大小的數據集的變動所導致的學習性能的變化。刻畫了數據

擾動所造成的影響。 Bagging思想,隨機選擇部分樣本來訓練處理不同的模型,再綜合來減小方

差,因此它在不剪枝決策樹、神經網絡等易受樣本擾動的學習器上效果更明顯。Bagging是對許多

強(甚至過強)的分類器求平均。?

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

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

相關文章

多線程并發Ping腳本

1. 前言 最近需要ping地址,還是挺多的,就使用python搞一個ping腳本,記錄一下,以免丟失了。 2. 腳本介紹 首先檢查是否存在True.txt或False.txt文件,并在用戶確認后進行刪除,然后從IP.txt的文件中讀取IP地…

CSS——sticky定位

1. 大白話解釋sticky定位 粘性定位通俗來說,它就是相對定位relative和固定定位fixed的結合體,它的觸發過程分為三個階段 在最近可滾動容器沒有觸發滑動之前,sticky盒子的表現為相對定位relative【第一階段】, 但當最近可滾動容…

【MATLAB】tvfEMD信號分解+FFT+HHT組合算法

有意向獲取代碼,請轉文末觀看代碼獲取方式~也可轉原文鏈接獲取~ 1 基本定義 TVFEMDFFTHHT組合算法是一種結合了總體變分模態分解(TVFEMD)、傅里葉變換(FFT)和希爾伯特-黃變換(HHT)的信號分解方…

vivado時序方法檢查8

TIMING-30 &#xff1a; 生成時鐘所選主源管腳欠佳 生成時鐘 <clock_name> 所選的主源管腳欠佳 &#xff0c; 時序可能處于消極狀態。 描述 雖然 create_generated_clock 命令允許您指定任意參考時鐘 &#xff0c; 但是生成時鐘應引用在其直接扇入中傳輸的時鐘。此…

電子學會C/C++編程等級考試2021年06月(五級)真題解析

C/C++等級考試(1~8級)全部真題?點這里 第1題:數字變換 給定一個包含5個數字(0-9)的字符串,例如 “02943”,請將“12345”變換到它。 你可以采取3種操作進行變換 1. 交換相鄰的兩個數字 2. 將一個數字加1。如果加1后大于9,則變為0 3. 將一個數字加倍。如果加倍后大于…

JS--異步的日常用法

目錄 JS 異步編程并發&#xff08;concurrency&#xff09;和并行&#xff08;parallelism&#xff09;區別回調函數&#xff08;Callback&#xff09;GeneratorPromiseasync 及 await常用定時器函數 JS 異步編程 并發&#xff08;concurrency&#xff09;和并行&#xff08;p…

Python中一些有趣的例題

下面會寫一些基礎的例題&#xff0c;有興趣的自己也可以練練手&#xff01; 1.假設手機短信收到的數字驗證碼為“278902”&#xff0c;編寫一個程序&#xff0c;讓用戶輸入數字驗證碼&#xff0c;如果數字驗證碼輸入正確&#xff0c;提示“支付成功”&#xff1b;否則提示“數…

Python configparser 模塊:優雅處理配置文件的得力工具

更多資料獲取 &#x1f4da; 個人網站&#xff1a;ipengtao.com 配置文件在軟件開發中扮演著重要的角色&#xff0c;而Python中的 configparser 模塊提供了一種優雅而靈活的方式來處理各種配置需求。本文將深入介紹 configparser 模塊的各個方面&#xff0c;通過豐富的示例代碼…

嵌入式雜記 - MDK的Code, RO-data , RW-data, ZI-data意思

嵌入式雜記 - Keil的Code, RO-data , RW-data, ZI-data意思 MDK中的數據分類MCU中的內部存儲分布MDK中數據類型存儲Code代碼段例子 RO-data 只讀數據段例子 RW-data 可讀寫數據段例子 ZI-data 清零數據段例子 在嵌入式開發中&#xff0c;我們經常都會使用一些IDE&#xff0c;例…

Hadoop學習筆記(HDP)-Part.17 安裝Spark2

目錄 Part.01 關于HDP Part.02 核心組件原理 Part.03 資源規劃 Part.04 基礎環境配置 Part.05 Yum源配置 Part.06 安裝OracleJDK Part.07 安裝MySQL Part.08 部署Ambari集群 Part.09 安裝OpenLDAP Part.10 創建集群 Part.11 安裝Kerberos Part.12 安裝HDFS Part.13 安裝Ranger …

Web前端 ---- 【Vue】Vuex的使用(輔助函數、模塊化開發)

目錄 前言 Vuex是什么 Vuex的配置 安裝vuex 配置vuex文件 Vuex核心對象 actions mutations getters state Vuex在vue中的使用 輔助函數 Vuex模塊化開發 前言 本文介紹一種新的用于組件傳值的插件 —— vuex Vuex是什么 Vuex 是一個專為 Vue.js 應用程序開發的狀態…

淺談前端代碼里的命名規范與注釋

淺談前端代碼里的命名規范與注釋 在前端代碼中&#xff0c;命名規范和注釋是非常重要的。它們不僅有助于提高代碼的可讀性和可維護性&#xff0c;還可以幫助開發者之間更好地協作和溝通。下面是一些關于命名規范和注釋的常見建議&#xff1a; 命名規范&#xff1a; 使用有意義…

【ArcGIS Pro微課1000例】0053:基于SQL Server創建與啟用地理數據庫

之前的文章有講述基于SQL Server創建企業級地理數據庫,本文講述在SQL Server中創建常規的關心數據庫,然后在ArcGIS Pro中將其啟用,轉換為企業級地理數據庫。 1. 在SQL Server中創建數據庫** 打開SQL Server 2019,連接到數據庫服務器。 展開數據庫連接,在數據庫上右鍵→新…

python中的lambda關鍵字

對于一切很模糊的知識&#xff0c;首要的是抓住概念的定義。 lambda&#xff1a;在 Python 中用于創建匿名函數的關鍵字。 也即&#xff0c;lambda是一種關鍵字&#xff0c;這種關鍵字的作用是創建匿名函數。 這一段很好懂&#xff0c;就是匿名函數有點懵。 什么是匿名函數&…

mybatis-plus構造器查詢

文章目錄 Hutool工具包Vo與entity轉換多表分頁查詢構造器&#xff1a;查詢構造器&#xff1a;拼接構造器&#xff1a;刪除操作構造器&#xff1a;修改操作查詢關鍵字 Hutool工具包Vo與entity轉換 BeanUtils&#xff1a;copyProperties(vo, entity)&#xff0c;vo轉實體類。 L…

在裝有 PostgreSQL 14 的 Red Hat8上安裝 `pg_cron`

要在裝有 PostgreSQL 14 的 Red Hat、CentOS、Fedora 或 Amazon Linux 上安裝 pg_cron&#xff0c;請遵循以下步驟。這些步驟假定您已經安裝了 PostgreSQL Global Development Group (PGDG) 的 PostgreSQL 版本。 安裝 pg_cron 擴展 使用 yum 安裝 pg_cron 擴展&#xff1a;s…

(四)Tiki-taka算法(TTA)求解無人機三維路徑規劃研究(MATLAB)

一、無人機模型簡介&#xff1a; 單個無人機三維路徑規劃問題及其建模_IT猿手的博客-CSDN博客 參考文獻&#xff1a; [1]胡觀凱,鐘建華,李永正,黎萬洪.基于IPSO-GA算法的無人機三維路徑規劃[J].現代電子技術,2023,46(07):115-120 二、Tiki-taka算法&#xff08;TTA&#xf…

基于SSH的java記賬管理系統

基于SSH的java記賬管理系統 一、系統介紹二、功能展示四、其他系統實現五、獲取源碼 一、系統介紹 項目類型&#xff1a;Java EE項目 項目名稱&#xff1a;基于SSH的記賬管理系統 項目架構&#xff1a;B/S架構 開發語言&#xff1a;Java語言 前端技術&#xff1a;HTML、CS…

初識優先級隊列與堆

1.優先級隊列 由前文隊列queue可知&#xff0c;隊列是一種先進先出(FIFO)的數據結構&#xff0c;但有些情況下&#xff0c;操作的數據可能帶有優先級&#xff0c;一般出隊列時&#xff0c;可能需要優先級高的元素先出隊列&#xff0c;在此情況下&#xff0c;使用隊列queue顯然不…

git常用命令指南

目錄 一、基本命令 1、創建分支 2、切換分支 3、合并分支 4、初始化空git倉庫 二、文件操作 1、創建文件 2、添加多個文件 3、查看項目的當前狀態 4、修改文件 5、刪除文件 6、提交項目 三、實際操作 1、創建目錄 2、進入新目錄 3、初始化空git倉庫 4、創建文…