(七)AdaBoost 簡介

2021-03-02 coderpai

博客地址:https://blog.csdn.net/CoderPai/article/details/97147488點擊閱讀原文,更好的閱讀體驗

CoderPai 是一個專注於人工智慧在量化交易應用的算法實戰平臺,主要關注人工智慧在量化交易上面的應用。如果你對人工智慧感興趣,請快快關注 「CoderPai」 微信號(coderpai)吧。

(一)機器學習中的集成學習入門

(二)bagging 方法

(三)使用Python進行交易的隨機森林算法

(四)Python中隨機森林的實現與解釋

(五)如何用 Python 從頭開始實現 Bagging 算法

(六)如何利用Python從頭開始實現隨機森林算法

(七)AdaBoost 簡介(當前文章)

Boosting 是一種集成技術,試圖從許多弱分類器中創建一個強分類器。這篇文章中,我們將介紹 AdaBoost 方法。讀完這篇文章後,你會知道:

這篇文章是為開發人員編寫的,沒有統計學或者數學背景。該文章重點介紹了算法的工作原理以及如何將其用於預測建模問題。如果你有任何疑問,可以在後臺留言。那麼,我們開始吧。

Boosting 集成方法

Boosting 是一種通用的集成方法,可以從許多弱分類器中創建強分類器。這是通過從訓練數據構建模型,然後通過構建第二個模型來糾正第一個模型所犯的錯誤。直到添加的模型達到最大數量或者達到完美預測。AdaBoost 是第一個成功開發的 Boosting 算法,如果學習這個算法能更好的幫助我們學習。現代很多的 boosting 算法都是建立在 AdaBoost 算法之上的,最著名的就是隨機梯度提升。

從數據中學習 AdaBoost 模型

AdaBoost 最適合用於提高決策樹在二元分類問題上的性能。

AdaBoost 最初被作者 Freund 和 Schapire 稱為 AdaBoost M1。最近,它又被稱為離散AdaBoost,因為它用於分類而不是回歸。

AdaBoost 可用於提高任何機器學習算法的性能。它最適合弱學習器使用,這些模型在分類問題上實現了高於隨機模型的準確性。

與 AdaBoost 一起使用的最適合的是具有一層結構的決策樹。因為這些樹很短,只包含一個分類決策,所以它們通常被稱為決策樹樁。

訓練數據集中的每個實例都是需要加權的,初始權重設置為:

$weight(xi) = 1/n$

其中,$x_i$ 是第 i 個訓練實例,n 是訓練實例的數量。

如何訓練一個模型

使用加權樣本在訓練數據上準備弱分類器(決策樹樁)。這個模型只支持二分類問題,因此每個決策樹樁對一個輸入變量做出一個決策,並為第一類或者第二類值輸出 1.0 或者 -1.0 。

針對訓練的模型計算錯誤分類率。傳統上,計算如下:

$error = (correct – N) / N$

其中 error 是錯誤分類率,correct 是被模型正確分類的數量,N 是訓練實例的總數。例如,如果模型正確預測了 100 個訓練實例中的 78 個,則錯誤或者錯誤分類率將為 (100-78)/ 100 或者 0.22 。

但是我們需要修改訓練實例的錯誤:

$error = sum(w(i) * terror(i)) / sum(w)$

這是錯誤分類率的加權和,其中 wi 是訓練實例 i 的權重,terror 是訓練實例 i 的預測誤差,如果錯誤分類則為 1,如果正確分類則為 0 。

例如,如果我們有 3 個訓練實例,其權重為 0.01,0.5和0.2。預測值為 -1,-1和-1,實例中的真確輸出變量為 -1,1和-1。那麼 terror 為 0,1和0。誤分類率計算如下:

error = (0.010 + 0.51 + 0.2*0) / (0.01 + 0.5 + 0.2) = 0.704

為訓練模型計算階段值,該階段值為模型所做的任何預測提供加權。訓練模型的階段值計算如下:

stage = ln((1-error) / error)

其中,stage 是用於對模型進行加權預測的階段值,ln() 是自然對數,而 error 是模型的錯誤分類。階段權重的影響是更準確的模型對最終預測具有個更大的權重或者貢獻。

