【发布时间】:2019-04-24 02:51:23
【问题描述】:
我正在尝试运行我的 lightgbm 以进行如下功能选择;
初始化
# Initialize an empty array to hold feature importances
feature_importances = np.zeros(features_sample.shape[1])
# Create the model with several hyperparameters
model = lgb.LGBMClassifier(objective='binary',
boosting_type = 'goss',
n_estimators = 10000, class_weight ='balanced')
然后我将模型拟合如下
# Fit the model twice to avoid overfitting
for i in range(2):
# Split into training and validation set
train_features, valid_features, train_y, valid_y = train_test_split(train_X, train_Y, test_size = 0.25, random_state = i)
# Train using early stopping
model.fit(train_features, train_y, early_stopping_rounds=100, eval_set = [(valid_features, valid_y)],
eval_metric = 'auc', verbose = 200)
# Record the feature importances
feature_importances += model.feature_importances_
但我收到以下错误
Training until validation scores don't improve for 100 rounds.
Early stopping, best iteration is: [6] valid_0's auc: 0.88648
ValueError: operands could not be broadcast together with shapes (87,) (83,) (87,)
【问题讨论】:
-
如何初始化 feature_importances ?
-
@FlorianMutel 查看更新后的帖子
-
什么是 features_sample ?你有多少功能?例如,我无法使用 Iris 数据重现您的错误。您似乎正在尝试添加具有不同形状的数组。要么您使用错误的维度进行了初始化,要么您的某些特征变为空(全部为 nan),或者在您拆分数据时保持不变(训练/有效),而 lightgbm 会忽略它们。试着看看你的分裂!
标签: python python-3.x lightgbm