隨機森林對標準手寫資料集分類

2021-10-09 01:18:34 字數 2714 閱讀 8375

隨機森林,指的是利用多棵樹對樣本進行訓練並**的一種分類器,將許多棵決策樹整合成森林,並合起來用來**最終結果,可以用來做分類、回歸等問題。大多數情況下效果遠要比svm,log回歸,knn等演算法效果好。

1.從原始訓練集中隨機有放回取樣選出m個樣本,共進行n次取樣,生成n個訓練集

2.對於n個訓練集,我們分別訓練n個決策樹模型

3.對於單個決策樹模型,假設訓練樣本特徵的個數為n,那麼每次**時根據資訊增益/資訊增益比/基尼指數選擇最好的特徵進行**

4.每棵樹都一直這樣**下去,直到該節點的所有訓練樣例都屬於同一類。在決策樹的**過程中不需要剪枝

5.將生成的多棵決策樹組成隨機森林。對於分類問題,按多棵樹分類器投票決定最終分類結果,對於回歸問題,由多棵樹**值的均值決定最終**結果

具有極高的準確率

隨機性的引入,使得隨機森林不容易過擬合

隨機性的引入,使得隨機森林有很好的抗雜訊能力

能處理很高維度的資料,並且不用做特徵選擇

既能處理離散型資料,也能處理連續型資料,資料集無需規範化

訓練速度快,可以得到變數重要性排序

容易實現並行化

當隨機森林中的決策樹個數很多時,訓練時需要的空間和時間會較大

隨機森林模型還有許多不好解釋的地方,有點算個黑盒模型

from sklearn.ensemble import randomforestclassifier

data=[[0,0,0],[1,1,1],[2,2,2],[1,1,1],[2,2,2],[3,3,3],[1,1,1],[4,4,4]]

target=[0,1,2,1,2,3,1,4]

rf = randomforestclassifier()

rf.fit(data,target)

randomforestclassifier(bootstrap=true, class_weight=none, criterion='gini',

max_depth=none, max_features='auto', max_leaf_nodes=none,

min_samples_leaf=1, min_samples_split=2,

min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,

oob_score=false, random_state=none, verbose=0,

warm_start=false)

print(rf.predict_proba([[1,1,1]]))

#[[ 0. 1. 0. 0. 0.]]

#輸出是5個數,因為target有5個值

Python資料探勘 分類 隨機森林

1 import pandas 23 data pandas.read csv 4 d pdm 5.3 data.csv 5 67 dummycolumns gender parentencouragement 89for column in dummycolumns 10 data column ...

使用決策樹和隨機森林對資料分類

使用決策樹演算法和隨機森林演算法對income classification.csv的收入水平進行分類。訓練集和測試集的比例是7 3,選取適當的特徵列,使得針對測試樣本的分類準確率在80 以上,比較2種分類方法的準確率。資料說明 特徵列age 年齡,整數 workclass 工作性質,字串 educ...

LSTM對MNIST資料集做分類

rnn 從每張的第一行畫素讀到最後一行,然後再進行分類判斷.匯入資料 mnist input data.read data sets mnist data one hot true hyperparameters lr 0.001 learning rate training iters 10000...