Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第8章_第1頁(yè)
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第8章_第2頁(yè)
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第8章_第3頁(yè)
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第8章_第4頁(yè)
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第8章_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章概論西華大學(xué)機(jī)器學(xué)習(xí)第八章AdaBoost模型XXX學(xué)校XXX2022目錄Contents模型介紹馬疝病預(yù)測(cè)學(xué)生課程成績(jī)預(yù)測(cè)

知識(shí)引入3

前一章介紹了一種集成學(xué)習(xí)的方法——隨機(jī)森林。隨機(jī)森林是利用bagging方法組合在一起的決策樹(shù),每個(gè)決策樹(shù)之間的運(yùn)行是獨(dú)立的,互相沒(méi)有依賴的,是完全可以并行執(zhí)行的。而集成學(xué)習(xí)的另一類方法就是,其每一個(gè)弱分類器之間不是完全獨(dú)立的,而是相互依賴的,必須按照一定的順序先后執(zhí)行。本章將要介紹的AdaBoost模型就是這樣的模型。題庫(kù)抽題(曾經(jīng)做錯(cuò)過(guò)的習(xí)題總是更容易被抽取到,做錯(cuò)的次數(shù)越多,就越容易抽取到)小明做題(給題目標(biāo)注答案的正確性)

本章知識(shí)圖譜4模型介紹一1模型介紹6AdaBoost是AdaptiveBoosting(自適應(yīng)增強(qiáng))的縮寫,屬于boosting系列算法中的一種,也就是說(shuō)每個(gè)學(xué)習(xí)器之間存在強(qiáng)依賴關(guān)系。AdaBoost是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的性能較弱的分類器(弱分類器),然后把這些分類器集合起來(lái),構(gòu)成一個(gè)更強(qiáng)的最終分類器(強(qiáng)分類器)。1.1AdaBoost原理71、Boosting提升算法Boosting算法是將“弱學(xué)習(xí)算法”提升為“強(qiáng)學(xué)習(xí)算法”的過(guò)程。一般來(lái)說(shuō),找到弱學(xué)習(xí)算法要相對(duì)容易一些,然后通過(guò)反復(fù)學(xué)習(xí)得到一系列弱分類器,組合這些弱分類器得到一個(gè)強(qiáng)分類器。Boosting算法要涉及到兩個(gè)部分,加法模型和前向分步算法。

加法模型是指強(qiáng)分類器由一系列弱分類器線性相加而成。一般組合形式如下:1.1AdaBoost原理8

前向分步是指在訓(xùn)練過(guò)程中,下一輪迭代產(chǎn)生的分類器是在上一輪的基礎(chǔ)上訓(xùn)練得來(lái)的。也就是可以寫成這樣的形式:1、Boosting提升算法

由于采用的損失函數(shù)不同,Boosting算法也因此有了不同的類型,AdaBoost就是損失函數(shù)為指數(shù)損失的Boosting算法。

與Bagging不同的是,Boosting是集中關(guān)注分類器錯(cuò)分的那些數(shù)據(jù)來(lái)獲得新的分類器。此外,Bagging中分類器權(quán)重相等,而B(niǎo)oosting中分類器的權(quán)值并不相等,分類器的錯(cuò)誤率越低,那么其對(duì)應(yīng)的權(quán)重也就越大,越容易對(duì)預(yù)測(cè)結(jié)果產(chǎn)生影響。1.1AdaBoost原理92、算法原理錯(cuò)誤分類樣本增加權(quán)重,正確分類樣本減少權(quán)重按誤分情況確定權(quán)重將分類器按權(quán)重累加得到最終的強(qiáng)分類器1.2AdaBoost的算法流程101、算法步驟初始化訓(xùn)練數(shù)據(jù)權(quán)值分布強(qiáng)分類器訓(xùn)練弱分類器如果有N個(gè)樣本,則每一個(gè)訓(xùn)練樣本最開(kāi)始時(shí)都被賦予相同的權(quán)值:1/N。根據(jù)分類結(jié)果構(gòu)建下一個(gè)訓(xùn)練集,錯(cuò)誤分類樣本增加權(quán)重,正確分類樣本減少權(quán)重。根據(jù)弱分類器誤差率確定各個(gè)弱分類器權(quán)重,加大誤差率小的弱分類器權(quán)重,減少誤差率大的分類器權(quán)重,將不同權(quán)重的弱分類器累加得到強(qiáng)分類器1.2AdaBoost的算法流程112、算法流程具體描述1.2AdaBoost的算法流程122、算法流程具體描述

1.2AdaBoost的算法流程132、算法流程具體描述1.2AdaBoost的算法流程142、算法流程具體描述1.2AdaBoost的算法流程152、算法流程具體描述1.2AdaBoost的算法流程162、算法流程具體描述1.3AdaBoost的Python常用庫(kù)17sklearn中用于AdaBoost算法的類包括AdaBoostClassifier和AdaBoostRegressor兩個(gè),其中AdaBoostClassifier用于分類,AdaBoostRegressor用于回歸。

