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 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.
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 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. 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
. 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 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
Calcula la función de decisión de
X
.Ajusta el modelo de potenciación de gradiente.
Obtiene los parámetros para este estimador.
Predice clases para X.
Predice las probabilidades de clase para X.
Devuelve la precisión media en los datos de prueba y las etiquetas dadas.
Establece los parámetros de este estimador.
Calcula la función de decisión de
X
para cada iteración.Predice clases en cada iteración.
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 ay
.
- 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.