赛题理解与数据分析

赛题理解与数据分析


一、结构化竞赛的通用解题流程

维度 说明
标准流程 赛题理解 → 数据分析 → 特征工程 → 模型构建 → 验证打分 → 模型集成
初期策略 比赛初期先把完整路线走通,能够成功提交,了解比赛全貌后再深入每个细节
重要性分配 数据理解与特征工程占50%,模型集成占30%,模型与超参数调优占20%
核心原则 结构化比赛对计算资源友好,CPU即可运行,适合入门学习

二、匿名数据的分析方法

维度 说明
匿名含义 字段含义未给出,但字段本身仍有内容和规律,需要根据分布和属性进行分析
分析维度 字段自身分布、字段与标签的分布关系、字段属性(如时间窗口、指标类型)
相关性分析 找到相关性后,可将多个字段组合进行联合分析,构造新特征
特征分组 匿名特征可能成组出现,不同组的编码方式和特征提取方式可能不同,需分类处理

三、时间字段与周期分析

维度 说明
Date字段 表示第几天,训练集中通常从0到499取值,500天约等于两年的工作日周期(250天/年)
Tsid字段 表示具体时间的次序,是累计值而非每天清零,可用于反推原始日期
日期反推价值 若能反推具体日期,可分析节假日、特殊事件对交易的影响
趋势突变点 按Date分组统计特征均值,可能发现某个时间节点前后走势完全不同(如第85天),需决定是否剔除突变前数据
交易机会密度 按天统计交易机会数量,可判断数据粒度(秒级/分钟级),大部分交易日机会数介于2500到5000之间

四、Response字段与多标签训练

维度 说明
Response字段 通常有多个(如response_1到response_4及最终response),分别表示不同时间维度的收益
仅训练集可用 Response字段只在训练集中出现,测试集中没有
多标签训练 可同时对多个Response字段进行分类训练,相当于增加正则化,稳定模型表现
Loss权重调节 不同时间维度的Response重要性不同,可尝试为不同Response分配不同的Loss权重
相关性注意 不同时间维度的Response相关性较大,但并非简单求和关系

五、Weight字段与评分逻辑

维度 说明
评分公式 最终得分 = sum(weight_i * response_i * action_i) / sqrt(sum(weight_i^2)),平摊到每年(除以sqrt(250))
Weight含义 可理解为仓位比例或交易金额,训练集和测试集中都包含
Weight为零的处理 Weight为零时收益为零,训练时可筛选Weight非零的样本参与训练
Weight与Response分离 不建议将Weight和Response简单相乘后预测
Action决策 Response为正时Action应为1(买入/持有),Response为负时Action应为0(卖出/空仓)

六、特征元数据(features.csv)的利用

维度 说明
Tag标签体系 features.csv为每个特征打了Tag标签,相当于One-Hot编码
特征分类 根据Tag可将130个特征分类,理解哪些特征相关、哪些可组合构造新特征
时间窗口Tag 区分特征描述的是过去1天、10天还是30天的信息
指标类型Tag 区分特征是否与volume、price等指标相关
构造新特征 基于Tag分类,可对同组特征进行交叉、聚合等操作构造新特征

七、数据理解的核心要点

维度 说明
每条记录含义 训练集每行代表一次交易机会,而非某只股票的固定时序记录
多股票混合 数据集可能包含市场上所有股票触发了交易规则的时刻
Feature_0假设 特征0有可能是买入/卖出方向的标志
策略已触发 比赛数据集本质是量化公司的交易系统已触发了策略,选手只需判断具体交易动作
未来收益预测 Response往往是用未来一段时间的收益来计算,而非过去

八、时间序列预测的分类维度

维度 说明
按变量数 单变量(仅预测一个序列)vs 多变量(同时预测多个相关序列);多变量可拆分为多个单变量问题分别建模
按预测步长 单步预测(仅预测下一个时间点)vs 多步预测(预测未来多个时间点);多步预测常用递归策略或直接多输出策略
按序列数量 单序列 vs 多序列(成千上万条序列);多序列场景下数据预处理非常繁杂
按预测类型 点预测(输出单一值)vs 区间预测(输出置信区间)
变量类型 动态变量(随时间变化)vs 静态变量(不随时间变化);DNN模型中需将静态和动态数据分开输入

九、时间序列数据的成分分解

维度 说明
固有值(Level) 序列数据本身的数据大小程度;可通过历史中位数或鲁棒性均值衡量
趋势性(Trend) 随时间变化的序列变化模式,可为线性或非线性的增加/减少行为;是时间序列预测最大的难题之一
季节性(Seasonality) 序列数据随时间变化的重复模式或周期行为,如周度/月度/季度的周期规律
周期性(Cycle) 发生频率低于季节性波动,且没有固定变化周期,如经济周期
噪声(Noise) 模型无法解释的残差部分
注意事项 并非所有时间序列都同时存在趋势性、周期性和季节性

十、GBT模型对趋势性的捕获局限

维度 说明
核心问题 GBT(LightGBM/XGBoost/CatBoost)对季节性捕获能力强,但对趋势性捕获能力极差
根本原因 GBT的预测本质是叶节点梯度的求和,预测值无法超出训练数据的取值范围
影响 当未来数据存在持续增长趋势时,GBT预测会出现系统性低估
解决方案 (1) 线性回归拟合趋势,残差再用GBT拟合;(2) 移动平均/中位数模型拟合趋势后残差用NN拟合;(3) 直接使用NN模型

十一、Offset+Log变换(时序数据标准化)

维度 说明
问题背景 多序列时间序列数据中,不同序列的量纲差异极大
核心方法 log(1 + offset * x),其中offset为放缩系数(如0.5)
与log1p的区别 log1p是 log(1 + x),offset+log引入了可调的放缩系数
代码示例 train_log = np.log1p(offset * train_raw),预测还原:pred = np.expm1(pred_log) / offset
核心优势 通过调整offset参数,可灵活控制不同序列间量纲差异的压缩程度

十二、固有值去除(时序数据去量纲)

维度 说明
核心思想 在offset+log变换之后,减去每个序列的历史中位数,去除序列的固有值
实现方式 train_normalized = train_log - median_per_series
预测还原 pred_log = pred_normalized + median_per_series,再通过 np.expm1() 和除以offset还原
核心优势 将不同量纲序列的差异压缩到极小范围,使模型更容易学习到波动模式而非绝对大小

十三、SMAPE评价指标

维度 说明
公式 SMAPE = (2/n) * Σ
与MAE/MAPE的关系 MAE是无界指标;MAPE有缺陷;SMAPE针对MAPE的缺陷设计,更加鲁棒
除零处理 当真实值和预测值均为0时分母为0,Kaggle Web Traffic比赛的处理方式是直接取0
值域 0%~200%,值越小越好