sklearn中的隨機森林


閱讀了Python的sklearn包中隨機森林的代碼實現,做了一些筆記。

sklearn中的隨機森林是基於RandomForestClassifier類實現的,它的原型是 class RandomForestClassifier(ForestClassifier) 繼承了一個抽象類ForestClassifier,也就是分類樹 RandomForestClassifier有若干個參數,下面我們一個個來看:

n_estimators 隨機森林中樹的個數 默認為10

criterion 每一次分裂的標准,有兩個可選項,默認的基尼系數("gini")和熵(“entropy”)

max_features 每一次生成樹時使用的特征數量,默認為“auto”。若為int則為對應的數量;若為float則對應n_estimators*max_features,即此時max_features對應的一個百分比;若為“auto”或“sqrt”,max_features=sqrt(總的特征數);若為“log2”,則為log2(總的特征數);若為None,則為總的特征數。

max_depth決策樹的最大深度,默認為None

min_samples_split每次分裂節點是最小的分裂個數,即最小被分裂為幾個,默認為2

min_samples_leaf若某一次分裂時一個葉子節點上的樣本數小於這個值,則會被剪枝,默認為1

max_leaf_nodes最大的葉子節點的個數,默認為None,如果不為None,max_depth參數將被忽略

min_weight_fraction_leaf


oob_score、bootstrap這個兩個參數決定是否使用out-of-bag進行誤差度量和是否使用bootstrap進行抽樣,默認都是False

n_jobs並行計算的個數,默認為1,若為-1,則選擇為cores的個數

random_state 默認使用np.random

verbose
Controls the verbosity of the tree building process.

warm_start 是否熱啟動,默認為True

class_weight權重 默認全為1

 首先把標簽和特征分離 

1 from sklearn.cross_validation import train_test_split 
2 feature_train, feature_test, target_train, target_test = train_test_split(feature, target, test_size=0.1, random_state=42)

主要的方法有 

1 model = RandomForestClassifier(n_estimators=1000) 
2 model.fit(feature_train , target_train) # 創建一個隨機森林 
3 predict=predict(Z) # 對新的樣本Z做預測 
4 score = model.score(feature_test , target_test) # 評估正確率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM