Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 7-3.隨機森林算法_第1頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 7-3.隨機森林算法_第2頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 7-3.隨機森林算法_第3頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 7-3.隨機森林算法_第4頁
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)課件 7-3.隨機森林算法_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章

集成學習與實現(xiàn)集成學習的概念Bagging算法隨機森林算法Boosting算法7.3隨機森林算法2隨機森林(randomforest,RF)算法是Bagging算法的一個擴展變體,其基學習器指定為決策樹,但在訓練過程中加入隨機屬性選擇,即在構(gòu)建單棵決策樹的過程中,隨機森林算法并不會利用子數(shù)據(jù)集中所有的特征屬性訓練決策樹模型,而是在樹的每個節(jié)點處從m個特征屬性中隨機挑選k個特征屬性(),一般按照節(jié)點基尼指數(shù)最小的原則從這k個特征屬性中選出一個,對節(jié)點進行分裂,讓這棵樹充分生長,不進行通常的剪枝操作。1.隨機森林算法的基本原理37.3隨機森林算法在隨機森林算法生成單棵決策樹的過程中,參數(shù)k控制了特征屬性的選取數(shù)量,若,則隨機森林中單棵決策樹的構(gòu)建與傳統(tǒng)的決策樹算法相同。一般情況下,推薦k的取值為。高手點撥7.3隨機森林算法4隨機森林模型往往具有很高的預測準確率,對異常值和噪聲具有很好的容忍度,且不容易出現(xiàn)過擬合現(xiàn)象。在實際應用中,隨機森林算法的優(yōu)點有:①構(gòu)建單棵決策樹時,選擇部分樣本及部分特征,能在一定程度上避免出現(xiàn)過擬合現(xiàn)象;②構(gòu)建單棵決策樹時,隨機選擇樣本及特征,使得模型具有很好的抗噪能力,性能穩(wěn)定;③能處理很高維度的數(shù)據(jù),并且不需要進行特征選擇和降維處理。隨機森林算法的缺點在于參數(shù)較復雜,模型訓練和預測速度較慢。1.隨機森林算法的基本原理57.3隨機森林算法Sklearn的ensemble模塊提供了RandomForestClassifier類和RandomForestRegressor類,分別用于實現(xiàn)隨機森林分類和回歸算法。在Sklearn中,可通過下面語句導入隨機森林算法模塊。fromsklearn.ensembleimportRandomForestClassifier #導入隨機森林分類模塊fromsklearn.ensembleimportRandomForestRegressor #導入隨機森林回歸模塊2.隨機森林算法的Sklearn實現(xiàn)6RandomForestClassifier類和RandomForestRegressor類都有如下幾個參數(shù)。(1)參數(shù)n_estimators用于設(shè)置要集成的決策樹的數(shù)量。(2)參數(shù)criterion用于設(shè)置特征屬性的評價標準,RandomForestsClassifier中參數(shù)criterion的取值有g(shù)ini和entronpy,gini表示基尼指數(shù),entronpy表示信息增益,默認值為gini;RandomForestsRegressor中criterion的取值有mse和mae,mse表示均方差,mae表示平均絕對誤差,默認值為mse。(3)參數(shù)max_features用于設(shè)置允許單棵決策樹使用特征的最大值。(4)參數(shù)random_state表示隨機種子,用于控制隨機模式,當random_state取某一個值時,即可確定一種規(guī)則。7.3隨機森林算法2.隨機森林算法的Sklearn實現(xiàn)7【例7-2】使用隨機森林算法對Sklearn自帶的鳶尾花數(shù)據(jù)集進行分類。使用隨機森林算法對鳶尾花數(shù)據(jù)集進行分類的步驟如下。(1)使用隨機森林算法訓練模型,并輸出模型的預測準確率?!境绦蚍治觥?.3隨機森林算法2.隨機森林算法的Sklearn實現(xiàn)8程序運行結(jié)果如圖5所示?!具\行結(jié)果】7.3隨機森林算法圖5隨機森林模型的預測準確率2.隨機森林算法的Sklearn實現(xiàn)【參考代碼】

fromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportaccuracy_scoreimportmatplotlib.pyplotaspltfrommatplotlib.colorsimportListedColormapimportnumpyasnp#拆分數(shù)據(jù)集x,y=load_iris().data[:,2:4],load_iris().targetx_train,x_test,y_train,y_test=train_test_split(x,y,random_state=0,test_size=50)#訓練模型model=RandomForestClassifier(n_estimators=10,random_state=0)model.fit(x_train,y_train)#評估模型pred=model.predict(x_test)ac=accuracy_score(y_test,pred)print("隨機森林模型的預測準確率:",ac)9程序運行結(jié)果如圖6所示??梢姡S機森林模型可有效地對樣本數(shù)據(jù)進行分類?!具\行結(jié)果】7.3隨機森林算法(2)使用Matplotlib繪制圖形,顯示模型的分類效果。圖6隨機森林模型分類效果2.隨機森林算法的Sklearn實現(xiàn)【參考代碼】

x1,x2=np.meshgrid(np.linspace(0,8,500),np.linspace(0,3,500))x_new=np.stack((x1.flat,x2.flat),axis=1)y_predict=model.predict(x_new)y_hat=y_predict.reshape(x1.shape)iris_cmap=ListedColormap(["#ACC6C0","#FF8080","#A0A0FF"])plt.pcolormesh(x1,x2,y_hat,cmap=iris_cmap)#繪制3種類別鳶尾花的樣本點plt.scatter(x[y==0,0],x[y==0,1],s=30,c='g',marker='^')plt.scatter(x[y==1,0],x[y==1,1],s=30,c='r',marker='o')plt.scatter(x[y=

溫馨提示

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

評論

0/150

提交評論