這一節,我們來聊聊隨機森林演算法,雖然我對這些演算法的理解也不是很深,但還是決定寫一寫。首先,整合演算法是指多種演算法的集合,因為單一的演算法在處理某種問題時,可能會有所限制,整合演算法會綜合多種演算法的結果,得到乙個均值,效果往往會比單一演算法好一些。
前面我們討論過決策樹,那隨機森林就不難理解,它是由多個決策樹組合而成的,可以是1棵樹,10棵樹,100棵樹,甚至上千棵樹。前面我們了解了決策樹的構造過程,那麼隨機森林就是構造很多棵決策樹,每棵決策樹各不相同。那麼如何保證構造出來的每棵決策樹都不一樣呢?這就要使用不同的資料或不同的特徵去構造每一棵樹,我們可以從原始資料集中按照一定比例隨機選擇資料或特徵去構造決策樹。假設我有10個樣本資料,每個樣本資料又有5個特徵,那麼我在構造決策樹時可以每次隨機使用60%的樣本資料或特徵。
這個演算法沒有數學公式上的推理,理解起來還是比較容易的,就是決策樹的組合。
隨機森林演算法api文件
sklearn.ensemble.randomforestclassifier(n_estimators=』warn』, criterion=』gini』, max_depth=none,
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=』auto』,
max_leaf_nodes=none, min_impurity_decrease=0.0, min_impurity_split=none, bootstrap=true,
oob_score=false, n_jobs=none, random_state=none, verbose=0, warm_start=false, class_weight=none)
隨機森林演算法主要引數解釋
n_estimators:決策樹的個數,整型數值,可自己指定,預設值為10。
criterion:分類結點的選擇標準,可設定為基尼係數或熵,預設為基尼係數。
max_depth:樹的最大深度,可指定數值。
min_samples_split:最小可分割結點的樣本數,預設為2,整型或浮點型數值。
min_samples_leaf:葉子結點的最小樣本個數,預設為1,整型或浮點型數值。
max_leaf_nodes:整型值,可指定數值,預設為none,如果為none,則葉子結點可以有無限多個。
樣例演示
from sklearn.ensemble import randomforestclassifier
from sklearn.datasets import make_classification
#隨機生成一些資料供演算法使用
x,y = make_classification(n_samples = 1000,n_features = 4,n_informative = 2,
n_redundant = 0,random_state = 0,shuffle = false)
#引入隨機森林演算法並指定部分引數
clf = randomforestclassifier(n_estimators = 100,max_depth=2)
#訓練模型
clf.fit(x,y)
#使用clf對未知資料進行分類**
clf.predict([[1,2,3,4]])
[1]
隨機森林演算法的屬性
#展示各個屬性的重要程度
clf.feature_importances_
array([0.13155947, 0.78066644, 0.0375435 , 0.05023059])
擴充套件學習:前面我們使用過knn,邏輯回歸,決策樹演算法對鳶尾花資料集的做過分類處理,並得出了它們的**精度,這一節我們可以使用隨機森林演算法再做一次**,並比較隨機森林是否較決策樹演算法有效果提公升。 整合演算法(隨機森林) 知識整理
boosting模型 stacking模型 小結該方法不太適合,使用這種方法很難去隨機讓模型的泛化能力變強。具體介紹之後補充 該模型典型代表有adaboost,xgboost後者在以後哦的資料分析中具體說明。adaboost會根據前一次的分類效果調整資料的權重 最終結果 每個分類器根據自身的準確性來...
day3 整合演算法與隨機森林
目的是讓最終的結果越好 bagging 訓練多個分類器然後取平均 並行的訓練平行的分類器,比如隨機森林 f x 1m m 1 mfm x f x frac sum f m x f x m 1 m 1m fm x booting 從弱學習器開始強化,通過加權來進行訓練 f m x f m 1 argm...
整合學習 隨機森林
隨機森林 random forest,簡稱rf 是bagging的乙個擴充套件變體。bagging在1996年由beriman提出,作為並行式整合學習方法中最著名的代表,利用自助取樣法。可取樣出t個含m個訓練樣本的取樣集,然後基於每個取樣集訓練出乙個基學習器,再將這些基學習器進行結合。這就是bagg...