【发布时间】:2018-12-01 14:19:40
【问题描述】:
我正在运行具有分类特征的lightgbm:
X_train, X_test, y_train, y_test = train_test_split(train_X, train_y, test_size=0.3)
train_data = lgb.Dataset(X_train, label=y_train, feature_name=X_train.columns,
categorical_feature=cat_features)
test_data = lgb.Dataset(X_test, label=y_train, reference=train_data)
param = {'num_trees': 4000, 'objective':'binary', 'metric': 'auc'}
bst = lgb.train(param, train_data, valid_sets=[test_data], early_stopping_rounds=100)
原来是错误:
如果 self.handle 不是 None 并且 feature_name 不是 None 并且 feature_name != 'auto':
ValueError:具有多个元素的数组的真值是 模糊的。使用 a.any() 或 a.all()
我在stackoverflow上检查了其他类似的错误,主要与numpy相关,然后我检查了文档并尝试用[0, 2, 5, ...]之类的索引替换我的categorical_feature(我原来是分类特征的列名),仍然是同样的错误。
我也试过用列索引替换label,还是报错。
有人可以帮忙吗?提前致谢。
【问题讨论】:
-
我的所有分类特征也都经过了 LabelEncoded