为什么lightgbm训练出错,显示“ feature_names大小错误”?

问题描述 投票:0回答:1

当我使用Lightgbm训练数据集时,训练进度照常进行,直到出现意外错误:“ LightGBMError:feature_names的大小错误”。出了什么问题?

env:Linux-Red Hat 4.8.5

内存:500G

python:python 3.6.5

lightgbm:lightgbm 2.2.3

我一直在使用相同的方法和编码来训练数据集,而且一切都进行得很顺利。除了这次,数据集很大(原始数据接近40G,将近80G作为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方法上设置feature_name,categorical_feature。但是没有用。

python machine-learning lightgbm
1个回答
0
投票

我得到了答案,我认为确实涉及汉字问题。我将所有功能名称更改为简短的非中文字符名称,问题得以解决。

© www.soinside.com 2019 - 2024. All rights reserved.