1. 程式人生 > >[Mechine Learning & Algorithm] 整合學習方法——Bagging和 Boosting

[Mechine Learning & Algorithm] 整合學習方法——Bagging和 Boosting

  因為不同的模型具有不同的特點, 所以有時也會將多個模型進行組合,以發揮"三個臭皮匠頂一個諸葛亮的作用", 這樣的思路, 反應在模型中,主要有兩種思路:Bagging和Boosting

1. Bagging

  Bagging 可以看成是一種圓桌會議, 或是投票選舉的形式,其中的思想是:"群眾的眼光是雪亮的",可以訓練多個模型,之後將這些模型進行加權組合,一般這類方法的效果,都會好於單個模型的效果。 在實踐中, 在特徵一定的情況下,大家總是使用Bagging的思想去提升效果。 例如kaggle上的問題解決,因為大家獲得的資料都是一樣的,特別是有些資料已經過預處理。

bagging_ppt

  以下為Data Mining Concepts and Techniques 2nd 中的虛擬碼

bagging

  基本的思路比較簡單,就是:訓練時,使用replacement的sampling方法, sampling一部分訓練資料k次並訓練k個模型;預測時,使用k個模型,如果為分類,則讓k個模型均進行分類並選擇出現次數最多的類(每個類出現的次數佔比可以視為置信度);如為迴歸,則為各類器返回的結果的平均值。

  在該處,Bagging演算法可以認為每個分類器的權重都一樣。

2. Boosting

  在Bagging方法中,我們假設每個訓練樣本的權重都是一致的; 而Boosting演算法則更加關注錯分的樣本,越是容易錯分的樣本,約要花更多精力去關注。對應到資料中,就是該資料對模型的權重越大,後續的模型就越要拼命將這些經常分錯的樣本分正確。 最後訓練出來的模型也有不同權重,所以boosting更像是會整,級別高,權威的醫師的話語權就重些。

  以下為Data Mining Concepts and Techniques 2nd 中adaboost虛擬碼:

adaboost

  訓練:先初始化每個訓練樣本的權重相等為1/d,d為樣本數量; 之後每次使用一部分訓練樣本去訓練弱分類器,且只保留錯誤率小於0.5的弱分類器,對於分對的訓練樣本,將其權重 調整為 error(Mi)/(1-error(Mi)) ,其中error(Mi)為第i個弱分類器的錯誤率(降低正確分類的樣本的權重,相當於增加分錯樣本的權重);

  測試:每個弱分類器均給出自己的預測結果,且弱分類器的權重為log(1-error(Mi))/error(Mi) ) 權重最高的類別,即為最終預測結果。

  在adaboost中,弱分類器的個數的設計可以有多種方式,例如最簡單的就是使用一維特徵的樹作為弱分類器。

  adaboost在一定弱分類器數量控制下,速度較快,且效果還不錯。

  我們在實際應用中使用adaboost對輸入關鍵詞和推薦候選關鍵詞進行相關性判斷。隨著新的模型方法的出現, adaboost效果已經稍顯遜色,我們在同一資料集下,實驗了GBDT和adaboost,在保證召回基本不變的情況下,簡單調參後的Random Forest準確率居然比adaboost高5個點以上,效果令人吃驚。。。。

  Bagging和Boosting都可以視為比較傳統的整合學習思路。 現在常用的Random Forest,GBDT,GBRank其實都是更加精細化,效果更好的方法。 後續會有更加詳細的內容專門介紹。

  具體adaboost在百度關鍵詞搜尋推薦中的應用參見:《分類模型在關鍵詞推薦系統中的應用

3. 參考內容

  [2] Data Mining Concepts and Techniques 2nd

  [3] Soft Margin for Adaboost

相關推薦

[Mechine Learning & Algorithm] 整合學習方法——Bagging Boosting

  因為不同的模型具有不同的特點, 所以有時也會將多個模型進行組合,以發揮"三個臭皮匠頂一個諸葛亮的作用", 這樣的思路, 反應在模型中,主要有兩種思路:Bagging和Boosting 1. Bagging   Bagging 可以看成是一種圓桌會議, 或是投票選舉的形式,其中的思想是:"群眾的眼光

整合學習BaggingBoosting的簡介

一、什麼是整合學習 整合學習在機器學習演算法中具有較高的準確率,不足的就是模型訓練比較複雜,效率不高。 Boosting主要有:Adaboost、GBDT、XGBoost Bagging主要有:Random Forest 整合學習的思想: 整合學習的主要思想是構建出多個弱分

你想看的整合學習baggingboosting區別特徵及例子

這篇文章主要講述整合學習的bagging和boosting。 首先bagging和boosting是整合學習的兩個大家族,每個家族也包括很多成員,例如boosting包括adaboost、xgboost,bagging也有RandomForest等方法。既然b

機器學習筆記-整合學習BaggingBoosting,隨機森林三者特性對比

整合學習的概念 定義:整合學習通過構建並結合多個學習器來完成學習任務。 分類:只包含同種型別的個體學習器,這樣的整合是“同質”的,例如都是神經網路或者決策樹;包含不同型別的個體學習器,這樣的整合是“異質”的,例如同時包括神經網路和決策樹。 作用:整合學習通過將多個學

python機器學習案例系列教程——整合學習BaggingBoosting、隨機森林RF、AdaBoost、GBDT、xgboost)

可以通過聚集多個分類器的預測結果提高分類器的分類準確率,這一方法稱為整合(Ensemble)學習或分類器組合(Classifier Combination),該方法由訓練資料構建一組基分類器(Base Classifier),然後通過對每個基分類器的預測進行

[白話解析] 通俗解析整合學習baggingboosting & 隨機森林

# [白話解析] 通俗解析整合學習之bagging,boosting & 隨機森林 ## 0x00 摘要 本文將盡量使用通俗易懂的方式,儘可能不涉及數學公式,而是從整體的思路上來看,運用感性直覺的思考來解釋 **整合學習**。並且從名著中延伸了具體應用場景來幫助大家深入這個概念。 在機器學習過程

【IM】關於整合學習BaggingBoosting的理解

整合學習在各大比賽中非常流程,如XGboost、LGBM等,對其基學習器決策樹及其剪枝等,可參考: https://blog.csdn.net/fjssharpsword/article/details/54861274 整合學習可參考: https://blog.csdn.net/

baggingboosting演算法(整合學習演算法)

一、整合學習簡介   在講boosting和bagging演算法之前,首先需要了解一下整合學習的概念。整合學習是指將若干弱分類器組合之後產生一個強分類器。弱分類器(weak learner)指那些分類準確率只稍好於隨機猜測的分類器(error rate <

整合學習:BaggingBoosting比較

隨機森林(random forest)和GBDT都是屬於整合學習(ensemble learning)的範疇。整合學習下有兩個重要的策略Bagging和Boosting。 1 Bagging和Boosting含義 Bagging演算法是這樣做的:每個分類器都隨機從原樣本中做有放回的

Lambda學習---方法引用其他基本應用

截取 map 數量 AR foreach sum -a world ID 1 package com.zx; 2 3 import java.util.*; 4 import java.util.function.*; 5 import java.u

機器學習筆記之十——整合學習Bagging

上一節學習了決策樹:https://blog.csdn.net/qq_35946969/article/details/85039097 最後說到提升決策樹的效能,整合就是非常強大的解決方案。 藉助一個圖,直觀的瞭解整合學習:   Bagging   &nbs

整合學習方法及思想總結

整合學習(Ensemble Learning)有時也被籠統地稱作提升(Boosting)方法,廣泛用於分類和迴歸任務。它最初的思想很簡單:使用一些(不同的)方法改變原始訓練樣本的分佈,從而構建多個不同的分類器,並將這些分類器線性組合得到一個更強大的分類器,來做最

整合學習——Bootstrap Bagging AdaBoost演算法

整合學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。 簡單地說,就是通過抽樣等方式從原始資料集構造m個訓練集,再選擇一個弱分類器(比如決策樹)對這些訓練集進行訓練得到m個分類器,在待分類

【Python-ML】SKlearn庫整合學習Bagging

# -*- coding: utf-8 -*- ''' Created on 2018年1月19日 @author: Jason.F @summary: Bagging,通過bootstrap樣本構建整合分類器,樣本有放回抽樣。降低模型方差,防止過擬合。 ''' impo

Ensemble Learning整合學習

整合學習原理: 所謂兼聽則明,偏信則闇。 整合學習本身並不是一個單純的新演算法,它的目的是通過結合多個其他的機器學習模型來完成某個一個任務以提升最終結果的準確率,即三個臭皮匠賽過諸葛亮。從該思想出發自然可以想到,如何得到多個機器學習模型?又如何整合?基於

機器學習回顧篇(12):整合學習Bagging與隨機森林

  1 引言¶ 整合學習演算法是當下炙手可熱的一類演算法,在諸多機器學習大賽中都頻繁出現它的身影。準確來說,整合學習演算法並不是一個單獨的機器學習演算法,而是通過構建多個學習器,博採眾家之長,共同求解問題的一種思想。古語有云:&ldquo

BaggingBoosting 概念及區別

Bagging和Boosting都是將已有的分類或迴歸演算法通過一定方式組合起來,形成一個性能更加強大的分類器,更準確的說這是一種分類演算法的組裝方法。即將弱分類器組裝成強分類器的方法。 首先介紹Bootstraping,即自助法:它是一種有放回的抽樣方法(可能抽到重複

Bagging Boosting 概念區別

Bagging和Boosting都是將已有的分類或迴歸演算法通過一定方式組合起來,形成一個性能更加強大的分類器,更準確的說這是一種分類演算法的組裝方法。即將弱分類器組裝成強分類器的方法。 首先介紹Bootstraping,即自助法:它是一種有放回的抽樣方法(可能抽到重複的樣本)。 1、Bag

baggingboosting以及rand-forest

bagging:   讓該學習演算法訓練多輪,每輪的訓練集由從初始的訓練集中隨機取出的n個訓練樣本組成,某個初始訓練樣本在某輪訓練集中可以出現多次或根本不出現,訓練之後可得到一個預測函式序列h_1,⋯ ⋯h_n ,最終的預測函式H對分類問題採用投票方式,對迴歸問題採用簡單平均方法對新示例進行判別。(可以平行

baggingboosting 總結,較全

作為整合學習的二個方法,其實bagging和boosting的實現比較容易理解,但是理論證明比較費力。下面首先介紹這兩種方法。 所謂的整合學習,就是用多重或多個弱分類器結合為一個強分類器,從而達到提升分類方法效果。嚴格來說,整合學習並不算是一種分類器,而是一種分類器結合的方法。 1.bagging