Saltar al contenido

LightGBM ‘Uso de categorical_feature en el conjunto de datos’. ¿Advertencia?

Solución:

Supongo que recibe esta advertencia en una llamada a lgb.train. Esta función también tiene argumento categorical_featurey su valor predeterminado es 'auto', lo que significa tomar columnas categóricas de pandas.DataFrame (documentación). La advertencia, que se emite en esta línea, indica que, a pesar de lgb.train ha solicitado que las características categóricas se identifiquen automáticamente, LightGBM utilizará las características especificadas en el conjunto de datos en su lugar.

Para evitar la advertencia, puede dar el mismo argumento categorical_feature a ambos lgb.Dataset y lgb.train. Alternativamente, puede construir el conjunto de datos con categorical_feature=None y solo especifique las características categóricas en lgb.train.

Como usuario andrey-popov descrito puede utilizar el lgb.train‘s categorical_feature parámetro para deshacerse de esta advertencia.

A continuación se muestra un ejemplo simple con un código de cómo podría hacerlo:

# Define categorical features
cat_feats = ['item_id', 'dept_id', 'store_id', 'cat_id', 'state_id', 'event_name_1', 
             'event_type_1', 'event_name_2', 'event_type_2']
...

# Define the datasets with the categorical_feature parameter
train_data = lgb.Dataset(X.loc[train_idx], Y.loc[train_idx], 
    categorical_feature=cat_feats, free_raw_data=False)
valid_data = lgb.Dataset(X.loc[valid_idx], Y.loc[valid_idx], 
    categorical_feature=cat_feats, free_raw_data=False)

# And train using the categorical_feature parameter
lgb.train(lgb_params, train_data, valid_sets=[valid_data], verbose_eval=20, 
    categorical_feature=cat_feats, num_boost_round=1200)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *