《機器學習-Python實戰(zhàn)(微課版)》課件 第八章 隨機森林_第1頁
《機器學習-Python實戰(zhàn)(微課版)》課件 第八章 隨機森林_第2頁
《機器學習-Python實戰(zhàn)(微課版)》課件 第八章 隨機森林_第3頁
《機器學習-Python實戰(zhàn)(微課版)》課件 第八章 隨機森林_第4頁
《機器學習-Python實戰(zhàn)(微課版)》課件 第八章 隨機森林_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第八章隨機森林通過本章學習可以:掌握集成學習算法的原理掌握Bagging概念掌握隨機森林算法的原理和應用掌握隨機森林算法的scikit-learn實現(xiàn)學習目標集成學習Bagging隨機森林隨機森林的scikit-learn實現(xiàn)應用案例三個臭皮匠,頂個諸葛亮。眾人拾柴火焰高。這些古話有什么樣的寓意?引入集成學習:Ensemble

Learning。集成學習通過構建并結合多個“個體學習器”(individual

learner)來完成學習任務,有時也被稱為多分類器系統(tǒng)(multi-classifier

system)。依據每個個體學習器所采用的學習算法是否相同,可以分為同質集成和異質集成。同質集成中,個體學習器由相同的學習算法生成,個體學習器稱為基學習器。異質集成中,個體學習器由不同的學習算法生成,個體學習器稱為組件學習器。集成學習通過將多個學習器進行結合,通??色@得比單一學習器更優(yōu)的效果。集成學習先產生一組“個體學習器”,然后通過某種策略將它們結合起來。集成學習一般結構個體學習器1個體學習器2個體學習器T……結合策略輸出投票法:對分類任務來說,最常見的結合策略是投票法。平均法:對數值型輸出,最常見的結合策略就是平均法。學習法:當訓練數據很多時,一種更強大的組合策略是“學習法”,解決投票法和平均法誤差較大的問題。集成學習結合策略投票法通常用于分類問題。做法:每個模型的預測都被視為一次“投票”。票數最多的預測結果被用作最終預測結果。即對T個學習器的分類結果做一個統(tǒng)計,出現(xiàn)次數最多的類作為預測類。例如:當你讓5位朋友來評價你拍的短視頻(1-10分);假設其中三位將它評為8分,而另外兩位將它評為9分。由于多數人的評分結果為8分,所以最終評分為8分。此時,可以將此結果當作采用了所有預測的眾數(mode)。投票法平均法主要處理數值類問題。做法:對每個數據樣本的多次預測結果進行算數平均。也就是把所有模型的預測結果取平均值作為最終預測。平均法可用于回歸問題或在分類問題計算概率時使用。例如,在前一頁的問題中,平均法將取所有值的平均值。即(8+8+8+9+9)/5=8.4。平均法平均法和投票法是對弱學習器的結果做平均或者投票,相對比較簡單,但是可能學習誤差較大,于是就有了學習法。學習法是一種更為強大的結合策略,即通過另一個學習器來進行結合。Stacking是學習法的典型代表。Stacking先從初級數據集訓練出初級學習器,然后“生成”一個新數據集用于訓練次級學習器。在這個新數據集中,初級學習器的輸出被當作樣例輸入特征。學習法

集成學習的一般過程描述根據弱學習器之間是否存在依賴性,分為Bagging和Boosting。Bagging:核心思想是對訓練集進行有放回地抽取,從而為每一個基本分類器都構造出一個同樣大小但各不相同的的訓練集,從而訓練出不同的基分類器。代表算法是隨機森林。Boosting:是一種可以用來減小監(jiān)督學習中偏差的機器學習算法。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提升分類的性能。代表算法有Adaboost和GradientBoostingTree(GBDT)。集成學習分類Bagging的思想Boosting的思想集成學習Bagging隨機森林隨機森林的scikit-learn實現(xiàn)應用案例Bagging[Breiman,1996a]是并行式集成學習方法最著名的代表。Bagging是BootstrapAggregating的簡寫。Bootstrap稱為自助法,它是一種有放回的抽樣方法。在Bagging方法中,利用bootstrap方法從整體數據集中采取有放回抽樣得到T個包含m個樣本的數據集,在每個數據集上學習出一個基學習器,最后將這T個基學習器進行結合。具體地:分類問題采用簡單投票法,回歸問題采用簡單平均法。BaggingBagging運行原理圖M個訓練樣本第1個樣本采樣集第2個樣本采樣集隨機采樣….第T個樣本采樣集弱學習器2弱學習器3弱學習器T弱學習器1強學習器訓練訓練訓練訓練從大小為M的原始數據集D中獨立隨機地抽取m個數據(m<=M),形成一個自助數據集;重復上述過程,產生出T個獨立的自助數據集;利用T個自助數據集訓練出T個最優(yōu)模型;分類問題:最終的分類結果由這T個最優(yōu)模型各自的判別結果投票決定;回歸問題:對T個模型的值求平均得到最終結果。Bagging算法流程Bagging通過降低基學習器的方差改善了泛化誤差:bagging對樣本進行有放回的重采樣,學習結果是各個學習模型的平均值。由于重采樣的樣本集具有相似性以及使用相同的學習器模型,因此,各學習模型的結果相近,即模型有近似相等的偏差和方差。我們可以看到,均值沒變,但是方差卻減小到只有原方差的1/n^2。另外由于每一個樣本被選中的概率相同,因此bagging并不側重于訓練數據集中的任何特定實例。因此對于噪聲數據,裝袋不太受過分擬合的影響。Bagging特點(1)Bagging是一個很高效的集成學習算法,其復雜度與基學習器同階。由于每一個樣本被選中的概率相同,因此bagging并不側重于訓練數據集中的任何特定實例。因此對于噪聲數據,bagging不太受過分擬合的影響。關于bagging的一個問題:bagging的代價是不用單個學習器來做預測,具體哪個變量起到重要作用變得未知,所以bagging改進了預測準確率但損失了解釋性。Bagging特點(2)集成學習Bagging隨機森林隨機森林的scikit-learn實現(xiàn)應用案例隨機森林(RandomForest,簡稱RF)

