You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不删除ID列的前提下让LGBMClassifier忽略该列?

解决方法

核心思路:训练阶段排除id列作为模型输入特征,测试阶段单独保留id列,仅用其余有效特征执行预测,最后将预测结果与id关联输出。

  • 拆分训练数据
    从训练集特征中直接移除id和目标列tgt,确保模型只学习业务相关特征:

    x_train = train.drop(columns=['id', 'tgt'], axis=1)
    y_train = train['tgt']
    
  • 处理测试数据
    单独提取测试集的id列留存,再构建不含id的测试特征集:

    # 保留id列用于后续关联预测结果
    test_ids = test_new['id']
    x_test = test_new.drop(columns=['id', 'tgt'], axis=1)
    y_test = test_new['tgt']
    
  • 模型训练与结果关联
    完成模型训练后,用测试特征执行预测,最后合并id与预测结果:

    rand = LGBMClassifier(seed=seed, learning_rate=0.1, num_leaves=12, n_estimators=700)
    train_data = lgb.Dataset(x_train, label=y_train)
    rand.fit(train_data)
    
    # 生成预测结果
    y_pred = rand.predict(x_test)
    # 合并id与预测结果,得到带标识的输出
    predict_result = pd.DataFrame({'id': test_ids, 'prediction': y_pred})
    

内容的提问来源于stack exchange,提问作者zeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:04:50