
💎个人主页:星柚程
🚀精选文章:《MATLAB多目标优化》,《Kaggle:CV、Public LB 》、《我的第一次 Kaggle》、《C++构造传参》、《蛇形机械臂的模拟退火优化》
🛠️专栏建设:|深度学习|、|Python量化|、|C++学习|、|数据结构|
🎯流水不争先,争得是涛涛不绝。

引言
这份金牌方案来自一场学生测试分数预测竞赛,作者以第一名的成绩分享了完整的技术路线。以下是对该方案的系统分析。
1. 总体策略
不盲目追求模型数量,而是先打造多个高性能单模型(最佳单模型可排到第7名),然后通过 190个模型的Ridge集成 进一步提升。总体流程的核心思想:特征工程 + 多样化模型 + 后处理。
2. 特征工程(FE)
针对不同模型类型设计了两个特征集:
特征集1(适合神经网络)
· 循环特征(来自他人公开notebook)
· 某个公式(原文未详细展开)
· 每个数值特征的类别化副本
· 数字特征(digit features)
· 特定特征组合 + 目标编码(均值/标准差/偏度)
· 数字组合 + 目标编码
特征集2(适合GBDT)
· 相同的公式
· 类别特征的序数映射
· 每个基础特征的类别化副本(包括映射后的数值型类别)
· 数字特征
亮点:针对不同模型特性定制特征,同时保留原始信息与组合信息;目标编码的统计量(均值/标准差/偏度)能捕捉交叉特征的分布信息。
3. 模型选择与性能
训练了8个强基模型,按验证集CV分数排序(越低越好):
模型 CV 公榜LB 私榜LB
RealMLP 8.58742 8.54280 8.58005
XGBoost 8.59480 8.55235 8.59251
TabM 8.59651 8.55740 8.59279
CatBoost 8.60027 8.56047 8.59537
DeepTables 8.60147 8.55467 8.59020
LightGBM-dart 8.60870 8.56743 8.60437
Kaggle MLP 8.60910 8.56951 8.60767
Keras MLP 8.61511 8.57016 8.60957
从上面表格不难看出,表现最好的单模型是 RealMLP(一种现代MLP变体),优于XGBoost和TabM。所有模型的CV与LB一致性较高,说明验证策略可靠。还尝试了ResNet、FTTransformer、xLearn FFM等,但效果较弱。
4. 集成方法
最终集成了 190个模型,使用 Ridge回归 作为元学习器。Ridge集成 是一种 集成学习中的堆叠(Stacking)方法,具体是指:
用 Ridge回归(一种带L2正则化的线性回归) 作为元学习器,来组合多个基模型的预测结果。
1. 训练多个基模型:训练了190个不同的模型(如RealMLP、XGBoost、CatBoost等,包含不同特征集、不同超参数、不同随机种子等)。
2. 生成基模型预测:每个基模型都对训练集(或验证集)产生一列预测值。
3. 构造新训练集:将190个基模型的预测值作为 190个特征,真实标签作为目标变量。
4. 训练Ridge回归:在这个“预测值特征”数据集上训练一个Ridge回归模型,学习每个基模型的最佳权重(同时通过L2正则化防止过拟合)。
5. 最终预测:对新数据,先让190个基模型分别预测,得到190个预测值,再输入训练好的Ridge模型,输出最终的集成结果。
为什么用Ridge而不是简单平均或复杂模型?
- · 比简单平均更强:不同基模型性能不同,Ridge可以自动学习给好模型更高权重、差模型更低权重,甚至负权重(如果某个模型总是系统性偏离)。
- · 比复杂元模型更稳:Ridge只有线性组合,几乎不会过拟合;而如果元模型用XGBoost或神经网络,很容易记住190个预测值的噪声,泛化变差。
- · 计算极快:Ridge有解析解(闭式解),即使190个特征也秒级完成。
- · L2正则化:当基模型之间存在高度相关性时(很多模型预测相似),Ridge能稳定权重,防止某个方向权重过大。
与普通堆叠的区别
普通堆叠可能用XGBoost、逻辑回归甚至MLP作为元模型,而Ridge集成特指 线性 + L2正则 的堆叠。在Kaggle表格竞赛中,因为基模型已经很强了,用简单的线性组合往往比花哨的元模型更稳健。
假设只有2个基模型:
· 模型A预测:80,85,90...
· 模型B预测:82,83,91...
· 真实值:81,84,89...
Ridge会学出类似 最终预测 = 0.6×A + 0.4×B 这样的线性公式,同时保证系数不会太大(防止某个模型单点异常影响过大)。
方案中的效果
作者对比了其他集成方式(层次聚类、AutoGluon、CatBoost等),Ridge集成的分数最好,所以最后选用了它。190个模型经过Ridge组合后,CV和LB分数都显著优于任何一个单模型。
- · 集成后CV = 8.56634,公榜 = 8.53096,私榜 = 8.57273(经后处理)。
- · 其他集成方式(层次聚类、AutoGluon、CatBoost等)效果不如Ridge。
启示:Ridge作为简单线性元模型,在基模型多样且相关度不高时非常有效,避免了过拟合。
5. 后处理与超参数调优
· 后处理:尝试了等渗回归(Isotonic Regression),发现“软标签不如硬标签”,最终采用了一种适合自己的后处理方法(原文未详述)。
· 超参数调优:显著提升了模型性能,最佳调优后单模型CV/LB达到8.53635(比表中最好结果还低)。说明调优是必要环节。
6. 潜在可借鉴点
针对NN和GBDT分别构建特征集,可推广到其他表格竞赛。
- · 目标编码中使用“偏度”并不常见,可能捕捉了非线性分布信息。
- · 使用Ridge集成上百个模型,计算成本可控(Ridge闭式解快)。
即便强如Transformer(FTTransformer)也未胜过MLP,说明数据集规模或特性更适合MLP/GBDT混合。
7. 改进空间(思考)
方案未明确“公式”和“数字特征”的具体定义,其他参赛者复现时需自己探索。
· 后处理细节缺失,不过作者指出软标签不如硬标签,这一点值得警惕:有时简单平均或加权比复杂校准更好。
· 190个模型的多样性来源可进一步说明(如不同随机种子、特征子集、超参数组合等)。
总之,这份金牌方案是一份教科书级别的表格数据竞赛实战:扎实的特征工程、多样化的模型池、轻量有效的Ridge集成,以及必要的调优和后处理。适合所有想在Kaggle表格竞赛中冲击前排的学习者参考。


被折叠的 条评论
为什么被折叠?