在sklearn庫(kù)中AdaBoostClassifier類的構(gòu)造函數(shù)定義如下:classsklearn.ensemble.AdaBoostClassifier(base_estimator=None,n_estimators=50,learning_rate=1.0,algorithm='SAMME.R',random_state=None)

在sklearn庫(kù)中AdaBoostRegressor類的構(gòu)造函數(shù)定義如下:classsklearn.ensemble.AdaBoostRegressor(base_estimator=None,n_estimators=50,learning_rate=1.0,loss='linear',random_state=None)AdaBoostClassifier使用了兩種AdaBoost分類算法的實(shí)現(xiàn),分別是SAMME和SAMME.R。而AdaBoostRegressor則使用了AdaBoost.R2回歸算法。

對(duì)AdaBoost的調(diào)參主要針對(duì)兩部分內(nèi)容進(jìn)行,第一部分是對(duì)AdaBoost的框架進(jìn)行調(diào)參,第二部分是對(duì)選擇的弱分類器進(jìn)行調(diào)參,兩者相輔相成。1.3AdaBoost的Python常用庫(kù)18

框架參數(shù)介紹:1、base_estimator:AdaBoostClassifier和AdaBoostRegressor都有,即需要的弱分類學(xué)習(xí)器或弱回歸學(xué)習(xí)器。2、algorithm:這個(gè)參數(shù)只有AdaBoostClassifier有。主要原因是sklearn實(shí)現(xiàn)了兩種AdaBoost分類算法,SAMME和SAMME.R。兩者的主要區(qū)別在于弱學(xué)習(xí)器權(quán)重的度量方式不同,SAMME使用了對(duì)樣本集的分類效果作為弱學(xué)習(xí)器權(quán)重,而SAMME.R使用了對(duì)樣本集分類的預(yù)測(cè)概率大小作為弱學(xué)習(xí)器權(quán)重。3、loss:這個(gè)參數(shù)只有AdaBoostRegressor有,AdaBoost.R2算法需要用到。其值

可以選擇線性‘linear’、平方‘square’和指數(shù)‘exponential’三種,默認(rèn)為線性,一般使用線性就足夠了。這個(gè)值對(duì)應(yīng)了對(duì)第k個(gè)弱分類器的中第i個(gè)樣本的誤差的處理,即:如果是線性誤差,則1.3AdaBoost的Python常用庫(kù)19

框架參數(shù)介紹:如果是平方誤差,則如果是指數(shù)誤差,則1.3AdaBoost的Python常用庫(kù)20

框架參數(shù)介紹:4、n_estimators:AdaBoostClassifier和AdaBoostRegressor都有,表示弱學(xué)習(xí)器的最大迭代次數(shù),或者說(shuō)最大的弱學(xué)習(xí)器的個(gè)數(shù)。一般來(lái)說(shuō)其值太小,容易欠擬合,其值太大,又容易過(guò)擬合,一般選擇一個(gè)適中的數(shù)值,默認(rèn)為50。5、learning_rate:AdaBoostClassifier和AdaBoostRegressor都有,即每個(gè)弱學(xué)習(xí)器的權(quán)重縮減系數(shù)v。通常用步長(zhǎng)和迭代最大次數(shù)一起來(lái)決定算法的擬合效果。所以這兩個(gè)參數(shù)n_estimators和learning_rate要一起調(diào)參。案例:馬疝病預(yù)測(cè)二2.1案例介紹22案例數(shù)據(jù):

該數(shù)據(jù)集中包含了醫(yī)院檢測(cè)馬疝氣病的一些指標(biāo),有的指標(biāo)比較主觀,有的指標(biāo)難以測(cè)量,例如馬的疼痛級(jí)別。該案例用到的數(shù)據(jù)包括368個(gè)樣本和28個(gè)特征,數(shù)據(jù)除了部分指標(biāo)主觀和難以測(cè)量之外,還有30%的值是缺失的。案例目標(biāo):

通過(guò)患有疝氣病的馬的各種特征屬性預(yù)測(cè)患病馬的病死率。2.2案例實(shí)現(xiàn)231.

導(dǎo)入數(shù)據(jù)

首先導(dǎo)入數(shù)據(jù),并確保類別標(biāo)簽是+1和-1,而非1和0。將數(shù)據(jù)轉(zhuǎn)換為列表形式,dataArr為存放屬性數(shù)據(jù)的列表,列表元素為每一個(gè)樣本的所有屬性數(shù)據(jù),labelArr為存放樣本分類標(biāo)簽的列表。2.2案例實(shí)現(xiàn)242.

