sklearn.ensemble
.HistGradientBoostingRegressor¶
- class sklearn.ensemble.HistGradientBoostingRegressor¶
Árbol de Regresión de Potenciación de Gradiente basado en histograma.
Este estimador es mucho más rápido que
GradientBoostingRegressor
para grandes conjuntos de datos (n_samples >= 10 000).Este estimador tiene soporte nativo para los valores faltantes (NaNs). Durante el entrenamiento, el grower de árboles aprende en cada punto de división si las muestras con valores faltantes deben ir al hijo izquierdo o al derecho, basándose en la ganancia potencial. Al predecir, las muestras con valores faltantes se asignan al hijo izquierdo o derecho consecuentemente. Si no se encuentran valores faltantes para una característica dada durante el entrenamiento, entonces las muestras con valores faltantes se mapean al hijo que tenga más muestras.
Esta implementación está inspirada en LightGBM.
Nota
Este estimador es todavía experimental por ahora: las predicciones y la API podrían cambiar sin ningún ciclo de obsolescencia. Para utilizarlo, es necesario importar explícitamente
enable_hist_gradient_boosting
:>>> # explicitly require this experimental feature >>> from sklearn.experimental import enable_hist_gradient_boosting # noqa >>> # now you can import normally from ensemble >>> from sklearn.ensemble import HistGradientBoostingRegressor
Leer más en el Manual de Usuario.
Nuevo en la versión 0.21.
- Parámetros
- loss{“least_squares”, “least_absolute_deviation”, “poisson”}, default=”least_squares”
La función de pérdida a utilizar en el proceso de potenciación. Ten en cuenta que las pérdidas de «mínimos cuadrados» y «poisson» en realidad implementan «media pérdida de mínimos cuadrados» y «media desviación de poisson» para simplificar el cálculo del gradiente. Además, la pérdida «poisson» utiliza internamente un enlace logarítmico y requiere
y >= 0
Distinto en la versión 0.23: Se añadió la opción “poisson”.
- learning_ratefloat, default=0.1
La tasa de aprendizaje, también conocida como contracción. Se utiliza como factor multiplicativo para los valores de las hojas. Utiliza
1
para no tener contracción.- max_iterint, default=100
El número máximo de iteraciones del proceso de potenciación, es decir, el número máximo de árboles.
- max_leaf_nodesint o None, default=31
El número máximo de hojas para cada árbol. Debe ser estrictamente mayor que 1. Si es None, no hay límite máximo.
- max_depthint o None, default=None
La profundidad máxima de cada árbol. La profundidad de un árbol es el número de aristas para ir desde la raíz hasta la hoja más profunda. La profundidad no está restringida por defecto.
- min_samples_leafint, default=20
El número mínimo de muestras por hoja. Para conjuntos de datos pequeños con menos de unos cientos de muestras, se recomienda reducir este valor, ya que sólo se construirían árboles muy poco profundos.
- l2_regularizationfloat, default=0
El parámetro de regularización L2. Utiliza 0 para ninguna regularización (predeterminado).
- max_binsint, default=255
El número máximo de intervalos (bins) a utilizar para los valores no faltantes. Antes del entrenamiento, cada característica del arreglo de entrada
X
se divide en intervalos de valores enteros, lo que permite una etapa de entrenamiento mucho más rápida. Las características con un pequeño número de valores únicos pueden utilizar menos demax_bins
intervalos. Además de losmax_bins
intervalos, siempre se reserva un intervalo más para los valores faltantes. No debe ser mayor de 255.- monotonic_cstarray-like de int de forma (n_features), default=None
Indica la restricción monotónica que debe aplicarse a cada característica. -1, 1 y 0 corresponden respectivamente a una restricción negativa, una restricción positiva y ninguna restricción. Leer más en el Manual de Usuario.
Nuevo en la versión 0.23.
- categorical_featuresarray-like de {bool, int} de forma (n_features) o forma (n_categorical_features,), default=None.
Indica las características categóricas.
None : ninguna característica se considerará categórica.
array-like de booleano : máscara booleana que indica características categóricas.
integer array-like : índices de enteros que indican características categóricas.
Para cada característica categórica, debe haber como máximo
max_bins
categorías únicas, y cada valor categórico debe estar en [0, max_bins -1].Leer más en el Manual de Usuario.
Nuevo en la versión 0.24.
- warm_startbool, default=False
Cuando se establece como
True
, reutiliza la solución de la llamada previa para ajustar y añadir más estimadores al ensemble. Para que los resultados sean válidos, el estimador debe volver a entrenarse sólo con los mismos datos. Ver Glosario.- early_stopping“auto” o bool, default=”auto”
Si es “auto”, se activa la parada anticipada si el tamaño de la muestra es superior a 10000. Si es True, se activa la parada anticipada; de lo contrario, se desactiva la parada anticipada.
Nuevo en la versión 0.23.
- scoringcadena o invocable o None, default=”loss”
Parámetro de puntuación a utilizar para la parada anticipada. Puede ser una sola cadena (ver El parámetro scoring: definir las reglas de evaluación del modelo) o un callable (ver Definir tu estrategia de puntuación a partir de funciones métricas). Si es None, se utiliza el puntuador predeterminado del estimador. Si
scoring='loss'
, se comprueba la parada anticipada con respecto al valor de la pérdida. Sólo se utiliza si se realiza una parada anticipada.- validation_fractionint o float o None, default=0.1
Proporción (o tamaño absoluto) de los datos de entrenamiento que se reservan como datos de validación para la parada anticipada. Si es None, la parada anticipada se realiza sobre los datos de entrenamiento. Sólo se utiliza si se realiza una parada anticipada.
- n_iter_no_changeint, default=10
Utilizado para determinar cuándo hay que hacer una «parada anticipada». El proceso de ajuste se detiene cuando ninguna de las últimas
n_iter_no_change
puntuaciones es mejor que lan_iter_no_change - 1
-ésima a la última, hasta una cierta tolerancia. Sólo se utiliza si se realiza una parada anticipada.- tolfloat o None, default=1e-7
La tolerancia absoluta a utilizar cuando se comparan las puntuaciones durante una parada anticipada. Cuanto más alta sea la tolerancia, más probable será que se detenga anticipadamente: una tolerancia más alta significa que será más difícil que las iteraciones posteriores se consideren una mejora de la puntuación de referencia.
- verboseint, default=0
El nivel de verbosidad. Si no es cero, imprime alguna información sobre el proceso de ajuste.
- random_stateentero, instancia de RandomState o None, default=None
Generador de números pseudoaleatorios para controlar el submuestreo en el proceso de binning, y la división de los datos de entrenamiento/validación si se activa la parada anticipada. Pasa un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.
- Atributos
- do_early_stopping_bool
Indica si se utiliza la parada anticipada durante el entrenamiento.
- n_iter_int
El número de iteraciones seleccionadas por la parada anticipada, dependiendo del parámetro
early_stopping
. De lo contrario, corresponde a max_iter.- n_trees_per_iteration_int
El número de árboles que se construyen en cada iteración. Para los regresores, siempre es 1.
- train_score_ndarray, forma (n_iter_+1,)
Las puntuaciones en cada iteración sobre los datos de entrenamiento. La primera entrada es la puntuación del ensemble antes de la primera iteración. Las puntuaciones se calculan según el parámetro
scoring
. Siscoring
no es “loss”, las puntuaciones se calculan en un subconjunto de como máximo 10 000 muestras. Vacío si no hay parada anticipada.- validation_score_ndarray, forma (n_iter_+1,)
Las puntuaciones en cada iteración sobre los datos de validación apartados. La primera entrada es la puntuación del ensemble antes de la primera iteración. Las puntuaciones se calculan según el parámetro
scoring
. Vacío si no hay parada anticipada o sivalidation_fraction
es None.- is_categorical_ndarray, forma (n_features, ) o None
Máscara booleana para las características categóricas.
None
si no hay características categóricas.
Ejemplos
>>> # To use this experimental feature, we need to explicitly ask for it: >>> from sklearn.experimental import enable_hist_gradient_boosting # noqa >>> from sklearn.ensemble import HistGradientBoostingRegressor >>> from sklearn.datasets import load_diabetes >>> X, y = load_diabetes(return_X_y=True) >>> est = HistGradientBoostingRegressor().fit(X, y) >>> est.score(X, y) 0.92...
Métodos
Ajusta el modelo de potenciación de gradiente.
Obtiene los parámetros para este estimador.
Predice valores para X.
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
Establece los parámetros de este estimador.
Predice el objetivo de regresión para cada iteración
- fit()¶
Ajusta el modelo de potenciación de gradiente.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Las muestras de entrada.
- yarray-like de forma (n_samples,)
Valores objetivo.
- sample_weightarray-like de forma (n_samples,) default=None
Ponderaciones de los datos de entrenamiento.
Nuevo en la versión 0.23.
- Devuelve
- selfobject
- get_params()¶
Obtiene los 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
- paramsdict
Nombres de parámetros mapeados a sus valores.
- predict()¶
Predice valores para X.
- Parámetros
- Xarray-like, forma (n_samples, n_features)
Las muestras de entrada.
- Devuelve
- yndarray, 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 de cuadrados de los residuos
((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)
, 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 muestras.
- 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 consistencia 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 este estimador.
El método funciona tanto en estimadores simples 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.
- staged_predict()¶
Predice el objetivo de regresión para cada iteración
Este método permite el monitoreo (es decir, determinar el error en el conjunto de pruebas) después de cada etapa.
Nuevo en la versión 0.24.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Las muestras de entrada.
- Produce
- ygenerador de ndarray de forma (n_samples,)
Los valores predichos de las muestras de entrada, para cada iteración.