sklearn.conjunto.RandomForestRegressor¶
class 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 de bosque aleatorio.
Un bosque aleatorio es un meta estimador que se ajusta a una serie de árboles de decisión de clasificación en varias submuestras del conjunto de datos y utiliza promedios para mejorar la precisión predictiva y controlar el ajuste excesivo.El tamaño de la submuestra se controla con el parámetro max_samples
sibootstrap=True
(predeterminado), de lo contrario, se utiliza todo el conjunto de datos para compilar cada árbol.
Lea más en la Guía del usuario.
Parámetros n_estimatorsint, default = 100
El número de árboles en el bosque.
Cambiado en la versión 0.22: El valor predeterminado de n_estimators
cambió de 10 a 100 en 0.22.
criterion {«mse», «mae»}, default= » mse «
La función para medir la calidad de una división. Los criterios soportados son » mse «para el error cuadrado medio, que es igual a variancereduction como criterio de selección de entidades, y» mae » para el error absoluto medio.
Nuevo en la versión 0.18: Criterio de Error Absoluto Medio (MAE).
max_depthint, default = None
La profundidad máxima del árbol. Si no hay ninguno, entonces los nodos se expanden hasta que todas las hojas son puras o hasta que todas las hojas contienen menos muestras de min_samples_split.
min_samples_splitint o float, default = 2
El número mínimo de muestras necesarias para dividir un nodo interno:
-
Si es int, considere
min_samples_split
como el número mínimo. -
Si es flotante, entonces
min_samples_split
es una fracción yceil(min_samples_split * n_samples)
son el número mínimo de muestras para cada división.
Cambiado en la versión 0.18: Se agregaron valores flotantes para fracciones.
min_samples_leafint o float, default = 1
El número mínimo de muestras necesarias para estar en un nodo hoja.Un punto de división a cualquier profundidad solo se considerará si deja al menos min_samples_leaf
muestras de entrenamiento en cada una de las ramas izquierda y derecha. Esto puede tener el efecto de suavizar el modelo,especialmente en regresión.
-
Si es int, considere
min_samples_leaf
como el número mínimo. -
Si es flotante, entonces
min_samples_leaf
es una fracción yceil(min_samples_leaf * n_samples)
son el número mínimo de muestras para cada nodo.
Cambiado en la versión 0.18: Se agregaron valores flotantes para fracciones.
min_weight_fraction_leaffloat, default = 0.0
La fracción ponderada mínima de la suma total de pesos (de todas las muestras de entrada) requeridas para estar en un nodo hoja. Las muestras tienen el mismo peso cuando no se proporciona sample_weight.
max_features {«auto», «sqrt»,»log2″}, int o float, default=»auto»
El número de características a considerar al buscar la mejor división:
-
Si es int, considere
max_features
características en cada división. -
Si el flotador, entonces
max_features
es una fracción yround(max_features * n_features)
características se consideran en eachsplit. -
Si es «auto», entonces
max_features=n_features
. -
Si «sqrt», entonces
max_features=sqrt(n_features)
. -
Si «log2», entonces
max_features=log2(n_features)
. -
Si no hay ninguno, entonces
max_features=n_features
.
Nota: la búsqueda de una división no se detiene hasta que se encuentre al menos una partición valid de las muestras de nodos, incluso si requiere inspeccionar de manera efectiva más de las características max_features
.
max_leaf_nodesint, default=None
Cultiva árboles con max_leaf_nodes
de la mejor manera.Los mejores nodos se definen como reducción relativa de impurezas.Si no hay, entonces número ilimitado de nodos de hoja.
min_impurity_decreasefloat, default = 0.0
Un nodo se dividirá si esta división induce una disminución de la impuritygreat mayor o igual a este valor.
El promedio ponderado de la impureza disminución de la ecuación es la siguiente:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
donde N
es el número total de muestras, N_t
es el número de ofsamples en el nodo actual, N_t_L
es el número de muestras en theleft niño, y N_t_R
es el número de muestras en el derecho del niño.
N
N_t
N_t_R
y N_t_L
se refieren a la suma ponderada,si sample_weight
se pasa.
Nuevo en la versión 0.19.
min_impurity_splitfloat, default = None
Umbral para la detención temprana en el crecimiento del árbol. Un nodo se splitif su impureza está por encima del umbral, de lo contrario es una hoja.
Obsoleto desde la versión 0.19: min_impurity_split
ha quedado obsoleto a favor demin_impurity_decrease
en 0.19. El valor predeterminado demin_impurity_split
ha cambiado de 1e-7 a 0 en 0.23 y se eliminará en 1.0 (cambio de nombre de 0.25).Utilice min_impurity_decrease
en su lugar.
bootstrapbool, default = True
Si se usan muestras de bootstrap al construir árboles. Si es False, el conjunto de datos completo se utiliza para compilar cada árbol.
oob_scorebool, default = False
si se deben usar muestras fuera de bolsa para estimar el R^2 en datos no vistos.
n_jobsint, default = None
El número de trabajos que se ejecutarán en paralelo. 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 o None, default=None
Controla tanto la aleatoriedad del arranque de las muestras utilizadas cuando se construyen árboles (if bootstrap=True
) como el muestreo de las características a considerar al buscar la mejor división en cada nodo(if max_features < n_features
).Vea el Glosario para más detalles.
verboseint, default = 0
Controla la verbosidad al ajustar y predecir.
warm_startbool, default=False
Cuando se establece en True
, reutilice la solución de la llamada anterior a fit y agregue más estimadores al conjunto, de lo contrario, simplemente ajuste un bosque nuevo completo. Véase el Glosario.
ccp_alphanon-flotador negativo, predeterminado = 0.0
Parámetro de complejidad utilizado para la Poda de Complejidad de Coste Mínimo. Se elegirá el subárbol con la mayor complejidad de costos que sea menor queccp_alpha
. De forma predeterminada, no se realiza ninguna poda. Poda mínima de costes y complejidad para obtener más detalles.
Nuevo en la versión 0.22.
max_samplesint o float, default = None
Si bootstrap es True, el número de muestras a extraer de X Para entrenar cada estimador base.
-
Si no hay ninguno (predeterminado), dibuje muestras
X.shape
. -
Si está int, dibuje muestras
max_samples
. -
Si flota, dibuje muestras
max_samples * X.shape
. Por lo tanto,max_samples
debe estar en el intervalo(0, 1)
.
Nuevo en la versión 0.22.
Atributos base_estimator_DecisionTreeRegressor
La plantilla de estimador hijo utilizada para crear la colección de estimadores fittedsub.
estimators_list of DecisionTreeRegressor
La colección de subestimadores ajustados.
feature_importances_
ndarray de forma (n_features,)
Las importancias de características basadas en impurezas.
n_features_int
El número de entidades cuando se realiza fit
.
n_outputs_int
El número de salidas cuando fit
se realiza.
Puntuación oob_score_float
del conjunto de datos de entrenamiento obtenido utilizando una estimación fuera de bolsa.Este atributo solo existe cuando oob_score
es True.
oob_prediction_ndarray de forma (n_samples,)
Predicción calculada con una estimación fuera de bolsa en el conjunto de entrenamiento.Este atributo solo existe cuando oob_score
es True.
Véase también
DecisionTreeRegressor
ExtraTreesRegressor
Notas
Los valores predeterminados para los parámetros que controlan el tamaño de los árboles(por ejemplo max_depth
min_samples_leaf
, etc.) conducen a árboles completamente crecidos e improntas que potencialmente pueden ser muy grandes en algunos conjuntos de datos. Para reducir el consumo de memoria, la complejidad y el tamaño de los árboles deben controlarse estableciendo los valores de los parámetros.
Las entidades siempre se permutan aleatoriamente en cada división. Por lo tanto, la división mejor encontrada puede variar, incluso con los mismos datos de entrenamiento,max_features=n_features
y bootstrap=False
, si la mejora del criterio es idéntica para varias divisiones enumeradas durante la búsqueda de la mejor división. Para obtener un comportamiento determinista durante el ajuste, se debe corregir random_state
.
El valor predeterminado max_features="auto"
utiliza n_features
en vez de n_features / 3
. Este último se sugirió originalmente en, mientras que el primero se justificó más recientemente empíricamente en .
1
-
Breiman, «Bosques aleatorios», Aprendizaje automático, 45(1), 5-32, 2001.
2
P. Geurts, D. Ernst., y L. Wehenkel, «Extremely randomizedtrees», Aprendizaje automático, 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)¶
Aplicar árboles en el bosque a X, devolver índices de hojas.
Parámetros X{matriz dispersa tipo matriz} de forma (n_muestras, n_features)
Las muestras de entrada. Internamente, su dtype se convertirá adtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá en una matriz dispersa csr_matrix
.
Devuelve X_leavesndarray de forma (n_muestras, n_estimadores)
Para cada punto de datos x en X y para cada árbol del bosque,devuelve el índice de la hoja en la que termina x.
decision_path
(X)¶
Devuelve la ruta de decisión en el bosque.
Nuevo en la versión 0.18.
Parámetros X{matriz dispersa tipo matriz} de forma (n_muestras, n_features)
Las muestras de entrada. Internamente, su dtype se convertirá adtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá en una matriz dispersa csr_matrix
.
Devuelve la matriz de forma indicatorsparse (n_samples, n_nodes)
Devuelve una matriz indicadora de nodo donde elementos distintos de cero indican que las muestras pasan por los nodos. La matriz es de formato CSR.
n_nodes_ptrndarray de forma (n_estimadores + 1,)
Las columnas del indicador: n_nodes_ptr] da el valor del indicador para el i-ésimo estimador.
propertyfeature_importances_
¶
Las importancias de las características basadas en impurezas.
Cuanto más alta, más importante es la característica.La importancia de una característica se calcula como la reducción total (normalizada)del criterio que aporta esa característica. También se conoce como la importancia de Gini.
Advertencia: las importancias de características basadas en impurezas pueden ser engañosas para características de alta cardinalidad (muchos valores únicos). Consultesklearn.inspection.permutation_importance
como alternativa.
Devuelve feature_importances_ndarray de forma (n_features,)
Los valores de este array suman 1, a menos que todos los árboles sean árboles de nodo único que consistan solo en el nodo raíz, en cuyo caso será unarray de ceros.
fit
(X, y, sample_weight=None)¶
Construye un bosque de árboles desde el set de entrenamiento (X, y).
Parámetros X{matriz dispersa similar a una matriz} de forma (n_muestras, n_features)
Las muestras de entrada de entrenamiento. Internamente, su dtype se convertirá a dtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá en una matriz dispersa csc_matrix
.
tipo yarray de forma (n_samples,) o (n_samples, n_outputs)
Los valores objetivo (etiquetas de clase en clasificación, números reales en regresión).
sample_weightarray-como de forma (n_samples,), por defecto=None
Pesos de muestra. Si no hay ninguna, las muestras se ponderan por igual. Divisiones que crearían nodos hijos con un peso neto cero o negativo mientras se busca una división en cada nodo. En el caso de clasificación, las divisiones también se ignoran si dan lugar a que cualquier clase individual tenga un peso negativo en cualquiera de los nodos hijos.
Devuelve autoobjetoget_params
(deep=True)¶
Obtener parámetros para este estimador.
Parámetros deepbool, default = True
Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.
Devuelve los nombres de parámetros de paramsdict
asignados a sus valores.
predict
(X)¶
Predecir el objetivo de regresión para X.
El objetivo de regresión predicho de una muestra de entrada se calcula como el objetivo de regresión predicho promedio de los árboles en el bosque.
Parámetros X{matriz dispersa tipo matriz} de forma (n_muestras, n_features)
Las muestras de entrada. Internamente, su dtype se convertirá adtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá en una matriz dispersa csr_matrix
.
Devuelve el yndarray de la forma (n_samples,) o (n_samples, n_outputs)
Los valores predichos.
score
(X, y, sample_weight=None)¶
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
El coeficiente \(R^2\) se define como \((1 – \frac{u}{v})\),donde \(u\) es la suma residual de cuadrados ((y_true - y_pred)** 2).sum()
y \(v\) es la suma total de cuadrados ((y_true -y_true.mean()) ** 2).sum()
. La mejor puntuación posible es 1.0 y puede ser negativa (porque el modelo puede ser arbitrariamente peor). Un modelo constante que siempre predice el valor esperado de y
, sin tener en cuenta las características de entrada, obtendría una puntuación \(R^2\) de 0,0.
Parámetros de forma tipo Xarray (n_samples, n_features)
Muestras de prueba. Para algunos estimadores, esto puede ser una matriz de kernel precomputada o una lista de objetos genéricos en su lugar con forma(n_samples, n_samples_fitted)
, donde n_samples_fitted
es el número de muestras utilizadas en el ajuste para el estimador.
tipo yarray de forma (n_samples,) o (n_samples, n_outputs)
Valores verdaderos para X
.
sample_weightarray-como de forma (n_samples,), por defecto=None
Pesos de muestra.
Devuelve scorefloat
\(R^2\) de self.predict(X)
wrt. y
.
Notas
La puntuación \(R^2\) utilizada al llamar a score
en un regresor utilizamultioutput='uniform_average'
de la versión 0.23 para mantener la consistencia con el valor predeterminado de r2_score
.Esto influye en el método score
de todos los multioutputregresores (exceptoMultiOutputRegressor
).
set_params
(**parámetros)¶
Establezca los parámetros de este estimador.
El método funciona en estimadores simples, así como en objetos anidados(como Pipeline
). Estos últimos tienen parámetros separados del formulario <component>__<parameter>
para que sea posible actualizar cada componente de un objeto anidado.Parámetros
* * parámetros estimadores paramsdict
.
Devuelve instancia de estimador automático
Instancia de estimador.