第 122 题:交叉特征的自动发现,GBDT特征重要性的阈值选择?
题目
交叉特征的自动发现,GBDT特征重要性的阈值选择?
完整讲解
一、交叉特征的自动发现
交叉特征(如 user_age × item_category)能刻画组合模式,但人工枚举成本高、易遗漏。自动发现即用数据与模型自动筛选「哪些单特征或组合对目标有用」,常用 GBDT:树每层分裂即一次特征(或阈值)选择,分裂带来的增益可视为该特征/该点的贡献,汇总为特征重要性(如 gain、split count、cover)。重要性高的特征可视为「自动发现」的强特征,进一步可构造交叉:取重要性 Top 的特征两两或高阶组合作为新特征,或直接用 GBDT 的叶子索引/路径作为交叉表示。
二、GBDT 特征重要性的计算
- Gain:该特征在所有分裂上的信息增益之和;大则说明该特征分裂带来的损失下降多。
- Split count:该特征被选为分裂点的次数;多则使用频繁。
- Cover:该特征分裂所覆盖的样本量;可做归一化权重。
重要性可用于排序特征、做自动筛选:只保留重要性高于某阈值的特征或交叉项,或按重要性加权输入下游 DNN。
三、阈值选择
- 固定分位:保留重要性 Top 10% 或 Top K 个,等价于按排名设阈值。
- 按增益绝对值:设 gain 的阈值,如只保留 gain > 某分位数(如中位数)的特征;需在验证集或 OOB 上看「阈值-效果」曲线,避免过严(丢有用特征)或过松(噪声多)。
- 与业务结合:强业务必选特征可白名单保留;其余按重要性阈值过滤。阈值可随数据周期重算(如每周用近期数据跑 GBDT 得新重要性、更新阈值)。
- 交叉构造后的阈值:若用「重要性 Top 的两两组合」建交叉,可对交叉项再跑一次 GBDT 或线性模型,对交叉项重要性再设阈值,控制特征膨胀。
四、工程要点
- 重要性依赖当前 GBDT 的树结构与数据;分布漂移时需重算。
- 阈值过严导致欠拟合、过松导致过拟合与线上特征爆炸,建议用验证集/AUC 或线上 A/B 定阈值。
面试要点
- 能说明用 GBDT 分裂与增益做特征重要性、用于自动发现重要特征与交叉思路。
- 能说清重要性指标(gain、split count、cover)及阈值选择的几种方式(Top K、分位数、验证曲线)。
- 能提及阈值过严/过松的影响、与业务白名单、周期性更新。
记忆要点
- 交叉自动发现:GBDT 特征重要性(gain/split/cover)排序,取 Top 构造交叉或叶子/路径。
- 阈值:Top K、按 gain 分位数、验证集曲线;过严丢特征、过松噪声多。
- 重要性随数据与模型变,需周期性重算与阈值更新。