sklearn.ensemble.HistGradientBoostingClassifier

class sklearn.ensemble.HistGradientBoostingClassifier

Árbol de Clasificación de Potenciación de Gradiente basado en histograma.

Este estimador es mucho más rápido que GradientBoostingClassifier 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 HistGradientBoostingClassifier

Leer más en el Manual de Usuario.

Nuevo en la versión 0.21.

Parámetros
loss{“auto”, “binary_crossentropy”, “categorical_crossentropy”}, default=”auto”

La función de pérdida a utilizar en el proceso de potenciación. “binary_crossentropy” (también conocida como pérdida logística) se utiliza para la clasificación binaria y se generaliza a “categorical_crossentropy” para la clasificación multiclase. “auto” elegirá automáticamente cualquiera de las pérdidas dependiendo de la naturaleza del problema.

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 para la clasificación binaria. Para la clasificación multiclase, se construyen n_classes árboles por iteración.

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.

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.

  • boolean array-like : máscara booleana que indica características categóricas.

  • array-like de enteros: í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 invocable (ver Definir tu estrategia de puntuación a partir de funciones métricas). Si es None, se utiliza el puntuador por defecto 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. 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
classes_arreglo, forma = (n_classes,)

Etiquetas de clase.

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. Esto es igual a 1 para la clasificación binaria, y a n_classes para la clasificación multiclase.

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 HistGradientBoostingClassifier
>>> from sklearn.datasets import load_iris
>>> X, y = load_iris(return_X_y=True)
>>> clf = HistGradientBoostingClassifier().fit(X, y)
>>> clf.score(X, y)
1.0

Métodos

decision_function

Calcula la función de decisión de X.

fit

Ajusta el modelo de potenciación de gradiente.

get_params

Obtiene los parámetros para este estimador.

predict

Predice clases para X.

predict_proba

Predice las probabilidades de clase para X.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dadas.

set_params

Establece los parámetros de este estimador.

staged_decision_function

Calcula la función de decisión de X para cada iteración.

staged_predict

Predice clases en cada iteración.

staged_predict_proba

Predice las probabilidades de clase en cada iteración.

decision_function()

Calcula la función de decisión de X.

Parámetros
Xarray-like, forma (n_samples, n_features)

Las muestras de entrada.

Devuelve
decisionndarray, forma (n_samples,) o (n_samples, n_trees_per_iteration)

Los valores predichos en bruto (es decir, la suma de las hojas de los árboles) para cada muestra. n_trees_per_iteration es igual al número de clases en la clasificación multiclase.

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 clases para X.

Parámetros
Xarray-like, forma (n_samples, n_features)

Las muestras de entrada.

Devuelve
yndarray, forma (n_samples,)

Las clases predichas.

predict_proba()

Predice las probabilidades de clase para X.

Parámetros
Xarray-like, forma (n_samples, n_features)

Las muestras de entrada.

Devuelve
pndarray, forma (n_samples, n_classes)

Las probabilidades de clase de las muestras de entrada.

score()

Devuelve la precisión media en los datos de prueba y las etiquetas dadas.

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

Ponderaciones de muestras.

Devuelve
scorefloat

Precisión media de self.predict(X) con respecto a y.

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_decision_function()

Calcula la función de decisión de X 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.

Parámetros
Xarray-like de forma (n_samples, n_features)

Las muestras de entrada.

Produce
decisiongenerator de ndarray de forma (n_samples,) o (n_samples, n_trees_per_iteration)

La función de decisión de las muestras de entrada, que corresponde a los valores en bruto predichos a partir de los árboles del ensemble. Las clases corresponden a la del atributo classes_.

staged_predict()

Predice clases en 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
ygenerator de ndarray de forma (n_samples,)

Las clases predichas de las muestras de entrada, para cada iteración.

staged_predict_proba()

Predice las probabilidades de clase en cada iteración.

Este método permite el monitoreo (es decir, determinar el error en el conjunto de pruebas) después de cada etapa.

Parámetros
Xarray-like de forma (n_samples, n_features)

Las muestras de entrada.

Produce
ygenerator de ndarray de forma (n_samples,)

Las probabilidades de clase predichas de las muestras de entrada, para cada iteración.

Ejemplos utilizando sklearn.ensemble.HistGradientBoostingClassifier