和決策樹模型類似,scikit-learn中的隨機森林模型也提供了基於普通decision tree的random forest學習器和基於隨機化extra tree的extratrees學習器。
鑑於decision tree和extra tree差別甚小,本文以random forest為例進行介紹。
1. 模型的主要引數
在random forest中,存在兩大型別的引數,分別為框架引數和單棵決策樹引數
其中,單棵決策樹引數參照先前介紹的決策樹模型,而框架引數包括:
模型引數
parameter含義
randomforestclassifier
randomforestregressor
n_estimators
子樹數量
隨機森林中決策樹的數量,其值越大模型的表現越優秀,但計算量也越大
bootstrap
有無放回取樣
預設為true,即採用有放回式取樣,從而可以不劃分驗證集,用這些袋外資料進行驗證(見引數oob_score)。而在extratrees中該值預設為false,即選取全量樣本進行訓練。
oob_score
袋外評分
即是否採用袋外資料進行模型的驗證評估,預設為true。
2. 模型的主要方法
模型方法
含義備註
fit模型訓練
支援decison tree中的sample_weight引數
predict
**結果
返回綜合各子決策樹結果後的分類值或者回歸值,分類值為比重最高的分類,回歸值為葉子節點均值的平均值
predict_proba
分類**概率值
僅在classifier中有該方法,返回各分類的概率值
predict_log_proba
分類**對數值
僅在classifier中有該方法,返回各分類的對數概率值
3. 模型的主要屬性
模型屬性
含義備註
estimators_
估計器列表
返回由n_estimators個子決策樹構成的列表
classes_
樣本分類結果
適用於classifer的單分類結果,返回各樣本的分類**值
n_classes_
樣本分類結果
適用於classifer的多分類結果,返回各樣本的多分類**值
feature_importances_
特徵權重
基於gini數得到各特徵的特徵重要性
oob_score_
含義袋外資料的總的評估結果
oob_decision_function_
含義每個袋外資料的評估結果
注意,相較於單棵決策樹的feature_importances_,隨機森林模型中的feature_importances_是對各子決策樹結果的平均。
4. 模型的視覺化
不同於單棵決策樹可以進行有效的視覺化,隨機森林模型由於子學習器眾多,因此無法進行有效的視覺化。即使可以對其中的每棵決策樹進行單獨的視覺化,但考慮到隨機性的影響,意義並不大。
5. 模型的調參
(1)調整n_estimators引數
(2)按照決策樹模型的調參順序進行調整,詳見決策樹模型。
scikit learn 隨機森林
在隨機森林中,集合中的每棵樹都是根據訓練集中的替換樣本 即引導樣本 構建的。此外,在樹的構造過程中拆分每個節點時,可以從所有輸入要素或size的隨機子集中找到最佳拆分 max features。這兩個隨機性 的目的是減少森林估計量的方差。實際上,單個決策樹通常表現出較高的方差並且傾向於過度擬合。森林...
scikit learn 中的隨機梯度下降法
def fit sgd self,x train,y train,n iters 5,t0 5,t1 50 根據訓練資料集x train,y train,使用梯度下降法訓練linear regression模型 assert x train.shape 0 y train.shape 0 the s...
《scikit learn》隨機森林之回歸
今天我們學習下隨機森林做回歸的用法 話不多說直接上測試 看的更加清晰,總體上和回歸樹是一樣的使用流程 from sklearn.datasets import load boston from sklearn.model selection import cross val score from s...