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