sklearn.ensemble.RandomForestRegressor¶
classsklearn.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 régresseur de forêt aléatoire.
Une forêt aléatoire est un méta-estimateur qui s’adapte à un certain nombre d’arbres de classification sur divers sous-échantillons de l’ensemble de données et utilise la moyenne pour améliorer la précision prédictive et le contrôle du surajustement.La taille du sous-échantillon est contrôlée avec le paramètre max_samples
si bootstrap=True
(par défaut), sinon l’ensemble des données est utilisé pour construire chaque arborescence.
En savoir plus dans le Guide de l’utilisateur.
Paramètres n_estimatorsint, par défaut = 100
Le nombre d’arbres dans la forêt.
Modifié dans la version 0.22: La valeur par défaut de n_estimators
est passée de 10 à 100 en 0,22.
criterion {« mse », »mae »}, default= »mse »
La fonction pour mesurer la qualité d’une division. Les critères pris en charge sont « mse » pour l’erreur quadratique moyenne, qui est égale à variancereduction comme critère de sélection d’entités, et « mae » pour l’erreur absolue moyenne.
Nouveau dans la version 0.18 : Critère d’erreur absolue moyenne (MAE).
max_depthint, default=None
La profondeur maximale de l’arbre. Si Aucun, les nœuds sont développés jusqu’à ce que toutes les feuilles soient pures ou jusqu’à ce que toutes les feuilles contiennent moins d’échantillons min_samples_split.
min_samples_splitint ou float, default=2
Le nombre minimum d’échantillons requis pour diviser un nœud interne :
-
Si int, alors considérez
min_samples_split
comme le nombre minimum. -
Si float, alors
min_samples_split
est une fraction etceil(min_samples_split * n_samples)
sont le nombre minimal d’échantillons pour chaque division.
Modifié dans la version 0.18 : Ajout de valeurs flottantes pour les fractions.
min_samples_leafint ou float, par défaut = 1
Le nombre minimum d’échantillons requis pour être au niveau d’un nœud feuille.Un point de division à n’importe quelle profondeur ne sera considéré que s’il laisse au moins des échantillons d’entraînement min_samples_leaf
dans chacune des branches gauche et droite. Cela peut avoir pour effet de lisser le modèle, en particulier en régression.
-
Si int, alors considérez
min_samples_leaf
comme le nombre minimum. -
Si float, alors
min_samples_leaf
est une fraction etceil(min_samples_leaf * n_samples)
sont le nombre minimal d’échantillons pour chaque nœud.
Modifié dans la version 0.18 : Ajout de valeurs flottantes pour les fractions.
min_weight_fraction_leaffloat, default = 0.0
La fraction pondérée minimale de la somme totale des poids (de tous les échantillons d’entrée) requise pour être à un nœud feuille. Les échantillons ont un poids égal lorsque sample_weight n’est pas fourni.
max_features {« auto », « sqrt », « log2″}, int ou float, default= »auto »
Le nombre d’entités à considérer lors de la recherche de la meilleure division :
-
Si int, alors considérez
max_features
caractéristiques à chaque division. -
Si float, alors
max_features
est une fraction etround(max_features * n_features)
les caractéristiques sont considérées à chaque division. -
Si « auto », alors
max_features=n_features
. -
Si « sqrt », alors
max_features=sqrt(n_features)
. -
Si « log2 », alors
max_features=log2(n_features)
. -
Si aucun, alors
max_features=n_features
.
Remarque: la recherche d’une division ne s’arrête pas tant qu’au moins une partition unique des échantillons de nœuds n’est pas trouvée, même si elle nécessite d’inspecter efficacement plus de fonctionnalités max_features
.
max_leaf_nodesint, default=None
Cultivez des arbres avec max_leaf_nodes
en mode best-first.Les meilleurs nœuds sont définis comme une réduction relative de l’impureté.Si Aucun, alors nombre illimité de nœuds feuilles.
min_impurity_decreasefloat, default=0.0
Un nœud sera divisé si cette division induit une diminution de l’impureté supérieure ou égale à cette valeur.
L’équation de diminution pondérée des impuretés est la suivante:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
où N
est le nombre total d’échantillons, N_t
est le nombre d’échantillons à le nœud actuel, N_t_L
est le nombre d’échantillons dans l’enfant gauche, et N_t_R
est le nombre d’échantillons dans le bon enfant.
N
N_t
N_t_R
et N_t_L
tous se réfèrent à la somme pondérée, si sample_weight
est passé.
Nouveau dans la version 0.19.
min_impurity_splitfloat, default=None
Seuil d’arrêt précoce de la croissance des arbres. Un nœud va diviser son impureté est au-dessus du seuil, sinon c’est une feuille.
Obsolète depuis la version 0.19 : min_impurity_split
a été obsolète en faveur de min_impurity_decrease
en 0.19. La valeur par défaut de min_impurity_split
est passée de 1e-7 à 0 en 0.23 et elle sera supprimée en 1.0 (changement de nom de 0.25).Utilisez min_impurity_decrease
à la place.
bootstrapbool, default=True
Si des échantillons d’amorçage sont utilisés lors de la construction d’arbres. Si False, le jeu de données entier est utilisé pour construire chaque arbre.
oob_scorebool, default=False
indique s’il faut utiliser des échantillons hors sac pour estimer R^2 sur des données invisibles.
n_jobsint, default=None
Le nombre de tâches à exécuter en parallèle. 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 ou None, default=None
Contrôle à la fois le caractère aléatoire de l’amorçage des échantillons utilisés lors de la construction des arbres (if bootstrap=True
) et l’échantillonnage des caractéristiques à prendre en compte lors de la recherche de la meilleure division à chaque nœud (if max_features < n_features
).Voir le glossaire pour plus de détails.
verboseint, default=0
Contrôle la verbosité lors de l’ajustement et de la prédiction.
warm_startbool, default=False
Lorsqu’il est défini sur True
, réutilisez la solution de l’appel précédent pour ajuster et ajoutez plus d’estimateurs à l’ensemble, sinon, ajustez simplement une forêt entière. Voir le Glossaire.
ccp_alphanon – float négatif, valeur par défaut = 0,0
Paramètre de complexité utilisé pour un Élagage Coût-Complexité minimal. Le sous-arbre avec la plus grande complexité de coût qui est inférieur à ccp_alpha
sera choisi. Par défaut, aucun élagage n’est effectué. Taille de coût-Complexité apparente pour plus de détails.
Nouveau dans la version 0.22.
max_samplesint ou float, default=None
Si bootstrap vaut True, le nombre d’échantillons à tirer de Xto entraîne chaque estimateur de base.
-
Si Aucun (par défaut), puis dessinez des échantillons
X.shape
. -
Si int, puis dessinez des échantillons
max_samples
. -
Si float, puis dessinez des échantillons
max_samples * X.shape
. Ainsi,max_samples
doit être dans l’intervalle(0, 1)
.
Nouveau dans la version 0.22.
Attributs base_estimator_DecisionTreeRegressor
Le modèle d’estimateur enfant utilisé pour créer la collection d’estimateurs fittedsub.
estimators_list of DecisionTreeRegressor
La collection de sous-estimateurs ajustés.
feature_importances_
ndarray of shape(n_features,)
Les importances des caractéristiques basées sur les impuretés.
n_features_int
Le nombre d’entités lorsque fit
est exécuté.
n_outputs_int
Le nombre de sorties lorsque fit
est exécuté.
oob_score_float
Score de l’ensemble de données d’entraînement obtenu à l’aide d’une estimation hors sac.Cet attribut n’existe que lorsque oob_score
vaut True.
oob_prediction_ndarray of shape(n_samples,)
Prédiction calculée avec une estimation hors sac sur l’ensemble d’entraînement.Cet attribut n’existe que lorsque oob_score
vaut True.
Voir aussi
DecisionTreeRegressor
ExtraTreesRegressor
Notes
Les valeurs par défaut pour les paramètres contrôlant la taille des arbres (par exemple max_depth
min_samples_leaf
, etc.) conduisent à des arbres entièrement cultivés et non découpés qui peuvent potentiellement être très gros sur certains ensembles de données. Pour réduire la consommation de mémoire, la complexité et la taille des arbres doivent être contrôlées en définissant ces valeurs de paramètre.
Les entités sont toujours permutées aléatoirement à chaque division. Par conséquent, la division la mieux trouvée peut varier, même avec les mêmes données d’entraînement, max_features=n_features
et bootstrap=False
, si l’amélioration du critère est identique pour plusieurs divisions énumérées lors de la recherche de la meilleure division. Pour obtenir un comportement déterministe lors de l’ajustement, random_state
doit être corrigé.
La valeur par défaut max_features="auto"
utilise n_features
plutôt que n_features / 3
. Ce dernier a été initialement suggéré dans, alors que le premier a été plus récemment justifié empiriquement dans.
1
-
Breiman, « Forêts aléatoires », Apprentissage automatique, 45(1), 5-32, 2001.
2
P. Geurts, D. Ernst., et L. Wehenkel, « Extremely randomizedtrees », Apprentissage automatique, 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)¶
Appliquez les arbres de la forêt à X, renvoyez les indices de feuilles.
Paramètres X {matrice de type tableau, matrice clairsemée} de forme (n_samples, n_features)
Les échantillons d’entrée. En interne, son dtype sera converti en dtype=np.float32
. Si une matrice clairsemée est fournie, elle sera convertie en un csr_matrix
clairsemé.
Renvoie X_leavesndarray de forme (n_samples, n_estimators)
Pour chaque point de données x dans X et pour chaque arbre de la forêt, renvoie l’index de la feuille x se retrouve dans.
decision_path
(X)¶
Retourne le chemin de décision dans la forêt.
Nouveau dans la version 0.18.
Paramètres X {matrice de type tableau, matrice clairsemée} de forme (n_samples, n_features)
Les échantillons d’entrée. En interne, son dtype sera converti en dtype=np.float32
. Si une matrice clairsemée est fournie, elle sera convertie en un csr_matrix
clairsemé.
Retourne une matrice indicatorsparse de forme (n_samples, n_nodes)
Renvoie une matrice indicatrice de nœud où des éléments non nuls indiquent que les échantillons traversent les nœuds. La matrice est de CSRformat.
n_nodes_ptrndarray of shape(n_estimators + 1,)
Les colonnes de l’indicateur: n_nodes_ptr] donne la valeur de l’indicateur pour le i-th estimateur.
propriétéfeature_importances_
¶
Les importances de fonctionnalité basées sur les impuretés.
Plus la fonction est élevée, plus elle est importante.L’importance d’une caractéristique est calculée comme la réduction totale (normalisée) du critère apporté par cette caractéristique. Il est également connu comme l’importance de Gini.
Avertissement: les importances de caractéristiques basées sur les impuretés peuvent être trompeuses pour les caractéristiques de cardinalité élevée (de nombreuses valeurs uniques). Voir sklearn.inspection.permutation_importance
comme alternative.
Renvoie feature_importances_ndarray de shape(n_features,)
Les valeurs de ce tableau s’additionnent à 1, à moins que tous les arbres ne soient des nœuds uniques composés uniquement du nœud racine, auquel cas ce sera un faisceau de zéros.
fit
(X, y, sample_weight=None)¶
Construisez une forêt d’arbres à partir de l’ensemble d’entraînement (X,y).
Paramètres X {matrice de type tableau, matrice clairsemée} de forme (n_samples, n_features)
Les échantillons d’entrée d’entraînement. En interne, son dtype sera converti en dtype=np.float32
. Si une matrice clairsemée est fournie, elle sera convertie en un csc_matrix
clairsemé.
yarray-like de forme(n_samples,) ou (n_samples, n_outputs)
Les valeurs cibles (étiquettes de classe dans la classification, inregression des nombres réels).
sample_weightarray-like of shape(n_samples,), default=None
Poids des échantillons. Si aucun, les échantillons sont également pondérés. Les divisions qui créeraient des nœuds enfants avec un poids net nul ou négatif sont enregistrées lors de la recherche d’une division dans chaque nœud. Dans le cas de la classification, les divisions sont également ignorées si elles entraînaient une classe unique portant un poids négatif dans l’un ou l’autre nœud enfant.
Retourne selfobjectget_params
(deep=True)¶
Récupère les paramètres de cet estimateur.
Parameters deepbool, default=True
Si True, renverra les paramètres de cet estimateur et des sous-objets confinés qui sont des estimateurs.
Renvoie les noms de paramètres paramsdict
mappés à leurs valeurs.
predict
(X)¶
Prédire la cible de régression pour X.
La cible de régression prédite d’un échantillon d’entrée est calculée en tant que cible de régression prédite des arbres de la forêt.
Paramètres X {matrice de type tableau, matrice clairsemée} de forme (n_samples, n_features)
Les échantillons d’entrée. En interne, son dtype sera converti en dtype=np.float32
. Si une matrice clairsemée est fournie, elle sera convertie en un csr_matrix
clairsemé.
Renvoie yndarray de forme(n_samples,) ou (n_samples, n_outputs)
Les valeurs prédites.
score
(X, y, sample_weight=None)¶
Renvoie le coefficient de détermination \(R^2\) de la prédiction.
Le coefficient \(R^2\) est défini comme \((1-\frac{u}{v})\), où \(u\) est la somme résiduelle des carrés ((y_true - y_pred)** 2).sum()
et \(v\) est la somme totale des carrés ((y_true -y_true.mean()) ** 2).sum()
. Le meilleur score possible est de 1,0 et ilpeut être négatif (car le modèle peut être arbitrairement pire). Un modèle constant qui prédit toujours la valeur attendue de y
, sans tenir compte des caractéristiques d’entrée, obtiendrait un score \(R ^2\) de0.0.
Paramètres Xarray-like de forme (n_samples, n_features)
Échantillons de test. Pour certains estimateurs, il peut s’agir d’une matrice de noyau précalculée ou d’une liste d’objets génériques avec la forme (n_samples, n_samples_fitted)
, où n_samples_fitted
est le nombre d’échantillons utilisés dans l’ajustement de l’estimateur.
yarray-like de forme(n_samples,) ou (n_samples, n_outputs)
Valeurs vraies pour X
.
sample_weightarray-like of shape(n_samples,), default=None
Poids des échantillons.
Renvoie le tableau de bord
\(R^2\) de self.predict(X)
wrt. y
.
Notes
Le score \(R^2\) utilisé lors de l’appel de score
sur un régresseur utilise multioutput='uniform_average'
à partir de la version 0.23 pour conserver la cohérence avec la valeur par défaut de r2_score
.Cela influence la méthode score
de tous les multioutputregressors (à l’exception de MultiOutputRegressor
).
set_params
(**params)¶
Définissez les paramètres de cet estimateur.
La méthode fonctionne sur des estimateurs simples ainsi que sur des objets imbriqués (tels que Pipeline
). Ces derniers ont des paramètres de la forme <component>__<parameter>
de sorte qu’il est possible de mettre à jour chaque composant d’un objet imbriqué.
Paramètres ** paramsdict
Paramètres de l’estimateur.
Renvoie l’instance d’estimateur d’auto-estimation
.