sklearn.ensemble.BaggingRegressor

class sklearn.ensemble.BaggingRegressor

Un regresor Bagging.

Un regresor Bagging es un metaestimador de ensemble que ajusta regresores base cada uno en subconjuntos aleatorios del conjunto de datos original y luego agrega sus predicciones individuales (ya sea por votación o por promedio) para formar una predicción final. Un metaestimador de este tipo puede utilizarse normalmente como una manera de reducir la varianza de un estimador de caja negra (por ejemplo, un árbol de decisión), introduciendo aleatorización en su procedimiento de construcción y luego haciendo un conjunto (ensemble) a partir de él.

Este algoritmo engloba varios trabajos de la literatura. Cuando se extraen subconjuntos aleatorios del conjunto de datos como subconjuntos aleatorios de las muestras, entonces este algoritmo se conoce como Pasting [1]. Si las muestras se extraen con reemplazo, el método se conoce como Bagging [2]. Cuando se extraen subconjuntos aleatorios del conjunto de datos como subconjuntos aleatorios de las características, el método se conoce como Subespacios aleatorios [3]. Por último, cuando los estimadores base se construyen sobre subconjuntos tanto de muestras como de características, entonces el método se conoce como Parches o fragmentos Aleatorios [4].

Más información en el Manual de usuario.

Nuevo en la versión 0.15.

Parámetros
base_estimatorobjeto, default=None

El estimador base para ajustar en subconjuntos aleatorios del conjunto de datos. Si es None, el estimador base es un DecisionTreeRegressor.

n_estimatorsentero, default=10

El número de estimadores base en el ensemble.

max_samplesentero o flotante, default=1.0

El número de muestras a extraer de X para entrenar cada estimador base (con reemplazo predeterminado, ver bootstrap para más detalles).

  • Si es entero, entonces escoge muestras max_samples.

  • Si es flotante, escoge `max_samples * X.shape[0]`muestras.

max_featuresentero o flotante, default=1.0

El número de características a escoger de X para entrenar cada estimador base (sin reemplazar por defecto, ver`bootstrap_features` para más detalles).

  • Si es int, entonces escoge max_features características.

  • Si es float, escoge max_features * X.shape[1] características.

bootstrapbooleano, default=True

Si las muestras son escogidas con reemplazo. Si False, se realiza muestreo sin reemplazo.

bootstrap_featuresbooleano, default=False

Si las características se escogen con reemplazo.

oob_scorebooleano, default=False

Si usar muestras fuera de bolsa para estimar el error de generalización.

warm_startbooleano, default=False

Cuando se establece en True, reutiliza la solución de la llamada anterior para ajustar y añadir más estimadores al conjunto, de lo contrario, basta con ajustar un ensemble completamente nuevo. Ver Glosario.

n_jobsentero, default=None

El número de trabajos que se ejecutan en paralelo para fit y predict. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Ver Glosario para más detalles.

random_stateentero, instancia de RandomState o None, default=None

Controla el remuestreo aleatorio del conjunto de datos original (por muestra y por característica). Si el estimador base acepta un atributo random_state, se genera una semilla diferente para cada instancia del ensemble. Pasa un entero para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.

verboseentero, default=0

Controla la verbosidad al momento de ajustar y predecir.

Atributos
base_estimator_estimator

El estimador de base del cual el ensemble crece.

n_features_entero

El número de características cuando fit es realizado.

estimators_lista de estimadores

La colección de sub-estimadores ajustados.

estimators_samples_lista de arreglos

El subconjunto de muestras escogidas para cada estimador base.

estimators_features_lista de arreglos

El subconjunto de características escogidas para cada estimador base.

oob_score_flotante

Puntuación 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 estimación de fuera de bolsa sobre el conjunto de entrenamiento. Si n_estimators es pequeño, puede ser posible que un punto de datos nunca se haya dejado fuera durante el arranque. En este caso, oob_prediction_ podría contener NaN. Este atributo existe sólo cuando oob_score es True.

Referencias

1

L. Breiman, «Pasting small votes for classification in large databases and on-line», Machine Learning, 36(1), 85-103, 1999.

2

L. Breiman, «Bagging predictors», Machine Learning, 24(2), 123-140, 1996.

3

T. Ho, «The random subspace method for constructing decision forests», Pattern Analysis and Machine Intelligence, 20(8), 832-844, 1998.

4

G. Louppe and P. Geurts, «Ensembles on Random Patches», Machine Learning and Knowledge Discovery in Databases, 346-361, 2012.

Ejemplos

>>> from sklearn.svm import SVR
>>> from sklearn.ensemble import BaggingRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_samples=100, n_features=4,
...                        n_informative=2, n_targets=1,
...                        random_state=0, shuffle=False)
>>> regr = BaggingRegressor(base_estimator=SVR(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> regr.predict([[0, 0, 0, 0]])
array([-2.8720...])

Métodos

fit

Construir un ensemble Bagging de estimadores a partir del entrenamiento

get_params

Obtiene los parámetros para este estimador.

predict

Predice el objetivo de regresión para X.

score

Devuelve el coeficiente de determinación \(R^2\) de la predicción.

set_params

Establece los parámetros de este estimador.

property estimators_samples_

El subconjunto de muestras escogidas para cada estimador base.

Devuelve una lista generada dinámicamente de índices que identifican las muestras utilizadas para ajustar cada miembro del ensemble, es decir, las muestras en bolsa.

Nota: la lista se vuelve a crear en cada llamada a la propiedad para reducir la huella de memoria del objeto al no almacenar los datos de muestreo. Por lo tanto, la obtención de la propiedad puede ser más lenta de lo esperado.

fit()
Construir un ensemble Bagging de estimadores a partir del entrenamiento

set (X, y).

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Las muestras de entrada de entrenamiento. Las matrices dispersas son aceptadas sólo si son apoyadas por el estimador base.

yarray-like de forma (n_samples,)

Los valores objetivo (etiquetas de clase en clasificación, números reales en regresión).

sample_weightarray-like de forma (n_samples,), default=None

Ponderación de muestras. Si es None, las muestras se ponderan por igual. Ten en cuenta que esto sólo se admite si el estimador base admite la ponderación de la muestra.

Devuelve
selfobject
get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbooleano, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

predict()

Predice el objetivo de regresión para X.

El objetivo de regresión predicho de una muestra de entrada se calcula como la media de los objetivos de regresión predichos de los estimadores en el ensemble.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Las muestras de entrada de entrenamiento. Las matrices dispersas son aceptadas sólo si son apoyadas por el estimador base.

Devuelve
yndarray de forma (n_samples,)

Los valores predichos.

score()

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
Xarray-like de forma (n_samples, n_features)

Muestras de prueba. Para algunos estimadores puede ser una matriz de núcleo precalculada o una lista de objetos genéricos con forma (n_samples, n_samples_fitted), donde n_samples_fitted es el número de muestras utilizadas en el ajuste para el estimador.

yarray-like de forma (n_samples,) o (n_samples, n_outputs)

Valores verdaderos para X.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones de muestra.

Devuelve
scoreflotante

\(R^2\) de self.predict(X) con respecto a y.

Notas

La puntuación \(R^2\) utilizada al llamar a score en un regresor utiliza multioutput='uniform_average' desde la versión 0.23 para mantener la coherencia con el valor predeterminado de r2_score`. Esto influye en el método score de todos los regresores de salida múltiple (excepto para MultiOutputRegressor).

set_params()

Establece 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 de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia de estimador.