訓(xùn)練數(shù)據(jù)在導(dǎo)入的數(shù)據(jù)中,利用adaBoostTrainDS()函數(shù)訓(xùn)練出一系列的分類器。初始化樣本權(quán)重信息訓(xùn)練弱分類器計(jì)算分類器權(quán)重并儲(chǔ)存信息存儲(chǔ)分類器更新樣本權(quán)重信息累加弱分類器用更新權(quán)重信息的樣本集訓(xùn)練下一個(gè)弱分類器2.2案例實(shí)現(xiàn)253.

測(cè)試算法

實(shí)現(xiàn)了模型之后就可以利用訓(xùn)練集來(lái)訓(xùn)練若干個(gè)弱分類器了。當(dāng)?shù)玫饺醴诸惼骷现?,可以利用這些弱分類器對(duì)測(cè)試集數(shù)據(jù)進(jìn)行分類。導(dǎo)入測(cè)試數(shù)據(jù)弱分類器分類按弱分類器權(quán)重累加分類結(jié)果初始化分類結(jié)果返回最終結(jié)果下一個(gè)弱分類器對(duì)測(cè)試數(shù)據(jù)集樣本進(jìn)行分類2.2案例實(shí)現(xiàn)264.

使用算法

導(dǎo)入訓(xùn)練數(shù)據(jù)導(dǎo)入測(cè)試數(shù)據(jù)測(cè)試模型訓(xùn)練模型得到測(cè)試結(jié)果案例:學(xué)生課程成績(jī)預(yù)測(cè)三3.1案例介紹28案例數(shù)據(jù):

數(shù)據(jù)包括649個(gè)學(xué)生的葡萄牙課程的相關(guān)數(shù)據(jù),數(shù)據(jù)包含了測(cè)試集與訓(xùn)練集兩個(gè)部分,每組數(shù)據(jù)共有30個(gè)特征和三個(gè)標(biāo)簽,分別是第一階段、第二階段和第三階段的分?jǐn)?shù)。案例目標(biāo):

利用公開(kāi)的學(xué)生成績(jī)數(shù)據(jù)集,運(yùn)用AdaBoost算法根據(jù)已有的部分學(xué)生成績(jī)信息,預(yù)測(cè)其他學(xué)生的成績(jī)。3.1案例介紹29案例數(shù)據(jù)屬性信息表:序號(hào)屬性名說(shuō)明序號(hào)屬性名說(shuō)明1school學(xué)生的學(xué)校名稱18paid課程科目中的額外付費(fèi)課程2sex學(xué)生性別19activities課外活動(dòng)3age學(xué)生年齡20nursery是否上過(guò)幼兒園4address學(xué)生的家庭住址21higher是否想接受高等教育5famsize學(xué)生家庭成員多少22internet是否在家上網(wǎng)6Pstatus父母的同居狀況23romantic是否戀愛(ài)7Medu母親的受教育情況24famrel家庭關(guān)系質(zhì)量8Fedu父親的受教育情況25freetime放學(xué)后的空閑時(shí)間9Mjob母親的職業(yè)26goout和朋友出去的頻率10Fjob父親的職業(yè)27Dalc工作日飲酒量11reason選擇這所學(xué)校的理由28Walc周末飲酒量12guardian學(xué)生監(jiān)護(hù)人29health當(dāng)前健康狀況13traveltime通勤時(shí)間30absences缺課次數(shù)14studytime每周的學(xué)習(xí)時(shí)間31G1第一階段成績(jī)15failures過(guò)去掛科次數(shù)32G2第二階段成績(jī)16schoolsup額外的教育支持33G3第三階段成績(jī)17famsup家庭教育支持

3.2案例實(shí)現(xiàn)1.

數(shù)據(jù)處理

首先將文件處理轉(zhuǎn)為訓(xùn)練數(shù)據(jù)及標(biāo)簽和測(cè)試數(shù)據(jù)及標(biāo)簽。2.

樣本分類

數(shù)據(jù)處理完成后,進(jìn)行弱分類器分類,我們采用決策樹(shù)來(lái)分類。這里的分類采用與指定特征的指定值比較,不相等的,分類為-1。3.創(chuàng)建弱分類器

遍歷所有特征以及特征值,得到考慮樣本權(quán)重以后的分類誤差,找到最小誤差,返回決策樹(shù)、最小誤差和最佳分類結(jié)果。3.2案例實(shí)現(xiàn)4.

組合訓(xùn)練弱分類器初始化樣本權(quán)重信息訓(xùn)練弱分類器計(jì)算弱分類器權(quán)重并儲(chǔ)存信息存儲(chǔ)弱分類器更新樣本權(quán)重信息累加弱分類器用更新權(quán)重信息的樣本集訓(xùn)練下一個(gè)弱分類器3.2案例實(shí)現(xiàn)5.

計(jì)算分類錯(cuò)誤數(shù)

最后根據(jù)訓(xùn)練好的弱分類器列表對(duì)特征矩陣進(jìn)行分類并返回結(jié)果,并根據(jù)預(yù)測(cè)結(jié)果和實(shí)際結(jié)果計(jì)算分裂錯(cuò)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論