Solución:
Supongo que recibe esta advertencia en una llamada a lgb.train
. Esta función también tiene argumento categorical_feature
y 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)