bagging

bagging

Bagging算法 (英語:Bootstrap aggregating,引導聚集算法),又稱裝袋算法,是機器學習領域的一種團體學習算法。最初由Leo Breiman於1996年提出。Bagging算法可與其他分類回歸算法結合,提高其準確率、穩定性的同時,通過降低結果的方差,避免過擬合的發生。

基本介紹

  • 中文名:套袋
  • 外文名:bagging
  • 領域:統計學
  • 功能:提高分類法的準確率
  • 定義:機器學習領域的團體學習算法
簡介,基本思想,算法步驟,實例分析,Bagging算法特性,

簡介

Bagging是通過結合幾個模型降低泛化誤差的技術。主要想法是分別訓練幾個不同的模型,然後讓所有模型表決測試樣例的輸出。這是機器學習中常規策略的一個例子,被稱為模型平均(modelaveraging)。採用這種策略的技術被稱為集成方法。
模型平均(model averaging)奏效的原因是不同的模型通常不會在測試集上產生完全相同的誤差。模型平均是一個減少泛化誤差的非常強大可靠的方法。在作為科學論文算法的基準時,它通常是不鼓勵使用的,因為任何機器學習算法都可以從模型平均中大幅獲益(以增加計算和存儲為代價)。

基本思想

1.給定一個弱學習算法,和一個訓練集;
2.單個弱學習算法準確率不高;
3.將該學習算法使用多次,得出預測函式序列,進行投票;
4.最後結果準確率將得到提高.

算法步驟

給定一個大小為n的訓練集D,Bagging算法從中均勻、有放回地(即使用自助抽樣法)選出m個大小為n'的子集Di,作為新的訓練集。在這m個訓練集上使用分類、回歸等算法,則可得到m個模型,再通過取平均值、取多數票等方法,即可得到Bagging的結果。

實例分析

  1. 實例環境sklearn + anaconda + jupyter
  2. 實例步驟
  3. 數據:可以採用 datasets 的數據,在此作者使用的是自己整理的股票行情
  4. 訓練、測試數據歸一化
  5. 參數尋優可以使用GridSearch,在此不作贅
  6. 代碼實現
import time
import pandas as pd
from pandas import Series,DataFrame
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import cross_val_score
from sklearn import preprocessing
from sklearn import datasets
iris=datasets.load_iris()
X,y=iris.data[:,1:3],iris.target

Bagging算法特性

1.Bagging通過降低基分類器的方差,改善了泛化誤差。
2.其性能依賴於基分類器的穩定性;如果基分類器不穩定,bagging有助於降低訓練數據的隨機波動導致的誤差;如果穩定,則集成分類器的誤差主要由基分類器的偏倚引起。
3.由於每個樣本被選中的機率相同,因此bagging並不側重於訓練數據集中的任何特定實例。

相關詞條

熱門詞條

聯絡我們