sklearn.ensemble
.StackingClassifier¶
- class sklearn.ensemble.StackingClassifier¶
Pila de estimadores con un clasificador final.
La generalización apilada consiste en apilar la salida del estimador individual y utilizar un clasificador para calcular la predicción final. El apilamiento permite el uso de la fuerza de cada estimador individual, usando su salida como entrada de un estimador final.
Tenga en cuenta que
estimators_
son encajados en elX
completo mientras quefinal_estimator_
es entrenado utilizando predicciones validadas en cruz de los estimadores base utilizandocross_val_predict
.Más información en el Manual de usuario.
Nuevo en la versión 0.22.
- Parámetros
- estimatorslista de (str, estimator)
Estimadores base que serán apilados juntos. Cada elemento de la lista es definido como una tupla de cadena (es decir, nombre) y una instancia de estimador. Un estimador puede ser establecido como “drop” utilizando
set_params
.- final_estimatorestimador, default=None
Un clasificador que sera utilizado para combinar los estimadores base. El clasificador predeterminado es un
LogisticRegression
.- cvint, generador de validación cruzada o un iterable, default=None
Determina la estrategia de división de validación cruzada utilizada en
cross_val_predict
para entrenar elfinal_estimator
. Las entradas posibles para cv son:None, para usar la validación cruzada de 5 partes por defecto,
un entero, para especificar el número de plegados en un KFold (estratificado)
Un objeto a ser usado como generador de validación cruzada,
Un iterable dando divisiones de entrenamiento o prueba.
Para entradas de enteros/None, si el estimador es un clasificador e y es binario o multiclase,
StratifiedKFold
es utilizado. En todos los demás casos,KFold
es utilizado.Consulta Manual de usuario para las diversas estrategias de validación cruzada que pueden ser utilizadas aquí.
Nota
Un número grande de divisiones no proporcionara beneficios si el número de muestras de entrenamiento es lo suficientemente grande. De hecho, el tiempo de entrenamiento aumentará.
cv
no es utilizado para la evaluación del modelo sino para la predicción.- stack_method{“auto”, “predict_proba”, “decision_function”, “predict”}, default=”auto”
Métodos llamados para cada estimador base. Puede ser:
si “auto”, intentara invocar, para cada estimador,
'predict_proba'
,'decision_function'
o'predict'
en ese orden.de otra manera, uno de
'predict_proba'
,'decision_function'
o'predict'
. Si el método no es implementado por el estimador, emitirá un error.
- n_jobsint, default=None
El número de trabajos a ejecutar en paralelo para todos los
estimators
fit
.None
significa 1 excepto en un contexto dejoblib.parallel_backend
. -1 significa usar todos los procesadores. Ver el Glosario para más detalles.- passthroughbool, default=False
Cuando es False, solo las predicciones de los estimadores serán utilizadas como datos de entrenamiento para
final_estimator
. Cuando es True, elfinal_estimator
es entrenado tanto en las predicciones como los datos de entrenamiento originales.- verboseint, default=0
Nivel de verbosidad.
- Atributos
- classes_ndarray de forma (n_classes,)
Etiquetas de clase.
- estimators_lista de estimadores
Los elementos del parámetro de los estimadores, tras haber sido encajados en los datos de entrenamiento. Si un estimador ha sido establecido a
'drop'
, no aparecerá enestimators_
.- named_estimators_
Bunch
Atributo para acceder a cualquier subestimador ajustado por su nombre.
- final_estimator_estimator
El clasificador que predice dado la salida de
estimators_
.- stack_method_lista de str
El método utilizado por cada estimador base.
Notas
Cuando
predict_proba
es utilizado por cada estimador (es decir, la mayor parte del tiempo parastack_method='auto'
o específicamente parastack_method='predict_proba'
). La primera columna predecida por cada estimador será eliminada en el caso de un problema de clasificación binaria. De hecho, ambas características serán perfectamente colineales.Referencias
- 1
Wolpert, David H. «Stacked generalization.» Neural networks 5.2 (1992): 241-259.
Ejemplos
>>> from sklearn.datasets import load_iris >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.svm import LinearSVC >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.pipeline import make_pipeline >>> from sklearn.ensemble import StackingClassifier >>> X, y = load_iris(return_X_y=True) >>> estimators = [ ... ('rf', RandomForestClassifier(n_estimators=10, random_state=42)), ... ('svr', make_pipeline(StandardScaler(), ... LinearSVC(random_state=42))) ... ] >>> clf = StackingClassifier( ... estimators=estimators, final_estimator=LogisticRegression() ... ) >>> from sklearn.model_selection import train_test_split >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, stratify=y, random_state=42 ... ) >>> clf.fit(X_train, y_train).score(X_test, y_test) 0.9...
Métodos
Predice la función de decisión para muestras en X utilizando
final_estimator_.decision_function
.Ajusta los estimadores.
Lo ajusta a los datos, y después lo transforma.
Obtiene los parámetros de un estimador del ensemble.
Predice el objetivo para X.
Predice las probabilidades de clase para X utilizando
final_estimator_.predict_proba
.Devuelve la precisión media en los datos y etiquetas de prueba dados.
Establece los parámetros de un estimador del conjunto.
Devuelve las etiquetas o probabilidades de clase para X para cada estimador.
- decision_function()¶
Predice la función de decisión para muestras en X utilizando
final_estimator_.decision_function
.- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- Devuelve
- decisionsndarray de forma (n_samples,), (n_samples, n_classes), o (n_samples, n_classes * (n_classes-1) / 2)
La función de decisión calculada por el estimador final.
- fit()¶
Ajusta los estimadores.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde
n_samples
es el número de muestras yn_features
es el número de características.- yarray-like de forma (n_samples,)
Valores objetivo.
- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de muestra. Si es None, entonces las muestras están igualmente ponderadas. Ten en cuenta que esto sólo es soportado si todos los estimadores subyacentes soportan ponderaciones de muestra.
- Devuelve
- selfobject
- fit_transform()¶
Lo ajusta a los datos, y después lo transforma.
Ajusta el transformador a
X
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- Parámetros
- Xarray-like de forma (n_samples, n_features)
Muestras de entrada.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None
Valores objetivo (Ninguno para transformaciones no supervisadas).
- **fit_paramsdict
Parámetros de ajuste adicionales.
- Devuelve
- X_newarreglo ndarray de forma (n_samples, n_features_new)
Arreglo transformado.
- get_params()¶
Obtiene los parámetros de un estimador del ensemble.
Devuelve los parámetros dados en el constructor así como los estimadores contenidos en el parámetro
estimators
.- Parámetros
- deepbool, default=True
Establecerlo a True también obtiene los diversos estimadores y parámetros de los estimadores.
- predict()¶
Predice el objetivo para X.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- **predict_paramsdict de str -> obj
Parámetros al
predict
llamado por elfinal_estimator
. Note que esto podría ser utilizado para devolver incertidumbres de algunos estimadores conreturn_std
oreturn_cov
. Tenga en cuenta que solo tendrá en cuenta la incertidumbre para el estimador final.
- Devuelve
- y_predndarray de forma (n_samples,) o (n_samples, n_output)
Objetivos predichos.
- predict_proba()¶
Predice las probabilidades de clase para X utilizando
final_estimator_.predict_proba
.- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- Devuelve
- probabilitiesndarray de forma (n_samples, n_classes) o lista de ndarray de forma (n_output,)
Las probabilidades de clase de las muestras de entrada.
- score()¶
Devuelve la precisión media en los datos y etiquetas de prueba dados.
En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica exigente, 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
Ponderados de muestras.
- Devuelve
- scorefloat
Precisión media de
self.predict(X)
con respecto ay
.
- set_params()¶
Establece los parámetros de un estimador del conjunto.
Las claves de parámetro válidas pueden ser listadas con
get_params()
. Ten en cuenta que puedes establecer directamente los parámetros de los estimadores contenidos enestimators
.- Parámetros
- **paramsargumentos de palabras clave
Parámetros específicos utilizando, por ejemplo,
set_params(parameter_name=new_value)
. Además de establecer los parámetros del estimador, también se puede establecer el estimador individual de los estimadores, o se puede eliminar estableciéndolos en “drop”.
- transform()¶
Devuelve las etiquetas o probabilidades de clase para X para cada estimador.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde
n_samples
es el número de muestras yn_features
es el número de características.
- Devuelve
- y_predsndarray de forma (n_samples, n_estimators), o (n_samples, n_classes * n_estimators)
Salidas de predicción para cada estimador.