您好,登錄后才能下訂單哦!
這篇文章主要介紹“sklearn隨機(jī)森林的參數(shù)有哪些”,在日常操作中,相信很多人在sklearn隨機(jī)森林的參數(shù)有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sklearn隨機(jī)森林的參數(shù)有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
隨機(jī)森林
隨機(jī)森林是一個元估計器,它適合數(shù)據(jù)集的各個子樣本上的多個決策樹分類器,并使用平均值來提高預(yù)測精度和控制過度擬合。子樣本大小始終與原始輸入樣本大小相同,但如果bootstrap = True(默認(rèn)值),則會使用替換來繪制樣本。
先看這個類的參數(shù):
class sklearn.ensemble.RandomForestClassifier(n_estimators=10, 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=1, random_state=None, verbose=0, warm_start=False, class_weight=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(max_depth=2, random_state=0)
clf.fit(X, y)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=2, max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=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=0, verbose=0, warm_start=False)
print(clf.feature_importances_)
[ 0.17287856 0.80608704 0.01884792 0.00218648]
print(clf.predict([[0, 0, 0, 0]]))
[1]
具體參數(shù)意義如下:
參數(shù):
n_estimators :森林里(決策)樹的數(shù)目
integer, optional (default=10) 整數(shù),可選擇(默認(rèn)值為10)
criterion : string, optional (default=”gini”) 字符串,可選擇(默認(rèn)值為“gini”)。
衡量分裂質(zhì)量的性能(函數(shù))。受支持的標(biāo)準(zhǔn)是基尼不純度的"gini",和信息增益的"entropy"(熵)。
注意:這個參數(shù)是特定樹的。
max_features : int, float, string or None, optional (default=”auto”) 整數(shù),浮點(diǎn)數(shù),字符串或者無值,可選的(默認(rèn)值為"auto")
尋找最佳分割時需要考慮的特征數(shù)目:
&如果是int,就要考慮每一次分割處的max_feature特征
&如果是float,那么max_features就是一個百分比,那么(max_feature*n_features)特征整數(shù)值是在每個分割處考慮的。
&如果是auto,那么max_features=sqrt(n_features),即n_features的平方根值。
&如果是log2,那么max_features=log2(n_features)
&如果是None,那么max_features=n_features
注意:尋找分割點(diǎn)不會停止,直到找到最少一個有效的節(jié)點(diǎn)劃分區(qū),即使它需要有效檢查超過max_features的特征。
max_depth : integer or None, optional (default=None) 整數(shù)或者無值,可選的(默認(rèn)為None)
(決策)樹的最大深度。如果值為None,那么會擴(kuò)展節(jié)點(diǎn),直到所有的葉子是純凈的,或者直到所有葉子包含少于min_sample_split的樣本。
min_samples_split : int, float, optional (default=2) 整數(shù),浮點(diǎn)數(shù),可選的(默認(rèn)值為2)
分割內(nèi)部節(jié)點(diǎn)所需要的最小樣本數(shù)量:
~如果為int,那么考慮min_samples_split作為最小的數(shù)字。
~如果為float,那么min_samples_split是一個百分比,并且把ceil(min_samples_split*n_samples)是每一個分割最小的樣本數(shù)量。
在版本0.18中更改:為百分比添加浮點(diǎn)值。
min_samples_leaf : int, float, optional (default=1) 整數(shù),浮點(diǎn)數(shù),可選的(默認(rèn)值為1)
需要在葉子結(jié)點(diǎn)上的最小樣本數(shù)量:
~如果為int,那么考慮min_samples_leaf作為最小的數(shù)字。
~如果為float,那么min_samples_leaf為一個百分比,并且ceil(min_samples_leaf*n_samples)是每一個節(jié)點(diǎn)的最小樣本數(shù)量。
在版本0.18中更改:為百分比添加浮點(diǎn)值。
min_weight_fraction_leaf : float, optional (default=0.) 浮點(diǎn)數(shù),可選的(默認(rèn)值是0.0)
一個葉子節(jié)點(diǎn)所需要的權(quán)重總和(所有的輸入樣本)的最小加權(quán)分?jǐn)?shù)。當(dāng)sample_weight沒有提供時,樣本具有相同的權(quán)重
max_leaf_nodes : int or None, optional (default=None) 整數(shù)或者無值,可選的(默認(rèn)值為None)
以最優(yōu)的方法使用max_leaf_nodes來生長樹。最好的節(jié)點(diǎn)被定義為不純度上的相對減少。如果為None,那么不限制葉子節(jié)點(diǎn)的數(shù)量。
min_impurity_split : float, 浮點(diǎn)數(shù)
樹早期生長的閾值。如果一個節(jié)點(diǎn)的不純度超過閾值那么這個節(jié)點(diǎn)將會分裂,否則它還是一片葉子。
min_impurity_decrease : float, optional (default=0.) 浮點(diǎn)數(shù),可選的(默認(rèn)值為0)
bootstrap : boolean, optional (default=True) 布爾值,可選的(默認(rèn)值為True)建立決策樹時,是否使用有放回抽樣。
oob_score : bool (default=False) bool,(默認(rèn)值為False)是否使用袋外樣本來估計泛化精度。
n_jobs : integer, optional (default=1) 整數(shù),可選的(默認(rèn)值為1)用于擬合和預(yù)測的并行運(yùn)行的工作(作業(yè))數(shù)量。如果值為-1,那么工作數(shù)量被設(shè)置為核的數(shù)量。
random_state : int, RandomState instance or None, optional (default=None) 整數(shù),RandomState實(shí)例,或者為None,可選(默認(rèn)值為None)RandomStateIf int,random_state是隨機(jī)數(shù)生成器使用的種子; 如果是RandomState實(shí)例,random_state就是隨機(jī)數(shù)生成器; 如果為None,則隨機(jī)數(shù)生成器是np.random使用的RandomState實(shí)例。
verbose : int, optional (default=0) 整數(shù),可選的(默認(rèn)值為0)控制決策樹建立過程的冗余度。
warm_start : bool, optional (default=False) 布爾值,可選的(默認(rèn)值為False)當(dāng)被設(shè)置為True時,重新使用之前呼叫的解決方案,用來給全體擬合和添加更多的估計器,反之,僅僅只是為了擬合一個全新的森林。
class_weight : dict, list of dicts, “balanced”, 字典,字典序列,"balanced"
屬性:
estimators_ : list of DecisionTreeClassifier 決策樹分類器的序列,擬合的子估計器的集合。
classes_ : array of shape = [n_classes] or a list of such arrays 數(shù)組維度=[n_classes]的數(shù)組或者一個這樣數(shù)組的序列。類別標(biāo)簽(單一輸出問題),或者類別標(biāo)簽的數(shù)組序列(多輸出問題)。
n_classes_ : int or list 整數(shù)或者序列,類別的數(shù)量(單輸出問題),或者一個序列,包含每一個輸出的類別數(shù)量(多輸出問題)
n_features_ : int 整數(shù),執(zhí)行擬合時的特征數(shù)量
n_outputs_ : int 整數(shù),執(zhí)行擬合時的輸出數(shù)量。
feature_importances_ : array of shape = [n_features] 維度等于n_features的數(shù)組,特征的重要性(值越高,特征越重要)
oob_score_ : float 浮點(diǎn)數(shù),使用袋外估計獲得的訓(xùn)練數(shù)據(jù)集的得分。
oob_decision_function_ : array of shape = [n_samples, n_classes] 維度=[n_samples,n_classes]的數(shù)組,在訓(xùn)練集上用袋外估計計算的決策函數(shù)。如果n_estimators很小的話,那么在有放回抽樣中,一個數(shù)據(jù)點(diǎn)也不會被忽略是可能的。在這種情況下,oob_decision_function_ 可能包括NaN。
注意點(diǎn):
參數(shù)的默認(rèn)值控制決策樹的大?。ɡ纾琺ax_depth,,min_samples_leaf等等),導(dǎo)致完全的生長和在某些數(shù)據(jù)集上可能非常大的未修剪的樹。為了降低內(nèi)容消耗,決策樹的復(fù)雜度和大小應(yīng)該通過設(shè)置這些參數(shù)值來控制。
這些特征總是在每個分割中隨機(jī)排列。 因此,即使使用相同的訓(xùn)練數(shù)據(jù),max_features = n_features和bootstrap = False,如果在搜索最佳分割期間所列舉的若干分割的準(zhǔn)則的改進(jìn)是相同的,那么找到的最佳分割點(diǎn)可能會不同。為了在擬合過程中獲得一個確定的行為,random_state將不得不被修正。
方法:
apply(X) Apply trees in the forest to X, return leaf indices.
decision_path(X) Return the decision path in the forest
fit(X, y[, sample_weight]) Build a forest of trees from the training set (X, y).
get_params([deep]) Get parameters for this estimator.
predict(X) Predict class for X.
predict_log_proba(X) Predict class log-probabilities for X.
predict_proba(X) Predict class probabilities for X.
score(X, y[, sample_weight]) Returns the mean accuracy on the given test data and labels.
set_params(**params) Set the parameters of this estimator.
到此,關(guān)于“sklearn隨機(jī)森林的參數(shù)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。