使用LightGBM初筛变量的示例代码

# 导入必要的库
import pandas as pd
import lightgbm as lgb

# 读取数据集
data = pd.read_csv('train_data.csv')

# 分离特征列和标签列
feature_cols = [col for col in data.columns if col != 'label']
label_col = 'label'

# 定义模型参数
params = {
    'boosting_type': 'gbdt',
    'objective': 'binary',
    'metric': {'auc'},
    'num_leaves': 31,
    'learning_rate': 0.05,
    'verbose': 0
}

# 训练模型
lgb_data = lgb.Dataset(data[feature_cols], data[label_col])
model = lgb.train(params, lgb_data, num_boost_round=100)

# 获取特征重要性信息
feature_importance = model.feature_importance(importance_type='gain')
feature_importance_df = pd.DataFrame({'feature': feature_cols, 'importance': feature_importance})
feature_importance_df.sort_values(by='importance', ascending=False, inplace=True)

# 取前50个变量作为初筛结果
selected_features = feature_importance_df['feature'][:50].tolist()

# 输出初筛结果
print('The selected features are:', selected_features)

上述代码假设数据集已经准备好,并存储在名为train_data.csv的文件中。该数据集包含多个特征和二元标签。

该示例使用LightGBM训练模型并获取特征重要性信息。我们首先定义特征列和标签列,然后使用LightGBM的train函数来训练模型。在训练过程中,我们指定了num_boost_round参数表示模型需要迭代的次数。

接下来,我们从模型中获取特征重要性信息,可以选择不同的importance_type参数(例如“gain”、“split”等)来计算特征重要性。在本示例中,我们将特征重要性保存到一个Dataframe中,并根据其值将特征排序。

最后,我们选择前50个特征作为初筛结果,并输出它们的名称。这些特征具有比其他特征更高的重要性分数,可能对预测目标变量更加有用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田晖扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值