首頁人工智能技術(shù)資訊正文

隨機森林構(gòu)造有哪些步驟?隨機森林構(gòu)造案例

更新時間:2021-09-16 來源:黑馬程序員 瀏覽量:

在機器學習中,隨機森林是一個包含多個決策樹的分類器,并且其輸出的類別是由個別樹輸出的類別的眾數(shù)而定。

隨機森林 = Bagging + 決策樹

例如, 如果你訓練了5個樹, 其中有4個樹的結(jié)果是True, 1個樹的結(jié)果是False, 那么最終投票結(jié)果就是True隨機森林夠造過程中的關(guān)鍵步驟(M表示特征數(shù)目):

1)一次隨機選出一個樣本,有放回的抽樣,重復N次(有可能出現(xiàn)重復的樣本)

 2) 隨機去選出m個特征, m <<m,建立決策樹< p="">

思考

1.為什么要隨機抽樣訓練集?

如果不進行隨機抽樣,每棵樹的訓練集都一樣,那么最終訓練出的樹分類結(jié)果也是完全一樣的

2.為什么要有放回地抽樣?

如果不是有放回的抽樣,那么每棵樹的訓練樣本都是不同的,都是沒有交集的,這樣每棵樹都是“有偏的”,都是絕對“片面的”(當然這樣說可能不對),也就是說每棵樹訓練出來都是有很大的差異的;而隨機森林最后分類取決于多棵樹(弱分類器)的投票表決。

隨機森林api介紹

  • sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
    • n_estimators:integer,optional(default = 10)森林里的樹木數(shù)量120,200,300,500,800,1200
    • Criterion:string,可選(default =“gini”)分割特征的測量方法
    • max_depth:integer或None,可選(默認=無)樹的最大深度 5,8,15,25,30
    • max_features="auto”,每個決策樹的最大特征數(shù)量
      • If "auto", then max_features=sqrt(n_features).
      • If "sqrt", then max_features=sqrt(n_features)(same as "auto").
      • If "log2", then max_features=log2(n_features).
      • If None, then max_features=n_features.
    • bootstrap:boolean,optional(default = True)是否在構(gòu)建樹時使用放回抽樣
    • min_samples_split:節(jié)點劃分最少樣本數(shù)
    • min_samples_leaf:葉子節(jié)點的最小樣本數(shù)
  • 超參數(shù):n_estimator, max_depth, min_samples_split,min_samples_leaf
隨機森林預測案例

實例化隨機森林

# 隨機森林去進行預測
rf = RandomForestClassifier()

定義超參數(shù)的選擇列表

param = {"n_estimators": [120,200,300,500,800,1200], "max_depth": [5, 8, 15, 25, 30]}

使用GridSearchCV進行網(wǎng)格搜索

# 超參數(shù)調(diào)優(yōu)gc = GridSearchCV(rf, param_grid=param, cv=2)

gc.fit(x_train, y_train)

print("隨機森林預測的準確率為:", gc.score(x_test, y_test))

注意:

隨機森林的建立過程

樹的深度、樹的個數(shù)等需要進行超參數(shù)調(diào)優(yōu)






猜你喜歡:

機器學習中入門級必學的算法有哪些?

什么是ORB算法?【OpenCV教程】

為什么CNN對像素級別的分類很難?

圖像的角點是什么?

黑馬程序員ai人工智能開發(fā)課程

分享到:
在線咨詢 我要報名
和我們在線交談!