← 返回竞赛经历AI 竞赛 / 天池 / Datawhale

天池量化赛道:拆解一个 Baseline 的工程结构

从数据读取、交叉验证、CatBoost 到并行实验,理解竞赛 Baseline 各模块的职责。

面对一份较长的竞赛 Baseline,最初的困难不是某一行代码,而是不知道整个流程为什么这样组织。我的方法是先按职责拆分,再逐段验证输入与输出。

数据层

pandas 适合快速探索,polars 可以处理更大规模的数据。第一步先确认训练集、测试集、标签与主键字段,避免在特征处理中误用未来信息。

验证层

分类任务使用 StratifiedKFold 可以让每折的类别比例更稳定。交叉验证的目的不仅是得到平均分,还可以观察不同折之间的波动:波动很大时,可能需要重新检查切分方式或数据分布。

模型层

CatBoost 对类别特征比较友好,是表格任务中常见的强 Baseline。开始时先使用少量稳定特征和保守参数,确认完整流程能运行、指标能复现,再进行特征与参数实验。

工程层

Baseline 中的 joblib 用于保存模型或并行任务,tqdm 提供进度,gc 处理内存压力。理解这些模块后,长脚本就不再是一整块黑盒,而是一条可以逐步调试的数据流水线。

这次学习的最大收获是:读 Baseline 不应该从第一行机械运行到最后一行,而应先画出数据流,再为每个阶段建立可验证的中间结果。