Когда я обучил набор данных с помощью Lightgbm, процесс обучения прошел хорошо, как обычно, пока не появилась неожиданная ошибка: «LightGBMError: Неверный размер name_names». Что пошло не так?
env: Linux-Red Hat 4.8.5
память: 500G
python: python 3.6.5
lightgbm: lightgbm 2.2.3
Я использовал тот же способ и кодирование для обучения набора данных, и все прошло хорошо. За исключением этого времени набор данных довольно большой (необработанные данные почти 40 ГБ, почти 80 ГБ загружены в качестве фрейма данных Pandas), а имена его функций включают некоторые китайские символы после горячего кодирования.
import pandas as pd
import numpy as np
import lightgbm as lgb
from sklearn.model_selection import train_test_split
import dic_description as dic
……
List_cat1 = list(df_cat_dummy.columns)
df_l = df['LOST_TAG']
del df['LOST_TAG']
x_train, x_test, y_train, y_test = train_test_split(df, df_l, test_size=0.3, random_state=32)
del df
lgb_train = lgb.Dataset(x_train, y_train, free_raw_data=False, feature_name=list(x_train.columns),categorical_feature=List_cat1)
lgb_eval = lgb.Dataset(x_test, y_test, reference=lgb_train, free_raw_data=False, feature_name=list(x_test.columns),categorical_feature=List_cat1)
……
lgb1 = lgb.train(params,
lgb_train,
num_boost_round=1000,
valid_sets=[lgb_eval, lgb_train],
early_stopping_rounds=50)
И это все ещехорошо тренировался и встретил раннюю остановку на этот раз и показал Лучшую итерацию. Но затем сразу же появилась ошибка:
LightGBMError Traceback (most recent call last)
…………
LightGBMError: Wrong size of feature_names
Затем я долго искал в сети. Я попытался не устанавливать имя_функции, категориальную_функцию в методе lightgbm.Dataset, как предлагали другие люди. Но бесполезно.