Articles

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 et ceil(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 et ceil(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_featurescaractéristiques à chaque division.

  • Si float, alors max_features est une fraction et round(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)

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.

NN_tN_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. fitpredictdecision_path and apply are all parallelized over thetrees. None means 1 unless in a joblib.parallel_backendcontext. -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

DecisionTreeRegressorExtraTreesRegressor

Notes

Les valeurs par défaut pour les paramètres contrôlant la taille des arbres (par exemple max_depthmin_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

  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(X)

Apply trees in the forest to X, return leaf indices.

decision_path(X)

Return the decision path in the forest.

fit(X, y)

Build a forest of trees from the training set (X, y).

get_params()

Get parameters for this estimator.

predict(X)

Predict regression target for X.

score(X, y)

Return the coefficient of determination \(R^2\) of the prediction.

set_params(**params)

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

.

Exemples utilisant sklearn.ensemble.RandomForestRegressor¶