更新訓練權重,為錯誤預測的實例提供更多權重,對正確預測的實例權重更小。

例如,使用以下內容更新一個訓練實例(w)的權重:

w = w * exp(stage * terror)

其中,w 是特定訓練實例的權重,exp() 是數字常數 e ,stage 是弱分類器的誤分類率,terror 是弱分類器預測輸出變量的誤差,具體計算為:

terror = 0 if(y == p), otherwise 1

其中 y 是訓練實例的輸出變量,p 是來自弱分類器的預測。

如果訓練實例被正確分類了,那麼權重不會發生變化,如果訓練實例沒有被正確分類,那麼權重就會相應的增大。

使用 AdaBoost 進行預測

通過計算弱分類器的加權平均值來進行預測。

對於新的輸入實例,每個弱分析器計算預測值為 +1 或者 -1。預測值由每個弱學習器的階段值進行加權。集成模型的預測被視為加權預測的總和。如果總和為正,則預測第一類,如果為負,則預測第二類。

例如, 5 個弱分類器的預測值為 1,1,-1,1和-1。從大多數投票看,模型看起來預測值為 1 或者第一類。但是我們還要計算權重,假設權重值為 0.2,0.5,0.8,0.2和0.9。計算這些預測的加權和,最終輸出為 -0.8 ,這將是 -1 或者第二類的預測。

總結

在這篇文章中,你發現了用於機器學習的 boosting 方法,你可以了解到:

提升算法將弱分類器變成強分類器;

AdaBoost 是第一個成功運用的boosting算法;

通過加權訓練實例和弱分類器來學習 AdaBoost 模型;

通過加權來自弱分類器的預測來學習 AdaBoost 模型;

作者:chen_h

微信號&QQ:862251340

相關焦點

  • AdaBoost--從原理到實現
    (這段話摘自統計學習那些事)了解了這段有意思的起源,下面來看adaboost算法應該會興趣大增。如此迭代,最終完成adaboost算法。我看了好幾篇介紹adaboost 的博客,都沒有解答我的疑惑,也許大牛認為太簡單了,不值一提,或者他們並沒有意識到這個問題而一筆帶過了。然後我仔細一想,也許提高錯誤點可以讓後面的分類器權值更高。然後看了adaboost算法,和我最初的想法很接近,但不全是。 注意到算法最後的表到式為這裡面的a 表示的權值,是由得到的。
  • AdaBoost算法詳解以及代碼實現
    pred_train[i]) for i in n_train: w[i] /= np.sum(w[i])predict = np.dot(theta, [model[m].predict(x_test) for m in range(M)])參考文獻:https://towardsdatascience.com/boosting-algorithm-adaboost-b6737a9ee60c
  • 關於Adaboost算法
    下面我們從前項分步算法模型的角度來看看Adaboost:直接將前項分步加法模型具體到adaboost上:其中 fm是前m個分類器的結合此時我們要最小化E,同時要考慮α和yl,但現在我們假設前m-1個α和y都已經fixed了:那麼其中,可以被看做一個常量,因為它裡面沒有αm和ym:接下來:其中
  • (十)stacking 簡介
    (一)機器學習中的集成學習入門(二)bagging 方法(三)使用Python進行交易的隨機森林算法(四)Python中隨機森林的實現與解釋(五)如何用 Python 從頭開始實現 Bagging 算法(六)如何利用Python從頭開始實現隨機森林算法(七)AdaBoost 簡介(八)Python
  • 獨家 | 一文讀懂Adaboost
    近年來,在Kaggle等公開的競賽中,Adaboost算法也被廣泛採用,而且大部分時候表現都不錯,比如將adaboost用在垃圾郵件檢測、手寫數字識別等項目中。另外,Adaboost模型訓練完成後,利用各個基礎模型的組合權值係數可以獲取特徵的重要性順序,也就是說,Adaboost還可以用於特徵提取。
  • 比較全面的Adaboost算法總結(二)
    adaboost + 決策樹 = 提升樹模型。(2)訓練數據含有較大的噪聲,隨著迭代次數的增加,可能出現過擬合情況。希望這兩篇文章能夠打開你深入理解AdaBoost算法的大門。
  • 整裝待發 即刻起航——營口實驗學校七年級班主任簡介
    七年級班主任簡介:
  • 成都七中萬達學校部分名師簡介
    成都奧數網12月7日 成都七中萬達學校是成都七中與金牛區教育局聯合舉辦,於2011年9月招收第一批初一、高一學生,是一所定位高起點、硬體高規格、管理高標準、辦學高品位、教學高質量、學生高素質的公辦高級完全中學。以下是成都七中萬達學校部分名師代表簡介,供參考。
  • 隨性輕鬆暢享生活 SevenFriday(七個星期五)手錶簡介
    成立於2012年的SevenFriday(七個星期五)腕錶就是年輕人們最喜歡的品牌之一。可能您還對這個品牌不是很了解,下面腕錶之家就為大家介紹一下。SevenFriday(七個星期五)手錶簡介       SevenFriday(中文名譯作七個星期五),由Daniel Niederer於2012年在瑞士創立,設計靈感來自CRT電視機,機芯為美優達統芯
  • Adaboost 算法的原理與推導
    ://zh.wikipedia.org/zh-cn/AdaBoost;鄒博之決策樹與Adaboost PPT:http://pan.baidu.com/s/1hqePkdY;鄒博講Adaboost指數損失函數推導的PPT:http://pan.baidu.com/s/1kTkkepD(第85頁~第98頁);《統計學習方法 李航著》第8章;關於adaboost
  • 武漢七所211大學(簡介、排名、分數線)
    大家好,我是小龍,今天帶大家來看看湖北的七所名校,這七所學校都位於湖北省會武漢,而且都入選了國家211、雙一流學科建設建設工程。七校都是在全國享有較高知名度的大學,其實力和排名都不低,尤其是湖北高校的雙子星:武大和華中科大,兩校都是中國排名頂級的大學,是國家世界一流大學建設高校。那麼現在就來看看這七所高校的排名、簡介及分數線吧。
  • 成都七中簡介(中文版)
    成都七中是一所全國著名並具有一定國際影響力的中學,是基礎教育改革的一面旗幟。在課程改革、拔尖創新人才基礎培養、推進教育現代化和國際化方面積累了豐富的經驗。        成都七中辦學歷史悠久,前身是1905年由墨池書院和芙蓉書院合併創立的成都高等小學堂,1907年學校更名為成都縣中學堂,1952年正式更名為成都市第七中學校。
  • 七夕牛郎織女的神話故事簡介30字40字 織女是七仙女嗎
    七夕牛郎織女的神話故事簡介30字  窮苦孩子牛郎與老牛相依為命,無意結識了天上的織女,兩人情投意合結為夫妻,從此,男耕女織,過著幸福的生活。  王母娘娘派神仙把織女抓回天庭,牛郎只好每年的7月7日在喜鵲搭的橋上見織女上一面。
  • 泉州七中「中美班」簡介
  • 圍棋棋手簡介:劉星七段
    搜狐體育訊 姓名:劉星  性別:男  出生日期:1984年12月10日  段位:七段  國籍:中國  籍貫:天津  升段:1995年入段,2004年升為七段。  成績:  6歲學棋,13歲進國家少年隊。
  • 大型原創舞劇《七仙女》項目簡介
    一、項目名稱  大型原創舞劇《七仙女》。  二、項目所在地  安徽省合肥市。  三、項目背景和優勢  七仙女神話是中國神話中最為璀璨的一顆寶石。根據神話《七仙女》的故事,以國內一流的舞劇創作、編導專家為核心,編導大型舞劇《七仙女》,以舞蹈的形式再現這段美麗的傳說,弘揚中華文化,滿足人民群眾對文化藝術生活的需求。  安徽藝術職業學院是安徽省唯一的國辦綜合性高等藝術院校,已有50年的辦學歷史,教學和舞臺實踐經驗豐富。學院擁有一流的舞蹈師資,舞蹈學生850多人,優秀人才眾多,他們具有很強的舞蹈表演實踐能力。
  • 機器學習十大經典算法之AdaBoost
    AdaBoost原理簡介AdaBoost算法是Adaptive Boost的簡稱,Boosting通過將一系列弱學習器組合起來,通過集成這些弱學習器的學習能力,得到一個強學習器。