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

LightGBM类别特征编码方式及树节点类别与数字对应关系咨询

LightGBM类别特征编码与映射关系查询

1. LightGBM对类别特征的编码方式

LightGBM针对类别特征采用直方图优化的类别特征编码,核心逻辑如下:

  • 直接复用category类型的整数编码:当你以pandas的category格式传入特征时,LightGBM会直接使用该特征自带的cat.codes整数编码,无需额外做LabelEncoder这类预处理。
  • 基于梯度统计的类别分裂:不同于数值特征的阈值分割,LightGBM会统计每个类别对应的梯度和Hessian值,找出最优的类别子集分割方式(比如把部分类别归为左子树,剩余归为右子树),避免One-Hot编码导致的维度膨胀问题。
  • 树结构中的类别分裂标识:当树节点的decision_type为==时,threshold字段的字符串(如3||4||8)代表被分到对应子树的类别编码集合。

2. 查找类别特征数字编码与原始类别的对应关系

你可以通过两种方式获取映射关系:

  • 从原始数据的category列直接提取:
    假设类别特征列名为target_cat_feature,执行以下代码即可得到编码与原始类别的映射:
    # 获取所有原始类别
    original_cats = df['target_cat_feature'].cat.categories
    # 构建编码到类别的字典
    code_to_cat = {code: cat for code, cat in enumerate(original_cats)}
    
    比如code_to_cat[3]就能得到编码为3对应的原始类别。
  • 通过训练好的模型反查特征:
    先通过model.feature_name()找到split_feature:41对应的特征列名,再回到原始数据中查询该列的category编码映射即可。

内容的提问来源于stack exchange,提问作者Марина Толмашова

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:10:16