sklearn.ensemble
.BaggingClassifier¶
- class sklearn.ensemble.BaggingClassifier¶
Un clasificador Bagging.
Un clasificador Bagging es un metaestimador de ensemble que ajusta a los clasificadores 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 forma 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_estimatorobjecto, default=None
El estimador base para ajustar en subconjuntos aleatorios del conjunto de datos. Si es None, el estimador base es un
DecisionTreeClassifier
.- 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
max_samples
muestras.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 reemplazo predeterminado, 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 ensemble, de lo contrario, basta con ajustar un ensemble completamente nuevo. Ver el Glosario.
Nuevo en la versión 0.17: Parámetro del constructor warm_start.
- n_jobsentero, default=None
El número de trabajos que se ejecutan en paralelo para
fit
ypredict
.None
significa 1 a menos que esté en un contextojoblib.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 conjunto es crecido.
- n_features_entero
El número de características cuando
fit
es realizado.- estimators_lista de estimadores
La colección de estimadores de base ajustados.
estimators_samples_
lista de arreglosEl subconjunto de muestras escogidas para cada estimador base.
- estimators_features_lista de arreglos
El subconjunto de características escogidas para cada estimador base.
- classes_ndarray de forma (n_classes,)
Las etiquetas de clases.
- n_classes_entero o lista
El número de clases.
- 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_decision_function_ndarray de forma (n_samples, n_classes)
Función de decisión calculada con la estimación fuera de bolsa en el conjunto de entrenamiento. Si n_estimadores es pequeño, es posible que un punto de datos nunca se haya dejado fuera durante el bootstrap. En este caso,
oob_decision_function_
podría contener NaN. Este atributo sólo existe cuandooob_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 SVC >>> from sklearn.ensemble import BaggingClassifier >>> from sklearn.datasets import make_classification >>> X, y = make_classification(n_samples=100, n_features=4, ... n_informative=2, n_redundant=0, ... random_state=0, shuffle=False) >>> clf = BaggingClassifier(base_estimator=SVC(), ... n_estimators=10, random_state=0).fit(X, y) >>> clf.predict([[0, 0, 0, 0]]) array([1])
Métodos
Promedio de las funciones de decisión de los clasificadores de base.
Construir un ensemble Bagging de estimadores a partir del entrenamiento
Obtiene los parámetros para este estimador.
Predice la clase para X.
Predice las probabilidades logarítmicas de clase para X.
Predice las probabilidades de clase para X.
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
Establece los parámetros de este estimador.
- decision_function()¶
Promedio de las funciones de decisión de los clasificadores de base.
- 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
- scorendarray de forma (n_samples, k)
La función de decisión de las muestras de entrada. Las columnas corresponden a las clases ordenadas, tal y como aparecen en el atributo
clases_
. La regresión y la clasificación binaria son casos especiales conk == 1
, de lo contrariok==n_clases
.
- 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 encajar 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 la clase para X.
La clase predecida de una muestra de entrada se calcula como la clase con la mayor probabilidad predecible. Si los estimadores base no implementan un método
predict_proba
, entonces recurre a votación.- 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,)
Las clases predichas.
- predict_log_proba()¶
Predice las probabilidades logarítmicas de clase para X.
Las probabilidades logarítmicas de clase predichas de una muestra de entrada se calculan como el logaritmo de las probabilidades medias de clase predichas de los estimadores base del 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
- pndarray de forma (n_samples, n_classes)
Las probabilidades logarítmicas de clase de las muestras de entrada. El orden de las clases corresponde a aquel en el atributo classes_.
- predict_proba()¶
Predice las probabilidades de clase para X.
Las probabilidades de clase predichas de una muestra de entrada se calculan como la media de las probabilidades de clase predichas de los estimadores base del ensemble. Si los estimadores base no implementan un método
predict_proba
, entonces se recurre a la votación y las probabilidades de clase predichas de una muestra de entrada representan la proporción de estimadores que predicen cada clase.- 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
- pndarray de forma (n_samples, n_classes)
Las probabilidades de clase de las muestras de entrada. El orden de las clases corresponde a aquel en el atributo classes_.
- score()¶
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Muestras de prueba.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs)
Etiquetas verdaderas para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderación de muestras.
- Devuelve
- scoreflotante
Precisión media de
self.predict(X)
con respecto ay
.
- 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 del estimador.