機器學習 隨機森林原理及應用

2021-10-24 15:30:07 字數 2217 閱讀 1370

隨機森林是一種整合學習的方法,它的最終結果取決於多課決策樹的投票結果。

對於分類問題,直觀來講就是對乙個資料集合構造很多棵決策樹,然後對於新樣本每一棵決策樹都會輸出乙個結果,最後選擇多棵決策樹中輸出類別最多的結果作為最終的輸出結果。這也就是隨機森林中森林的含義。

這也是隨機森林最重要的一點,隨機森林的隨機主要體現在兩方面:

python的sklearn庫中自帶有隨機森林的函式,可通過from sklearn.ensemble import randomforestclassifier載入

1.隨機森林框架引數

n_estimators:對原始資料集進行有放回抽樣生成的子資料集個數,即決策樹的個數。若n_estimators太小容易欠擬合,太大不能顯著的提公升模型,所以n_estimators選擇適中的數值,版本0.20的預設值是10,版本0.22的預設值是100 。

bootstrp:是否對樣本集進行有放回抽樣來構建樹,true表示是,預設值true

oob_score:是否採用袋外樣本來評估模型的好壞,true代表是,預設值false

rf框架的引數很少,框架引數擇優一般是調節n_estimators值,即決策樹個數。

2.隨機森林中決策樹引數含義

max_features:構建決策樹最優模型時考慮的最大特徵數。預設是auto,則max_features = sqrt(n_features)

若為log2,則max_features = log2(n_features)

若為sqrt,則max_features = sqrt(n_features)與auto一樣;

若為int型別的n,則max_features = n

若為float型別的n,則max_features =int(n * n_features)

若為none,則max_features =n_features

max_depth:決策樹最大深度。若等於none,表示決策樹在構建最優模型的時候不會限制子樹的深度。如果模型樣本量多,特徵也多的情況下,推薦限制最大深度;若樣本量少或者特徵少,則不限制最大深度。

min_samples_leaf:葉子節點含有的最少樣本。如果是int,則將min_samples_leaf作為最小值。如果是float,則min_samples_leaf為百分比,min_samples_leaf * n_samples是最小值。

min_samples_split:節點可分的最小樣本數,預設值是2。整數型和浮點型的含義與min_samples_leaf類似。

max_leaf_nodes:最大葉子節點數。int設定節點數,none表示對葉子節點數沒有限制。

min_impurity_decrease:float型別,節點劃分的最小不純度。假設不純度用資訊增益表示,若某節點劃分時的資訊增益大於等於min_impurity_decrease,那麼該節點還可以再劃分;反之,則不能劃分。

criterion:表示節點的劃分標準。不純度標準參考gini指數,資訊增益標準參考entrop熵。

min_samples_leaf:葉子節點最小的樣本權重和。葉子節點如果小於這個值,則會和兄弟節點一起被剪枝,只保留該葉子節點的父節點。預設是0,則不考慮樣本權重問題。一般來說,如果有較多樣本的缺失值或偏差很大,則嘗試設定該引數值。

參見利用sklearn實現dataframe資料的分類回歸**,以及對**結果進行評價。

隨機森林演算法原理 機器學習演算法 隨機森林

隨機森林是一種通用的機器學習方法,能夠處理回歸和分類問題。它還負責資料降維 缺失值處理 離群值處理以及資料分析的其他步驟。它是一種整合學習方法,將一組一般的模型組合成乙個強大的模型 我們通過適用隨機的方式從資料中抽取樣本和特徵值,訓練多個不同的決策樹,形成森林。為了根據屬性對新物件進行分類,每個數都...

應用機器學習(七) 隨機森林

隨機森林 random forest 是一種用於分類 回歸等任務的整合學習方法。對於分類任務,它在訓練時構建多棵決策樹,輸出這些樹的分類結果的眾數 mode 即,將大多數樹的分類結果作為最終的結果。這樣,隨機森林修正了單棵決策樹過度擬合訓練集的傾向。對於詳細的決策樹學習理論,請參考應用機器學習 第七...

spark 機器學習 隨機森林 原理 一

1.什麼是隨機森林 顧名思義,是用隨機的方式建立乙個森 森林裡面有很多的決策樹組成,隨機森林的每一棵決 策樹之間是沒有關聯的。在得到森 之後,當有乙個新的輸入樣本進入的時候,就讓森 中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類 對於分類演算法 然後看看哪一 類被選擇最多,就 這個樣本...