引言
在正兒八經地介紹集成學習的內容之前,我們想先介紹一下Kaggle競賽,這是我們要介紹集成學習的初衷之一。Kaggle(kaggle)是由安東尼·戈德布盧姆在2010年創(chuàng)辦的一個數(shù)據(jù)建模和數(shù)據(jù)分析平臺,其目標就是使數(shù)據(jù)科學成為一項運動 。這個平臺對所有的注冊用戶開放,企業(yè)和研究者可以在上面發(fā)布自己的數(shù)據(jù)并描述自己的目標,感興趣的數(shù)據(jù)分析專家可在上面進行競賽來解決問題。
Kaggle競賽包括Featured,Recruitment,Research,Playground,Getting started和In class幾種類別,其中Featured,Recruitment,Research是企業(yè)或研究機構發(fā)布的,提供一定數(shù)額的獎金,問題比較難;Playground,Getting started則是提供給數(shù)據(jù)分析愛好者們一些入門級的練習,難度較低,對于新手建議從這兩個類別入手;最后In class則是提供給教學用的,老師布置一些任務同班同學可以在上面完成,這個一般是私密的不是外界都能參與的。
Kaggle在數(shù)據(jù)分析領域非常有影響力,在全球范圍內擁有將近20萬名數(shù)據(jù)科學家,其競賽領域包括計算機科學、統(tǒng)計學、經濟學和數(shù)學。Kaggle的競賽在艾滋病研究、棋牌評級和交通預測方面取得了成果并且基于這些成果產生了一系列的學術論文。
什么是集成學習
在很多Kaggle競賽以及很多工程實踐中,集成學習的策略由于其良好的預測性能而備受青睞。那么什么是集成學習?集成學習是一種機器學習框架,其主要思想就是將多個基礎模型組合起來,提高整體模型的泛化能力。集成學習的思想背后有比較成熟的數(shù)學理論作支撐,也即Valiant和Kearns提出的PAC (Probably approximately correct) 學習框架下的強可學習和弱可學習理論。該理論指出:在PAC 的學習框架中,一個概念如果存在一個多項式的學習方法能夠學習它,并且如果預測正確率很高,那么就稱這個概念是強可學習的;如果正確率僅比隨機猜測略好,那么就稱這個概念是弱可學習的。隨后,Schapire證明了強可學習和若可學習是等價的,也就是說弱學習模型是可以通過組合提升為強學習模型的,由此便形成了后來的集成學習的思想。
集成學習的思想其實是比較自然的,俗話說的“三個臭皮匠,頂個諸葛亮”,就是一種典型的集成學習的思想。那么集成學習的框架下具體包含哪些算法呢?根據(jù)南京大學周志華老師2009年發(fā)表的一篇關于集成學習的綜述,集成學習的框架主要有三種:boosting,bagging以及stacking,其中boosting包含有Adaboost 和GBDT等,bagging的典型代表是Random Forest,stacking則是多種基礎模型的結合,這三種方法思想大同小異,但是模型訓練的過程不同,限于篇幅,本文主要介紹boosting學習框架中的Adaboost,在以后的系列文章中會再介紹其他方面有關集成學習的內容。
Boosting
Boosting是一種廣泛應用的集成學習框架,該框架一般的訓練過程是依次訓練基礎模型,并在訓練過程中對訓練集不斷地進行調整,也即當前訓練所用的訓練集由前一次訓練的訓練集根據(jù)某些策略調整得到,最后將所有基礎模型組合起來即為最終得到的模型。Boosting學習框架中最具代表性的算法就是Adaboost,因此,本文將通過Adaboost來深入學習boosting思想及其具體實現(xiàn)。
Adaboost算法
大家都知道Adaboost算法是一種應用非常廣泛也非常有效的機器學習方法,也被評為數(shù)據(jù)挖掘領域十大經典算法之一。那么什么是Adaboost算法,一句話描述就是:在當前基礎模型訓練時,提高訓練集中前一個基礎模型。
聯(lián)系客服