版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章AdaBoost
學習目標通過本章學習可以:掌握Boosting算法的思想掌握AdaBoost算法的基本原理掌握AdaBoost的scikit-learn應用方法BoostingAdaBoost原理AdaBoost的scikit-learn實現(xiàn)應用案例集成學習通過將多個單個學習器集成/組合在一起,使它們共同完成學習任務,以達到提高預測準確率的目的。Bagging:核心思想是對訓練集進行有放回地抽取,從而為每一個基本分類器都構造出一個同樣大小但各不相同的的訓練集,從而訓練出不同的基分類器。代表算法是隨機森林。Boosting:是一種可以用來減小監(jiān)督學習中偏差的機器學習算法。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提升分類的性能。代表算法有Adaboost和GradientBoostingTree(GBDT)。回顧:集成學習Boosting的主要作用跟bagging類似也是一種把若干個基分類器整合為一個分類器的方法。Boosting是一個順序過程,每個后續(xù)模型都會嘗試糾正先前模型的錯誤,后續(xù)的模型依賴于之前的模型。Boosting的基本思想先從初始訓練集訓練出一個基學習器,再根據(jù)基學習器的表現(xiàn)對訓練樣本分布進行調整,使得先前基學習器做錯的訓練樣本在后續(xù)受到更多的關注,然后基于調整后的樣本分布來訓練下一個基學習器;如此重復進行,直至基學習器數(shù)目達到事先指定的值T,最終將這T個基學習器進行加權結合。Boosting的工作機制樣本權重分類器權重優(yōu)化學習器修正樣本權重Boosting是一個迭代的過程,通過改變訓練樣本的分布,使得基分類器聚焦在那些很難分的樣本上。不像bagging,Boosting給每一個訓練樣本賦予一個權值,而且可以在每一輪提升過程結束時自動地調整權值。Boosting結合了很多弱學習器來形成一個強學習器,單個模型表現(xiàn)不佳,但它們在數(shù)據(jù)集的某些部分表現(xiàn)很好。因此,每個模型實際上提升了集成的整體性能。訓練樣本的權值可以用于以下方面:可以用作抽樣分布,從原始數(shù)據(jù)集中提取出自主樣本集?;鶎W習器可以使用權值學習有利于高權值樣本的模型。Boosting提升的理解偏差-方差Boosting:降低偏差。Bagging:降低方差。樣本選擇:Boosting:每一輪的訓練集不變,只是訓練集中每個樣本的權重發(fā)生變化,權值根據(jù)上一輪的預測結果進行調整。Bagging:訓練集是在原始集中有放回抽取的,從原始集中選出的訓練集之間是獨立的。樣本權重:Boosting:根據(jù)錯誤率不斷調整樣本的權值,錯誤率越大則權值越大。Bagging:每個樣本的權重相等。Bagging與Boosting區(qū)別(1)基學習器權重:Boosting:每個弱學習器都有相應的權重,對于誤差小的學習器會有更大的權重。Bagging:弱學習器的權重可以相等也可以賦予權重。串、并行計算:Boosting:串行,各個及學習器順序生成,因為后一個模型參數(shù)依賴于前一輪模型的預測結果。Bagging:各個學習器可以并行生成。Bagging與Boosting區(qū)別(2)BoostingAdaBoost原理AdaBoost的scikit-learn實現(xiàn)應用案例Boosting族算法最著名的代表是AdaBoost[FreundandSchapire,1997]。AdaBoost:AdaptiveBoosting,自適應提升。Adaboost采用迭代的思想,繼承了Boosting算法,每次迭代只訓練一個弱學習器,訓練好的弱學習器將參與下一次迭代。也就是說,在第N次迭代中,一共有N個弱學習器,其中N-1個是以前訓練好的,其各種參數(shù)都不會改變,本次訓練第N個學習器。其中弱學習器的關系是第N個弱學習器更可能分對前N-1個弱學習器沒分對的數(shù)據(jù),最終分類輸出要看這N個分類器的綜合效果。AdaBoost1.如何改變訓練樣本分布?2.采用什么樣的結合策略來將基學習器結合成一個強學習器?針對第一個問題,AdaBoost提高那些被前一輪基學習器錯誤分類的樣本的權值,降低那些被正確分類的樣本的權值;針對第二個問題,AdaBoost對所有基學習器采用加權結合,增大分類誤差小的基學習器的權值,減少分類錯誤率大的基學習器的權值。AdaBoost的兩個關鍵問題
二分類算法原理(1)
二分類算法原理(2)
二分類算法原理(3)
直接將Adaboost算法應用于多類分類問題往往不能得到令人滿意的結果。針對這個問題,ZhuJi等人在2009年提出了SAMME及SAMME.R算法,這也是sklearn中用Adaboost做多類分類問題時采用的算法。兩者的主要區(qū)別是弱學習器權重的度量。SAMME是二分類Adaboost算法的擴展,即用對樣本集分類效果作為弱學習器權重,而SAMME.R使用了對樣本集分類的預測概率大小來作為弱學習器權重。由于SAMME.R使用了概率度量的連續(xù)值,迭代一般比SAMME快,因此AdaBoostClassifier的默認算法algorithm的值也是SAMME.R。多分類問題
SAMME算法原理
SAMME.R算法原理SAMME.R使用概率估計來更新增加模型,而SAMME只使用分類。SAMME.R算法通常比SAMME更快地收斂,通過更少的提升迭代實現(xiàn)較低的測試誤差。每一次提升迭代后,測試集上各算法的誤差顯示左側圖,每一棵樹的測試集上的分類誤差顯示在中間,每一棵樹的boost權重顯示為右側圖。在SAMME.R算法中,所有樹的權重都是1,因此沒有顯示。SAMME和SAMME.R對比
回歸算法原理(1)
回歸算法原理(2)
回歸算法原理(3)
回歸算法原理(4)
優(yōu)點:Adaboost是一種有很高精度的分類器可以使用各種方法構建弱學習器分類器弱學習器構造比較簡單不用做特征篩選泛化能力好,不用擔心overfitting(過擬合)缺點:容易受到噪聲干擾訓練時間長執(zhí)行效果依賴于弱學習器的選擇AdaBoost優(yōu)缺點BoostingAdaBoost原理AdaBoost的scikit-learn實現(xiàn)應用案例類庫介紹:AdaBoostClassifier用于分類,AdaBoostRegressor用于回歸。AdaBoostClassifier使用了兩種Adaboost分類算法的實現(xiàn),SAMME和SAMME.R。而AdaBoostRegressor則使用了Adaboost.R2(和前面原理一致)。Adaboost調參:主要從兩方面進行調參,一是對Adaboost的框架進行調參,二是對選擇的弱分類器進行調參,兩者相輔相成。AdaBoost的scikit-learn實現(xiàn)(1)base_estimator:弱分類學習器或者弱回歸學習器。AdaBoostClassifier默認使用CART分類樹DecisionTreeClassifier,而AdaBoostRegressor默認使用CART回歸樹DecisionTreeRegressor。(2)algorithm:這個參數(shù)只有AdaBoostClassifier有。scikit-learn實現(xiàn)了兩種Adaboost分類算法,SAMME和SAMME.R。兩者的主要區(qū)別是弱學習器權重的度量。AdaBoostClassifier的默認算法是SAMME.R。(3)loss:這個參數(shù)只有AdaBoostRegressor有,Adaboost.R2算法會用到。有線性‘linear’,平方‘square’和指數(shù)‘exponential’三種選擇,默認是線性。框架參數(shù)(1)(4)n_estimators:AdaBoostClassifier和AdaBoostRegressor都有,弱學習器的最大迭代次數(shù),或者說最大的弱學習器的個數(shù)。一般來說n_estimators太小,容易欠擬合,n_estimators太大,又容易過擬合,一般選擇一個適中的數(shù)值。默認是50。(5)learning_rate:AdaBoostClassifier和AdaBoostRegressor都有,即每個弱學習器的權重縮減系數(shù)ν,ν的取值范圍為0<ν≤1,默認是1。對于同樣的訓練集擬合效果,較小的ν意味著需要更多的弱學習器的迭代次數(shù)。通常我們用步長和迭代最大次數(shù)一起來決定算法的擬合效果??蚣軈?shù)(2)(1)max_features:劃分時考慮的最大特征數(shù)。可以使用很多種類型的值,默認是“None”,意味著劃分時考慮所有的特征數(shù)。(2)max_depth:決策樹最大深度。默認可以不輸入,此時,決策樹在建立子樹的時候不會限制子樹的深度。(3)min_samples_split:內部節(jié)點劃分所需最小樣本數(shù)。默認是2。這個值限制了子樹繼續(xù)劃分的條件,如果某節(jié)點的樣本數(shù)少于min_samples_split,則不會繼續(xù)再嘗試選擇最優(yōu)特征來進行劃分。弱學習器參數(shù)(1)(4)min_samples_leaf:葉子節(jié)點最少樣本數(shù),默認是1。這個值限制了葉子節(jié)點最少的樣本數(shù),如果某葉子節(jié)點數(shù)目小于樣本數(shù),則會和兄弟節(jié)點一起被剪枝。(5)min_weight_fraction_leaf:葉子節(jié)點最小的樣本權重和,默認是0,即不考慮權重問題。這個值限制了葉子節(jié)點所有樣本權重和的最小值,如果小于這個值,則會和兄弟節(jié)點一起被剪枝。(6)max_leaf_nodes:最大葉子節(jié)點數(shù),默認是“None”,即不限制最大的葉子節(jié)點數(shù)。通過限制最大葉子節(jié)點數(shù),可以防止過擬合。弱學習器參數(shù)(2)BoostingAdaBoost原理AdaBoost的scikit-learn實現(xiàn)應用案例本小節(jié)基于Boston波士頓房價數(shù)據(jù)集利用AdaBoost對房價進行預測。Boston房價預測是一個回歸問題。數(shù)據(jù)集一共包含506個觀察,13個輸入變量和1個輸出變量。每條數(shù)據(jù)包含房屋以及房屋周圍的詳細信息。其中包含城鎮(zhèn)犯罪率,一氧化氮濃度,住宅平均房間數(shù),到中心區(qū)域的加權距離以及自住房平均房價等等。應用案例導入庫準備數(shù)據(jù)集數(shù)據(jù)準備fromsklearn.datasetsimportload_bostonfromsklearn.ensembleimportAdaBoostRegressor#下載數(shù)據(jù)集boston=load_boston()#定義feature和labelx=boston.datay=boston.targetprint('Featurecolumnname')print(boston.feature_names)print("Sampledatavolume:%d,numberoffeatures:%d"%x.shape)print("Targetsampledatavolume:%d"%y.shape[0])sns.distplot(tuple(y),kde=False,fit=st.norm)定義模型AdaBoost和DecisionTree,在未調參的情況下對比兩者的性能。模型定義和訓練#定義模型名稱names=['DecisionTree','AdaBoost']#定義模型models=[DecisionTreeRegressor(),AdaBoostRegressor(n_estimators=30)]#模型訓練并返回R2值defR2(model,x_train,x_test,y_train,y_test):model_fitted=model.fit(x_train,y_train)y_pred=model_fitted.predict(x_test)score=r2_score(y_test,y_pred)returnscore#輸出模型測試結果forname,modelinzip(names,models):score=R2(model,x_train,x_test,y_train,y_test)print("{}:{:.6f}".format(name,score.mean()))返回結果:DecisionTree:0.461254AdaBoost:0.657742通過網格搜索的方法選擇較好的框架參數(shù)。網格搜索#網格搜索選擇較好的框架參數(shù)parameters={'n_estimators':[50,60,70,80],'learning_rate':[0.5,0.6,0.7,0.8,0.9],}model=GridSearchCV(AdaBoostRegressor(),param_grid=parameters,cv=3)model.fit(x_train,y_train)#輸出最合適的參數(shù)值print("Optimalparameterlist:",model.best_params_)print("Optimalmodel:",model.best_estimator_)print("OptimalR2value:",model.best_score_)返回結果:Optimalparameterlist:{'lea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版二手房獨家授權銷售合同3篇
- 2025年度出租車充電樁建設與維護合同3篇
- 二零二五年酒店宴會部經理招聘與服務質量提升合同3篇
- 二零二五版房產中介傭金結算及售后服務合同范本3篇
- 2024年船舶制造與維修合同
- 2025年新型紗窗產品研發(fā)與知識產權保護協(xié)議2篇
- 2025年散裝糧食海運協(xié)議6篇
- 專業(yè)質量檢測服務工程協(xié)議樣本版
- 二零二五版合同部合同管理流程再造與效率提升合同3篇
- 二零二五年度消防設施安全檢測與維護服務協(xié)議
- 閱讀理解(專項訓練)-2024-2025學年湘少版英語六年級上冊
- 2024-2025學年人教版數(shù)學六年級上冊 期末綜合試卷(含答案)
- 無創(chuàng)通氣基本模式
- 飛行原理(第二版) 課件 第4章 飛機的平衡、穩(wěn)定性和操縱性
- 暨南大學珠海校區(qū)財務辦招考財務工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 羊水少治療護理查房
- 中華人民共和國保守國家秘密法實施條例培訓課件
- 管道坡口技術培訓
- OQC培訓資料教學課件
- 2024年8月CCAA國家注冊審核員OHSMS職業(yè)健康安全管理體系基礎知識考試題目含解析
- 體育賽事組織與實施操作手冊
評論
0/150
提交評論