Datawhale AI夏令营-科大讯飞-用户新增预测挑战赛 赛季3

一、理解
「用户新增预测挑战赛」是由科大讯飞主办的一项数据科学竞赛,旨在通过机器学习方法预测用户是否为新增用户。 赛题提供了讯飞开放平台的海量应用数据作为训练样本, 参赛者需构建模型对测试数据中的用户进行分类,判断其是否为新增用户。 比赛属于二分类任务,评价指标采用F1分数,分数越高表示模型性能越好。
知识点提要 : 解决实际业务问题:预测用户新增情况,优化产品迭代策略 掌握结构化数据处理全流程:特征工程、编码技巧、模型构建与调优 学习关键评估指标F1-score在二分类不平衡场景的应用 实践高级特征工程技巧:时间特征提取 掌握LightGBM模型和交叉验证的最佳实践
在开始建立AI模型之前,我们需要全面理解赛题的背景和要求,
对问题进行清晰的定义,并分析数据的特征,理解解题的要点和难点。这将有助于我们选择合适的模型和方法来解决问题。
要解这道题,需要解决以下要点和难点: 用户行为事件数据 → 用户级别预测 高维稀疏特征(设备/地域/行为ID) 正负样本不均衡(新增用户占比较少) 用户行为聚合:如何将事件级数据转化为用户特征 时间敏感特征:用户行为模式随时间变化
要解这道题,需要解决以下要点和难点: 用户行为事件数据 → 用户级别预测 高维稀疏特征(设备/地域/行为ID) 正负样本不均衡(新增用户占比较少) 用户行为聚合:如何将事件级数据转化为用户特征 时间敏感特征:用户行为模式随时间变化
Baseline设计思路
| 模块 | 具体设计 | 参考依据/方法论 |
|---|---|---|
| 特征设计 | 提取时间特征(如时段、停留时长等) | 用户行为分析理论(行为模式捕捉) |
| 模型选择 | 采用LightGBM | - 模型稳定性高 - 训练效率快 - 数据预处理需求低 |
| 五折交叉验证 | Scikit-learn最佳实践 | |
| 阈值优化 | 基于F1-score动态调整分类阈值 | 精确率-召回率平衡策略 |
| 方案优点 | 技术实现 | 实际效益 |
|---|---|---|
| 避免数据泄露 | 采用五折目标编码(5-fold Target Encoding) | 防止验证集信息污染训练集 |
| 计算高效 | 基于LightGBM的直方图算法法与并行训练 | 训练速度比XGBoost快3-5倍 |
方案优点:
- 数据预处理完整
- 时间特征提取:将毫秒时间戳转换为 day 、 dayofweek 、 hour 等可解释的时序特征,捕捉用户行为的周期性规律。
- 类别特征编码:对 device_brand 、 operator 等高基数类别特征使用 LabelEncoder 进行编码,避免了独热编码导致的维度爆炸问题。
- 交叉验证策略:采用 StratifiedKFold 分层交叉验证,确保训练集和验证集的类别分布一致性,减少模型偏差。
- 模型选择合理
- 使用LightGBM作为基模型,适合高维稀疏数据,且对类别特征处理友好(如 udmap 中的JSON字段)。
- 阈值优化:通过动态调整分类阈值( find_optimal_threshold )最大化F1分数,适应类别不平衡问题(新增用户比例较低)。
- 特征重要性分析
- 输出特征重要性( gain ),帮助识别关键特征(如 udmap 中的插件ID或助手ID),为后续特征优化提供方向。
方案不足:
- 特征工程深度不足
- 未充分挖掘 udmap 字段中的JSON信息(如 botId 、 pluginId ),仅将其作为类别特征处理,未提取组合特征(如 botId+pluginId 的交互)。
- 忽略用户行为序列模式(如用户访问频次、事件路径),未能构建基于时间窗口的统计特征(如24小时内访问次数、连续登录天数)。
- 模型调参空间有限
- 参数固定(如 max_depth=12 、 num_leaves=63 ),未通过网格搜索或贝叶斯优化探索更优参数组合。
- 未尝试集成模型(如CatBoost、XGBoost)或模型融合策略(如Stacking)提升泛化能力。
进阶方案
进阶要点1:如何挖掘用户行为信息 时间序列特征: 滑动窗口统计:计算用户在最近7天、30天内的行为频次(如 eid 事件发生次数)、活跃时长(连续登录天数)。 RFM特征: Recency(最近一次行为时间):计算用户最近一次行为距离当前时间的天数。 Frequency(行为频率):用户总行为次数。 Monetary(行为价值):假设某些事件(如 eid )有经济价值,可定义虚拟价值字段。 组合特征与高阶交互 目标:通过特征交叉和非线性组合,捕捉复杂模式。 方法: 类别特征交叉: 将 device_brand 与 os_type 组合(如 Android_Samsung ),反映设备-系统的用户偏好。 数值特征分桶与交叉: 将将 common_ts 分桶为时间段(如早高峰、晚高峰),与 hour 特征交叉,分析用户在特定时段的行为差异。
新的进阶方案探索中。。。。