2025年夏Datawhale AI夏令营机器学习
笔记
一、赛事任务概述
核心信息
- 任务类型:二分类任务,判断用户是否为新增用户。
- 评价指标:采用F1分数,分数越高模型性能越好。
- 知识点提要:
- 解决实际业务问题,优化产品迭代策略。
- 掌握结构化数据处理全流程,包括特征工程、编码技巧、模型构建与调优。
- 学习F1-score在二分类不平衡场景的应用。
- 实践时间特征提取等高级特征工程技巧。
- 掌握LightGBM模型和交叉验证的最佳实践。
二、赛题分析与技术理解
赛题背景
通过分析讯飞开放平台的用户行为数据,预测用户是否为新增用户。这对优化产品迭代方向、降低用户获取成本等具有重要的行业价值,同时也能验证AI在用户行为分析领域的有效性并建立可复用的方法论。
数据解读
- 输入数据:用户行为事件记录,包含15个原始特征字段,关键字段有
udmap
(JSON格式,内含botId
和pluginId
)和common_ts
(时间戳)。 - 输出要求:预测用户是否为新增用户(
is_new_did
),提交格式为CSV文件,包含一列is_new_did
,值为0或1,0表示不是新增用户,1表示是新增用户。 - 关键发现:
- 测试集中93%的用户出现在训练集中。
- 训练集中88%的用户
is_new_did
为0。 - 解题思路:标签为1的用户可直接填充标签,不为1的用户进行建模预测。
解题要点和难点
- 用户行为事件数据到用户级别预测。
- 高维稀疏特征,如设备、地域、行为ID等。
- 正负样本不均衡,新增用户占比较少。
- 用户行为聚合,将事件级数据转化为用户特征。
- 时间敏感特征,用户行为模式随时间变化。
解题思考过程
- 模型选择:选择树模型(如LightGBM)而非神经网络,因为树模型训练速度快且对特征处理友好。
- 特征工程:优先构造简单的时间特征而非复杂特征工程。
三、Baseline方案实现
方案设计思路
- 特征设计:提取时间特征(如时段、停留时长等),基于用户行为分析理论捕捉行为模式。
- 模型选择:采用LightGBM,其稳定性高、训练效率快且数据预处理需求低。
- 交叉验证:使用五折交叉验证,遵循Scikit-learn最佳实践。
- 阈值优化:基于F1-score动态调整分类阈值,采用精确率-召回率平衡策略。
方案优缺点
- 优点:
- 避免数据泄露:采用五折目标编码。
- 计算高效:基于LightGBM的直方图算法与并行训练,训练速度比XGBoost快3-5倍。
- 不足:
- JSON字段
udmap
未充分解析。 - 缺乏特征重要性指导的特征筛选。
- 未处理设备品牌的长尾分布。
- JSON字段
核心逻辑
- 交叉验证建模:使用
StratifiedKFold
进行五折交叉验证,对每个折进行模型训练和验证。 - 目标优化函数:寻找使F1分数最大化的最佳概率阈值,默认阈值0.5不一定最优,通过候选阈值搜索优化分类效果。
四、上分思路
赛题进阶要点
- 高基数类别特征处理:如
device_brand
、udmap
中的botId
等。 - 时序模式挖掘:用户行为的时间依赖性,如活跃时间段、访问间隔等。
- 类别不平衡问题:新增用户比例低,需优化阈值或损失函数。
进阶方法和思路
- 时间序列特征:计算用户在不同时间窗口内的行为频次、活跃时长等。
- RFM特征:包括最近一次行为时间(Recency)、行为频率(Frequency)和行为价值(Monetary)。
- 组合特征与高阶交互:通过类别特征交叉和数值特征分桶与交叉,捕捉复杂模式。
- 按did聚合后的分层建模:将问题拆解为用户层和事件层,通过分层建模提升模型鲁棒性。
- 半监督学习策略:利用测试数据中重复的did作为伪标签,结合训练数据进行半监督训练。
- 动态标签映射与修正:针对测试集中重复的did,动态修正其预测标签。
具体进阶思路代码实现
- 目标编码特征构建:使用五折交叉验证进行目标编码,避免数据泄露并处理未知类别。
- TFIDF挖掘用户更多信息:为指定列创建TF-IDF特征,按did聚合,捕捉关键词频率分布。
- 聚合特征构建:基于用户唯一标识did,对用户的行为数据进行聚合统计,生成描述用户行为模式的特征。
五、附录:补充知识点简介
数据建模与特征工程
- TF-IDF特征提取:将文本数据转化为数值特征,捕捉关键词频率分布。关键点包括文本预处理、TfidfVectorizer的参数调优以及高维稀疏特征的降维。
集成学习
- 提升模型泛化能力,适用于标签不唯一或稀疏场景。关键点包括LightGBM/XGBoost的超参数调优、动态集成策略和半监督学习。
时间序列分析
- 捕捉用户行为的时间动态性,如活跃周期性。关键点包括时间戳处理和动态权重。