Hiperparámetros de LightGBM - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Hiperparámetros de LightGBM

La siguiente tabla contiene el subconjunto de hiperparámetros que se requieren o se utilizan con más frecuencia para el algoritmo LightGBM de Amazon SageMaker AI. Los usuarios establecen estos parámetros para facilitar la estimación de los parámetros del modelo a partir de los datos. El algoritmo SageMaker AI LightGBM es una implementación del paquete LightGBM de código abierto.

nota

Los hiperparámetros predeterminados se basan en conjuntos de datos de ejemplo de Ejemplos de cuadernos LightGBM.

De forma predeterminada, el algoritmo SageMaker AI LightGBM elige automáticamente una métrica de evaluación y una función objetivo en función del tipo de problema de clasificación. El algoritmo LightGBM detecta el tipo de problema de clasificación a partir del número de etiquetas en los datos. Para los problemas de regresión, la métrica de evaluación es la raíz del error cuadrático medio y la función objetivo es la pérdida L2. Para los problemas de clasificación binaria, la métrica de evaluación y la función objetivo son la entropía cruzada binaria. Para los problemas de clasificación multiclase, la métrica de evaluación es la entropía cruzada multiclase y la función objetivo es softmax. Puede usar el hiperparámetro metric para cambiar la métrica de evaluación predeterminada. Consulte la siguiente tabla para obtener más información sobre los hiperparámetros en LightGBM, lo que incluye las descripciones, los valores válidos y los valores predeterminados.

Nombre del parámetro Descripción
num_boost_round

El número máximo de iteraciones de potenciación. Nota: Internamente, LightGBM construye árboles num_class * num_boost_round para problemas de clasificación multiclase.

Valores válidos: entero positivo.

Valor predeterminado: 100.

early_stopping_rounds

El entrenamiento se detendrá si una métrica de un punto de datos de validación no mejora en la última ronda early_stopping_rounds. Si early_stopping_rounds es inferior o igual a cero, se omite este hiperparámetro.

Valores válidos: número entero

Valor predeterminado: 10.

metric

Métricas de evaluación de los datos de validación. Si metric se establece en el valor "auto" predeterminado, el algoritmo elige automáticamente una métrica de evaluación en función del tipo de problema de clasificación:

  • rmse para la regresión

  • binary_logloss para la clasificación binaria

  • multi_logloss para la clasificación multiclase

Valores válidos: cadena, valores "auto", "rmse", "l1", "l2", "huber", "fair", "binary_logloss", "binary_error", "auc", "average_precision", "multi_logloss", "multi_error", "auc_mu" o "cross_entropy".

Valor predeterminado: "auto".

learning_rate

La velocidad a la que se actualizan los pesos del modelo después de pasar por cada lote de ejemplos de entrenamiento.

Valores válidos: flotante, rango (0.0, 1.0).

Valor predeterminado: 0.1.

num_leaves

El número máximo de hojas de un árbol.

Valores válidos: entero, rango (1, 131072).

Valor predeterminado: 64.

feature_fraction

Un subconjunto de características que se seleccionarán en cada iteración (árbol). Debe ser menos de 1,0.

Valores válidos: flotante, rango (0.0, 1.0).

Valor predeterminado: 0.9.

bagging_fraction

Un subconjunto de características similar a feature_fraction, pero bagging_fraction selecciona aleatoriamente una parte de los datos sin necesidad de volver a muestrearlos.

Valores válidos: flotante, rango (0.0, 1.0).

Valor predeterminado: 0.9.

bagging_freq

La frecuencia con la que se realiza el bagging. En cada iteración de bagging_freq, LightGBM selecciona aleatoriamente un porcentaje de los datos para usarlos en la siguiente iteración bagging_freq. Este porcentaje lo determina el hiperparámetro bagging_fraction. Si bagging_freq es cero, se desactiva el bagging.

Valores válidos: número entero no negativo.

