sklearn.ensemble
.StackingRegressor¶
- class sklearn.ensemble.StackingRegressor¶
Pila de estimadores con un regresor final.
La generalización apilada consiste en apilar la salida del estimador individual y utilizar un regresor 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 regresor que sera utilizado para combinar los estimadores base. El regresor predeterminado es un
RidgeCV
.- 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.- n_jobsint, default=None
El número de trabajos a ejecutar en paralelo para
fit
de todos losestimators
.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
- estimators_lista de estimador
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 regresor a apilar los estimadores de base ajustados.
Referencias
- 1
Wolpert, David H. «Stacked generalization.» Neural networks 5.2 (1992): 241-259.
Ejemplos
>>> from sklearn.datasets import load_diabetes >>> from sklearn.linear_model import RidgeCV >>> from sklearn.svm import LinearSVR >>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.ensemble import StackingRegressor >>> X, y = load_diabetes(return_X_y=True) >>> estimators = [ ... ('lr', RidgeCV()), ... ('svr', LinearSVR(random_state=42)) ... ] >>> reg = StackingRegressor( ... estimators=estimators, ... final_estimator=RandomForestRegressor(n_estimators=10, ... random_state=42) ... ) >>> from sklearn.model_selection import train_test_split >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=42 ... ) >>> reg.fit(X_train, y_train).score(X_test, y_test) 0.3...
Métodos
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.
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
Establece los parámetros de un estimador del ensemble.
Devuelve las predicciones de X para cada estimador.
- 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 y n_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 (None 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.
- 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 dey
, 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)
, donden_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 la muestra.
- Devuelve
- scorefloat
\(R^2\) de
self.predict(X)
con respecto ay
.
Notas
La puntuación \(R^2\) utilizada al llamar a
score
en un regresor utilizamultioutput='uniform_average'
desde la versión 0.23 para mantener la coherencia con el valor predeterminado der2_score`
. Esto influye en el métodoscore
de todos los regresores de salida múltiple (excepto paraMultiOutputRegressor
).
- set_params()¶
Establece los parámetros de un estimador del ensemble.
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 predicciones de 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)
Salidas de predicción para cada estimador.