表格数据十连测:树模型在中小数据集上依然能打
团队里深度学习上头,什么任务都想套网络。拿十个真实的业务表格数据集做了轮系统对比,给模型选型立个规矩。数据集规模从八千行到五十万行,涵盖风控、营销、设备、质检,统一五折交叉验证看AUC。
参赛选手:XGBoost、LightGBM、CatBoost、随机森林、一个六层的MLP、一个简单的TabNet。调参预算对等,每个模型给三轮贝叶斯搜索,防止欺负谁。
总比分:十场比赛,LightGBM拿下五个,XGBoost三个,CatBoost两个,深度阵营颗粒无收。分差最大的一场,LightGBM比MLP高4.1个点的AUC;分差最小的一场是三十万行的高维稀疏数据,MLP追到只差0.3个点,趋势符合直觉:数据量和维度上去后,差距在收窄。
# 十连测的统一评测骨架
for name, model in candidates.items():
aucs = []
for tr, va in kfold.split(X, y):
model.fit(X[tr], y[tr])
aucs.append(roc_auc(y[va], model.predict_proba(X[va])[:, 1]))
print(name, np.mean(aucs), np.std(aucs))
拆解原因。树模型对表格数据的优势有三个来源:天然处理混合类型特征,数值和类别不用精细预处理;对单调变换不敏感,不用纠结要不要归一化;贪心分裂自动做特征选择和交互,中小样本下归纳偏置刚好。MLP要达到同等效果,特征工程的功夫一点不能省,还得调结构,性价比自然落后。
深度方法翻盘的条件也明确了:单表超过千万行、原始输入是非结构化信号、或者要和多模态embedding拼接端到端训练。满足其一,网络的容量优势才开始兑现。
结论落地成团队规范:表格任务默认LightGBM起步,它是速度和精度的均衡点;类别特征多且懒得起做编码时换CatBoost;深度模型要走立项理由,说明为什么树不行。不是新技术不好,是选型要讲证据。
十连测的方法论瑕疵也自我检讨一下,结论的边界要交代。三个模型给出的调参预算虽对等,但深度模型的性能对调参预算更敏感,给它十倍预算可能追回一两个点,这是对比实验的公平性争议,如实说明。数据规模的上限也要强调,五十万行是十连测的上界,超过百万行的表格,神经网络的差距会进一步收窄,文献和我们的补充实验一致。落地层面还有个非技术因素:树模型的迭代周期短,特征改了五分钟能看结果,MLP一轮半小时,实验节奏的差异在真实项目里经常比单次精度更重要。选型报告的最后一行我写的是:默认树模型,例外走特批,半年下来特批了两次,都被数据打回来了。
- 点赞
- 收藏
- 关注作者
评论(0)