如何解决LightGBMError:不支持功能名称中的特殊 JSON 字符
我是机器学习的新手,我已经在网上查看了答案,但没有找到确切的解决方案。
from math import sqrt
from sklearn.metrics import mean_squared_log_error
import lightgbm as lgb
train_data = lgb.Dataset(X_train,label=y_train)
test_data = lgb.Dataset(X_cv,label=y_cv)
param = {'objective': 'regression','boosting': 'gbdt','num_iterations': 3000,'learning_rate': 0.06,'num_leaves': 40,'max_depth': 24,'min_data_in_leaf':11,'max_bin': 4,'metric': 'l2_root'
}
param = np.array(param)
lgbm = lgb.train(params=param,verbose_eval=1000,train_set=train_data,valid_sets=[test_data])
解决方法
可能您在功能名称中使用了禁止字符。请尝试将您的数据转换为 numpy 数组:
train_data = lgb.Dataset(X_train.to_numpy(),label=y_train)
test_data = lgb.Dataset(X_cv.to_numpy(),label=y_cv)
Numpy 数组没有特征名称,所以应该开始训练。
,提供的示例不可重现,因为它不包含创建 X_train
、y_train、X_cv
和 y_cv
的代码。
但是,可以使用 lightgbm
3.1.1 和 Python 3.8 使用以下内容重现引用的错误消息。
import lightgbm as lgb
import numpy as np
import pandas as pd
X = pd.DataFrame({
"x,1": np.random.random(100),"x_2": np.random.random(100)
})
y = np.random.random(100)
reg = lgb.LGBMRegressor()
reg.fit(X,y)
此错误消息表示,在 JSON 中具有特殊含义的字符 ,
不能用于功能名称。
为避免此错误,请从功能名称中删除以下任何字符:
,
]
[
{
}
"
:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。