[Breiman,2001a]是Bagging的一個擴展變體。RF在以決策樹為基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。

Bagging+決策樹=隨機森林隨機森林1.自助采樣法:同bagging;2.隨機屬性選擇:傳統(tǒng)決策樹在選擇劃分屬性時是在當前結點的屬性集合(假定有d個屬性)中選擇一個最優(yōu)屬性。在隨機森林中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然后再從這個子集中選擇一個最優(yōu)屬性用于劃分。這里的參數k控制了隨機性的引入程度:若令k=d,則基決策樹的構建與傳統(tǒng)決策樹相同;若令k=1,則是隨機選擇一個屬性用于劃分。隨機森林核心思想

隨機森林算法流程模型擬合曲線隨機森林擬合曲線目的:根據已有訓練集生成里對應的隨機森林,隨機森林利用某個人的5個特征來預測他的收入層次。收入層次:Band1:Below$40,000Band2:$40,000–150,000Band3:Morethan$150,000案例(1)這里假設森林中有5棵CART樹,總特征個數N=5,生成每棵樹時特征樹取m=1(即假設每棵CART樹對應一個不同的特征)。CART1:VariableAge案例(2)CART2:VariableGenderCART3:VariableEducation案例(3)CART4:VariableResidenceCART5:VariableIndustry案例(4)模型形式案例(5)假設要預測的某個人的信息如下:Age:35years;

Gender:Male;

HighestEductaionalQualification:Diploma;Industry:Manufacturing;Residence:Metro;根據這5顆CART樹的分類結果,我們可以針對這個人的信息建立收入層次的分布情況;最后我們得出結論,這個人的收入層次70%是Band1,大約24%為Band2,6%為Band13,所以最終認定該人屬于Band1收入層次(小于$40,000)。案例(6)森林中任意兩棵樹的相關性:相關性越大,錯誤率越大;森林中每棵樹的分類能力:每棵樹的分類能力越強,整個森林的錯誤率越低。隨機森林的影響因素簡單、容易實現(xiàn)、計算開銷小、準確率高;能夠有效地運行在大數據集上,可以實現(xiàn)并行訓練;能夠處理具有高維特征的輸入樣本,而且不需要降維;能夠評估各個特征在分類問題上的重要性;對部分缺失特征不敏感;由于是樹模型,不需要歸一化,可直接使用;在生成過程中,能夠獲取到內部生成誤差的一種無偏估計,同時不需要通過交叉驗證或者用一個獨立的測試集來獲得該無偏估計,它可以在內部進行評估。隨機森林優(yōu)點隨機森林已經被證明在某些噪音較大的分類或回歸問題上會過擬合。對于有不同取值的屬性的數據,取值劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值是不可信的。隨機森林缺點國內外大賽如百度校園電影推薦系統(tǒng)大賽、阿里巴巴天池大數據競賽、Kaggle數據科學競賽中,隨機森林的使用有很高的占比。對于市場營銷,隨機森林算法可以用于統(tǒng)計客戶來源,留存和流失;對于銀行,隨機森林算法可用于發(fā)現(xiàn)忠誠客戶以及客戶欺詐行為等;對于股市,隨機森林算法可以用于識別股票的波動行為,預估損失或收益;……隨機森林應用Extremelyrandomizedtrees,極端隨機樹,簡稱ET。Extratree是RF的一個變種,區(qū)別在于:對于每棵決策樹的訓練集,RF使用的是自助采樣(bootstrap)法選擇采樣集作為每個決策樹的訓練集,而extratree一般不采用隨機采樣,即每個決策樹采用原始訓練集。RF隨機選擇k個特征,然后會基于信息增益,基尼系數,均方差來選擇一個最優(yōu)的特征值進行劃分。而Extratree則是隨機地選擇一個特征值來進行劃分。隨機森林的變種-ExtraTree隨機森林屬于有監(jiān)督學習算法的范疇,與其他算法相比存在如下幾方面的區(qū)別:與線性回歸類算法相比,隨機森林算法采用的是折線擬合的方式,其本質在于屬性空間拆分,因此當樹足夠多時,其訓練數據擬合效果會比較好,同時由于樣本和屬性選擇的隨機性,以及類別權重控制,對于處理傾斜數據存在一定效果,而由于其本身主要的關注點在于樣本本身,當訓練數據與實際數據存在分布差異時,效果會有所下降。與最近鄰算法和貝葉斯算法相比,決策樹類算法專注的是類別邊界的求取,與概率和距離類算法區(qū)分類別差異性存在較大的區(qū)別,在面對樣本類別分不均勻問題的時,前者表現(xiàn)會較好,而后者極易受到多占比樣本的影響,從而喪失對小樣本的區(qū)分能力。綜上所述,當處理實際有監(jiān)督分類問題時,當離散屬性占比較多,樣本分布不均勻時,推薦使用隨機森林算法。與其他監(jiān)督學習算法對比集成學習Bagging隨機森林隨機森林的scikit-learn實現(xiàn)應用案例由于隨機森林屬于集成學習算法的范疇,因此隨機森林被放置在scikit-learn的sklearn.ensemble包中,其包含兩種實現(xiàn)方式,分別是:RandomForestClassifier和RandomForestRegressor,而Extra

Tree的方法分別是:ExtraTreesClassifier和ExtraTreesRegressor。隨機森林調用方式如下:fromsklearn.ensembleimportRandomForestClassifierfromsklearn.ensembleimportRandomForestRegressorextra

tree算法的調用方式如下:fromsklearn.ensembleimportExtraTreesClassifierfromsklearn.ensembleimportExtraTreesRegressor隨機森林的scikit-learn實現(xiàn)超參數:在機器學習中,超參數是在開始學習過程之前設置值的參數,而不是通過訓練得到的參數數據。通常情況下,需要對超參數進行優(yōu)化,給學習機選擇一組最優(yōu)超參數,以提高學習的性能和效果。隨機森林常用超參數分別是:max_features:尋找最佳分裂點時考慮的屬性數目隨機森林允許單個決策樹使用特征的最大數量。用于構造不同類型的樹,增強模型的泛化能力,取值有:Auto/None,sqrt等;n_estimators:森林中樹的個數。主要用于提升模型的復雜度,從而提升模型預測的準確性;max_depth:樹的最大深度,約束單顆樹的復雜度,防止過擬合,integer或者None;min_samples_split:分裂內部節(jié)點需要的最少樣例數。應用于約束模型樹的生長;min_samples_leaf:葉子節(jié)點上應有的最少樣例數。對樹進行剪枝處理,防止過擬合;class_weight:

“banlanced”模式是根據y標簽值自動調整權值與輸入數據的類頻率成反比,計算公式是:n_samples/(n_classes

np.bincount(y)).用于處理傾斜數據集;criterion:切分策略:gini或者entropy,默認是gini,與樹相關。隨機森林的scikit-learn實現(xiàn)–超參數最重要的兩個參數n_estimators:森林中樹的數量,初始越多越好,但是會增加訓練時間,到達一定數量后模型的表現(xiàn)不會再有顯著的提升。max_features:各個基學習器進行切分時隨機挑選的特征子集中的特征數目,數目越小模型整體的方差會越小,但是單模型的偏差也會上升,經驗性的設置回歸問題的max_features為整體特征數目,而分類問題則設為整體特征數目開方的結果。隨機森林的scikit-learn主要優(yōu)化參數模型主要輸出參數:predict(X):返回輸入樣本的預測類別,返回類別為各個樹預測概率均值的最大值;predict_proba(X):返回輸入樣本X屬于某一類別的概率,通過計算隨機森林中各樹對于輸入樣本的平均預測概率得到,每棵樹輸出的概率由葉節(jié)點中類別的占比得到;score(X,y):返回預測的平均準確率。特征重要性評估:feature_importances_:一棵樹中的特征的排序(比如深度)可以用來作為特征相對重要性的一個評估,居于樹頂端的特征相對而言對于最終樣本的劃分貢獻最大(經過該特征劃分所涉及的樣本比重最大),這樣可以通過對比各個特征所劃分的樣本比重的一個期望值來評估特征的相對重要性,可以用于特征選擇。隨機森林的scikit-learn主要輸出參數集成學習Bagging隨機森林隨機森林的scikit-learn實現(xiàn)應用案例本案例旨在通過鳶尾花卉的表征特征,從而實現(xiàn)花卉的識別和區(qū)分。Iris數據集是機器學習任務中常用的分類實驗數據集,由Fisher在1936收集整理。Iris中文名是安德森鳶尾花卉數據集,是一類多重變量分析的數據集。應用案例-背景介紹Iris一共包含150個樣本,分為3類,每類50個數據,每個數據包含4個屬性??赏ㄟ^花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬于(Setosa,Versicolour,Virginica)三個種類中的哪一類。Id:鳶尾花編號SepaLengthCm:

花萼長度,單位cmSepalWidthCm:

花萼寬度,

溫馨提示

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

評論

0/150

提交評論