sklearn.ansamblu.RandomForestRegressor
clasa sklearn.ensemble.
RandomForestRegressor
(n_estimators=100, *, criterion=’mse’, 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, Ccp_alpha=0.0, max_samples=None) un regresor forestier aleatoriu.
o pădure aleatorie este un meta estimator care se potrivește unui număr de arbori de clasificare pe diferite sub-eșantioane ale setului de date și utilizează media pentru a îmbunătăți precizia predictivă și controlul supra-potrivirii.Dimensiunea sub-eșantionului este controlată cu parametrulmax_samples
dacăbootstrap=True
(implicit), altfel întregul set de date este utilizat pentru a construi fiecare arbore.
citiți mai multe în Ghidul utilizatorului.
parametrii n_estimatorsint, default = 100
Numărul de copaci din pădure.
schimbat în versiunea 0.22: Valoarea implicită a n_estimators
schimbat de la 10 la 100în 0.22.
criteriul{„MSE”, „mae”}, default=”mse”
funcția de măsurare a calității unei împărțiri. Criteriile suportate sunt ” mse „pentru eroarea medie pătrată, care este egală cu variancereduction ca criteriu de selecție a caracteristicilor și” mae ” pentru eroarea meanabsolute.
nou în versiunea 0.18: criteriul mean Absolute Error (MAE).
max_depthint, default=None
adâncimea maximă a arborelui. Dacă nu există, atunci nodurile sunt extinse până latoate frunzele sunt pure sau până când toate frunzele conțin mai puțin de eșantioane min_samples_split.
min_samples_splitint sau float, default=2
numărul minim de eșantioane necesare pentru a împărți un nod intern:
-
dacă int, atunci luați în considerare
min_samples_split
ca număr minim. -
dacă float, apoi
min_samples_split
este o fracție șiceil(min_samples_split * n_samples)
Sunt numărul minim de probe pentru fiecare divizat.
schimbat în versiunea 0.18: adăugat valori float pentru fracții.
min_samples_leafint sau float, default=1
numărul minim de eșantioane necesare pentru a fi la un nod de frunze.Un punct divizat la orice adâncime va fi luat în considerare numai dacă lasă atleast min_samples_leaf
probe de antrenament în fiecare dintre ramurile stângi și drepte. Acest lucru poate avea ca efect netezirea modelului,în special în regresie.
-
dacă int, atunci luați în considerare
min_samples_leaf
ca număr minim. -
dacă float, atunci
min_samples_leaf
este o fracție șiceil(min_samples_leaf * n_samples)
Sunt numărul minim de probe pentru fiecare nod.
schimbat în versiunea 0.18: adăugat valori float pentru fracții.
min_weight_fraction_leafloat, default=0.0
fracția ponderată minimă din suma totală a greutăților (a tuturor eșantioanelor de intrare) necesare pentru a fi la un nod de frunze. Probele au o greutate egală atunci când sample_weight nu este furnizat.
max_features{„auto”, „sqrt”, „log2″}, int sau float, default=”auto”
numărul de caracteristici de luat în considerare atunci când căutați cea mai bună împărțire:
-
dacă int, atunci luați în considerare
max_features
caracteristici la fiecare împărțire. -
dacă float, apoi
max_features
este o fracțiune șiround(max_features * n_features)
caracteristici sunt luate în considerare la fiecaresplit. -
Dacă „auto”, atunci
max_features=n_features
. -
dacă „sqrt”, atunci
max_features=sqrt(n_features)
. -
dacă „log2”, atunci
max_features=log2(n_features)
. -
dacă nu, atunci
max_features=n_features
.
notă: căutarea unei împărțiri nu se oprește până când nu se găsește cel puțin o partiție validă a eșantioanelor nodului, chiar dacă necesită inspectarea eficientă a mai multor caracteristici max_features
.
max_leaf_nodesint, default=None
cresc copaci cumax_leaf_nodes
în cel mai bun mod.Cele mai bune noduri sunt definite ca o reducere relativă a impurității.Dacă nici unul, atunci număr nelimitat de noduri de frunze.
min_impurity_decreasefloat, default=0.0
un nod va fi împărțit dacă această împărțire induce o scădere a impuritygreater mai mare sau egală cu această valoare.
ecuația ponderată de scădere a impurității este următoarea:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
undeN
este numărul total de eșantioane,N_t
este numărul de eșantioane la nodul curent,N_t_L
este numărul de eșantioane din copilul din stânga șiN_t_R
este numărul de eșantioane din copilul potrivit.
N
N_t
N_t_R
și N_t_L
toate se referă la suma ponderată,dacă sample_weight
este trecut.
nou în versiunea 0.19.
min_impurity_splitfloat, default=None
prag pentru oprirea timpurie a creșterii copacilor. Un nod se va despărțidacă impuritatea sa este deasupra pragului, altfel este o frunză.
depreciat de la versiunea 0.19:min_impurity_split
a fost depreciat în favoareamin_impurity_decrease
în 0.19. Valoarea implicită amin_impurity_split
s-a schimbat de la 1e-7 la 0 în 0.23 și va fi eliminată în 1.0 (redenumirea 0.25).Utilizați min_impurity_decrease
în schimb.
bootstrapbool, default=True
dacă probele bootstrap sunt utilizate la construirea copacilor. Dacă este fals, întregul set de date este folosit pentru a construi fiecare copac.
oob_scorebool, default=False
dacă să folosească probe out-of-bag pentru a estima R^2 pe date nevăzute.
n_jobsint, default=None
Numărul de locuri de muncă pentru a rula în paralel. fit
predict
decision_path
and apply
are all parallelized over thetrees. None
means 1 unless in a joblib.parallel_backend
context. -1
means using all processors. See Glossary for more details.
random_stateint, RandomState instance sau None, default=None
controlează atât randomitatea bootstrapping-ului probelor utilizate la construirea copacilor (ifbootstrap=True
), cât și eșantionarea caracteristicilor de luat în considerare atunci când căutați cea mai bună împărțire la fiecare nod(ifmax_features < n_features
).Consultați Glosarul pentru detalii.
verboseint, default=0
controlează verbosity atunci când montarea și prezicerea.
warm_startbool, default=False
când este setat laTrue
, reutilizați soluția apelului anterior pentru a se potriviși adăugați mai mulți estimatori la ansamblu, altfel, potriviți doar o pădure nouă. Vezi Glosarul.
ccp_alphanon-float negativ, default=0,0
parametru de complexitate utilizat pentru tăierea Cost-complexitate minimă. Thesubtree cu cea mai mare complexitate de cost, care este mai mică decâtccp_alpha
va fi ales. În mod implicit, nu se efectuează tăierea. SeeMinimal cost-complexitate tăiere pentru detalii.
nou în versiunea 0.22.
max_samplesint sau float, default=None
dacă bootstrap este adevărat, numărul de probe pentru a trage de la xpentru a instrui fiecare estimator de bază.
-
dacă nici unul (implicit), apoi trage
X.shape
probe. -
dacă int, apoi trage
max_samples
probe. -
dacă float, apoi trage
max_samples * X.shape
probe. Astfel,max_samples
ar trebui să fie în intervalul(0, 1)
.
nou în versiunea 0.22.
atribute base_estimator_DecisionTreeRegressor
șablonul estimator copil folosit pentru a crea colecția de fittedsub-estimatori.
estimators_list de DecisionTreeRegressor
colectarea de sub-estimatori montate.
feature_importances_
ndarray de formă (n_features,)
importances caracteristică pe bază de impuritate.
n_features_int
Numărul de caracteristici atunci cândfit
este efectuat.
n_outputs_int
Numărul de ieșiri atunci cândfit
este efectuat.
Oob_score_float
scorul setului de date de formare obținut folosind o estimare out-of-bag.Acest atribut există numai atunci când oob_score
este adevărat.
Oob_prediction_ndarray de formă (n_samples,)
predicție calculată cu estimare out-of-bag pe setul de formare.Acest atribut există numai atunci când oob_score
este adevărat.
a se vedea, de asemenea,
DecisionTreeRegressor
ExtraTreesRegressor
Note
Valorile implicite pentru parametrii care controlează dimensiunea arborilor(de exemplu, max_depth
min_samples_leaf
, etc.) duce la copaci complet crescuți și neprelucrați, care pot fi foarte mari pe unele seturi de date. Pentru a reduce consumul de memorie, complexitatea și dimensiunea arborilor ar trebui să fie controlate prin setarea acelor valori ale parametrilor.
caracteristicile sunt întotdeauna permutate aleatoriu la fiecare împărțire. Prin urmare, cea mai bună împărțire Găsită poate varia, chiar și cu aceleași date de antrenament,max_features=n_features
și bootstrap=False
, dacă îmbunătățirea criteriului este identică pentru mai multe împărțiri enumerate în timpul cercetării celei mai bune împărțiri. Pentru a obține un comportament determinist în timpul montării, random_state
trebuie fixat.
valoarea implicită max_features="auto"
folosește n_features
mai degrabă decât n_features / 3
. Acesta din urmă a fost sugerat inițial în, întrucât primul a fost mai recent justificată empiric în .
1
-
Breiman, „păduri aleatorii”, învățare automată, 45(1), 5-32, 2001.
2
P. Geurts, D. Ernst., și L. Wehenkel, „extrem de randomizedtrees”, învățare automată, 63(1), 3-42, 2006.
Examples
>>> from sklearn.ensemble import RandomForestRegressor>>> from sklearn.datasets import make_regression>>> X, y = make_regression(n_features=4, n_informative=2,... random_state=0, shuffle=False)>>> regr = RandomForestRegressor(max_depth=2, random_state=0)>>> regr.fit(X, y)RandomForestRegressor(...)>>> print(regr.predict(]))
Methods
|
Apply trees in the forest to X, return leaf indices. |
|
Return the decision path in the forest. |
|
Build a forest of trees from the training set (X, y). |
|
Get parameters for this estimator. |
|
Predict regression target for X. |
|
Return the coefficient of determination \(R^2\) of the prediction. |
|
Set the parameters of this estimator. |
apply
(X) XV
aplicați copacii din pădure la X, indicii frunzelor de întoarcere.
parametrii x{matrice asemănătoare, matrice rară} de formă (n_samples, n_features)
probele de intrare. Intern, dtype-ul său va fi convertit îndtype=np.float32
. Dacă este furnizată o matrice rară, aceasta va ficonvertit într-un csr_matrix
.
returnează x_leavesndarray de formă (n_samples, n_estimators)
pentru fiecare punct de date x în X și pentru fiecare copac din pădure,returnați indicele frunzei x se termină în.
decision_path
(X) XV
returnați calea de decizie în pădure.
nou în versiunea 0.18.
parametrii x{matrice-ca, matrice rar} de formă (n_samples, n_features)
probele de intrare. Intern, dtype-ul său va fi convertit îndtype=np.float32
. Dacă este furnizată o matrice rară, aceasta va ficonvertit într-un csr_matrix
.
returnează indicatorulsparse matrix of shape (n_samples, n_nodes)
returnează o matrice indicatoare de noduri unde elementele non zero indică faptul că eșantioanele trec prin noduri. Matricea este de CSRformat.
n_nodes_ptrndarray de formă (n_estimators + 1,)
coloanele din indicator:n_nodes_ptr]dă valoarea indicatorului pentru Estimatorul i-lea.
propertyfeature_importances_
importanțele caracteristicilor bazate pe impurități.
cu cât este mai mare, cu atât este mai importantă caracteristica.Importanța unei caracteristici este calculată ca reducerea totală (normalizată)a criteriului adus de acea caracteristică. Este, de asemenea, cunoscut sub numele de importanța Gini.
avertisment: importanțele caracteristicilor bazate pe impurități pot induce în eroare caracteristicile cardinalității ridicate (multe valori unice). A se vedeasklearn.inspection.permutation_importance
ca alternativă.
returnează feature_importances_ndarray de formă (n_features,)
Valorile acestei matrice se ridică la 1, cu excepția cazului în care toți copacii sunt nodetrees unice constând doar din nodul rădăcină, caz în care va fi anarray de zerouri.
fit
(X, y, sample_weight=None)
construiți o pădure de copaci din setul de antrenament (X, y).
parametrii x{matrice-ca, matrice rar} de formă (n_samples, n_features)
probele de intrare de formare. Pe plan intern, dtype-ul său va fi convertitla dtype=np.float32
. Dacă este furnizată o matrice rară, aceasta va ficonvertit într-un csc_matrix
.
yarray-ca de formă (n_samples,) sau (n_samples, n_outputs)
valorile țintă (etichete de clasă în clasificare, numere reale inregression).
sample_weightarray-ca de formă (n_samples,), default=None
greutăți eșantion. Dacă nu, atunci eșantioanele sunt ponderate în mod egal. Splitsthat ar crea noduri copil cu zero net sau greutate negativă suntignored în timp ce caută o divizare în fiecare nod. În cazul clasificării, divizările sunt, de asemenea, ignorate dacă ar duce la o singură clasă care să aibă o greutate negativă în oricare dintre nodurile copil.
returnează selfobjectget_params
(Deep=True)
obțineți parametrii pentru acest estimator.
parametrii deepbool, default=True
dacă True, va returna parametrii pentru acest estimator andcontained subobjects care sunt estimatori.
returnează paramsdict
numele parametrilor mapate la valorile lor.
predict
(X)
se prezice ținta de regresie pentru X.
ținta de regresie prezisă a unui eșantion de intrare este calculată ca țintă de regresie prezisă a copacilor din pădure.
parametrii x{matrice asemănătoare, matrice rară} de formă (n_samples, n_features)
probele de intrare. Intern, dtype-ul său va fi convertit îndtype=np.float32
. Dacă este furnizată o matrice rară, aceasta va ficonvertit într-un csr_matrix
.
returnează yndarray de formă (n_samples,) sau (n_samples, n_outputs)
valorile prezise.
score
(X, y, sample_weight=None)
se returnează coeficientul de determinare \(R^2\) al predicției.
coeficientul \(r^2\) este definit ca \((1 – \frac{u}{v})\),unde \(u\) este suma reziduală a pătratelor((y_true - y_pred)** 2).sum()
și \(v\) este suma totală a pătratelor((y_true -y_true.mean()) ** 2).sum()
. Cel mai bun scor posibil este 1.0 și acestapoate fi negativ (deoarece modelul poate fi arbitrar mai rău). Un model constant care prezice întotdeauna valoarea așteptată a y
,ignorând caracteristicile de intrare, ar obține un scor \(R^2\) of0.0.
parametrii xarray-ca de formă (n_samples, n_features)
probe de testare. Pentru unii estimatori acest lucru poate fi o matrice precomputedkernel sau o listă de obiecte generice în loc cu forma(n_samples, n_samples_fitted)
, unde n_samples_fitted
este numărul de probe utilizate în montarea pentru estimator.
yarray-ca de formă (n_samples,) sau (n_samples, n_outputs)
valori reale pentruX
.
sample_weightarray-ca de formă (n_samples,), default=None
greutăți eșantion.
returnează scorefloat
\(R^2\) de self.predict(X)
wrt. y
.
Note
scorul \(r^2\) utilizat la apelareascore
pe un regresor utilizeazămultioutput='uniform_average'
din versiunea 0.23 pentru a păstra consistentwith valoarea implicită ar2_score
.Aceasta influențează metodascore
a tuturor multioutputregresoarelor (cu excepțiaMultiOutputRegressor
).
set_params
(**params)
setați parametrii acestui estimator.
metoda funcționează atât pe estimatori simpli, cât și pe obiecte imbricate(cum ar fiPipeline
). Acestea din urmă au parametri de formă <component>__<parameter>
astfel încât este posibil să se actualizeze fiecare componentă a unui obiect imbricat.
parametri * * paramsdict
parametrii estimatorului.
returnează instanță selfestimator
instanță Estimator.