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 de max_bins intervalos. Además de los max_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 la n_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. Si scoring 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 si validation_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

fit

Ajusta el modelo de potenciación de gradiente.

get_params

Obtiene los parámetros para este estimador.

predict

Predice valores para X.

score

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

set_params

Establece los parámetros de este estimador.

staged_predict

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 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 muestras.

Devuelve
scorefloat

\(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 consistencia 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 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.

Ejemplos utilizando sklearn.ensemble.HistGradientBoostingRegressor