Valor predeterminado: 1.

max_depth

La profundidad máxima de un modelo de árbol. Se utiliza para tratar el sobreajuste cuando la cantidad de datos es pequeña. Si max_depth es menor o igual a cero, significa que no hay límite para la profundidad máxima.

Valores válidos: número entero

Valor predeterminado: 6.

min_data_in_leaf

La cantidad mínima de datos en una hoja. Se puede utilizar para hacer frente al sobreajuste.

Valores válidos: número entero no negativo.

Valor predeterminado: 3.

max_delta_step

Se usa para limitar la producción máxima de hojas de árboles. Si max_delta_step es inferior o igual a 0, no hay ninguna restricción. La salida máxima final de hojas es learning_rate * max_delta_step.

Valores válidos: número flotante

Valor predeterminado: 0.0.

lambda_l1

Regularización L1.

Valores válidos: número flotante no negativo.

Valor predeterminado: 0.0.

lambda_l2

Regularización L2.

Valores válidos: número flotante no negativo.

Valor predeterminado: 0.0.

boosting

Tipo de potenciación

Valores válidos: cadena ("gbdt", "rf", "dart" o "goss").

Valor predeterminado: "gbdt".

min_gain_to_split

La ganancia mínima para realizar una división. Se puede utilizar para acelerar el entrenamiento.

Valores válidos: número flotante no negativo.

Valor predeterminado: 0.0.

scale_pos_weight

La ponderación de las etiquetas con clase positiva. Se usa solo para tareas de clasificación binaria. scale_pos_weight no se puede usar si is_unbalance está establecido en "True".

Valores válidos: número flotante positivo.

Valor predeterminado: 1.0.

tree_learner

Tipo de aprendiz en árbol.

Valores válidos: cadena ("serial", "feature", "data" o "voting").

Valor predeterminado: "serial".

feature_fraction_bynode

Seleccione un subconjunto de características aleatorias en cada nodo del árbol. Por ejemplo, si feature_fraction_bynode es 0.8, se selecciona el 80 % de las características. Se puede utilizar para hacer frente al sobreajuste.

Valores válidos: entero, rango [0.0, 1.0].

Valor predeterminado: 1.0.

is_unbalance

Se establece en "True" si los datos de entrenamiento están desequilibrados. Se usa solo para tareas de clasificación binaria. is_unbalance no se puede usar con scale_pos_weight.

Valores válidos: cadena ("True" o "False").

Valor predeterminado: "False".

max_bin

El número máximo de contenedores utilizados para los valores de las características. de buckets. Un número reducido de contenedores puede reducir la precisión del entrenamiento, pero puede aumentar el rendimiento general. Se puede utilizar para hacer frente al sobreajuste.

Valores válidos: entero, rango (1, ∞).

Valor predeterminado: 255.

tweedie_variance_power

Controla la varianza de la distribución de Tweedie. Colóquelo más cerca de 2.0 para cambiar hacia una distribución gamma. Colóquelo más cerca de 1.0 para cambiar hacia una distribución Poisson. Se usa solo para tareas de regresión.

Valores válidos: flotante, con el rango [1.0, 2.0].

Valor predeterminado: 1.5.

num_threads

Número de subprocesos paralelos utilizados para ejecutar LightGBM. El valor 0 indica el número predeterminado de subprocesos en OpenMP.

Valores válidos: número entero no negativo.

Valor predeterminado: 0.

verbosity

La verbosidad de los mensajes de impresión. Si verbosity es inferior a 0, los mensajes de impresión solo muestran errores graves. Si verbosity está configurado en 0, los mensajes de impresión incluyen errores y advertencias. Si verbosity es 1, los mensajes de impresión muestran más información. Un verbosity mayor a 1 muestra la mayor cantidad de información en los mensajes de impresión y se puede usar para depurar.

Valores válidos: número entero

Valor predeterminado: 1.