当前位置: 首页 > news >正文

2025年夏Datawhale AI夏令营机器学习

笔记

一、赛事任务概述

核心信息

  1. 任务类型:二分类任务,判断用户是否为新增用户。
  2. 评价指标:采用F1分数,分数越高模型性能越好。
  3. 知识点提要
    • 解决实际业务问题,优化产品迭代策略。
    • 掌握结构化数据处理全流程,包括特征工程、编码技巧、模型构建与调优。
    • 学习F1-score在二分类不平衡场景的应用。
    • 实践时间特征提取等高级特征工程技巧。
    • 掌握LightGBM模型和交叉验证的最佳实践。

二、赛题分析与技术理解

赛题背景

通过分析讯飞开放平台的用户行为数据,预测用户是否为新增用户。这对优化产品迭代方向、降低用户获取成本等具有重要的行业价值,同时也能验证AI在用户行为分析领域的有效性并建立可复用的方法论。

数据解读

  1. 输入数据:用户行为事件记录,包含15个原始特征字段,关键字段有udmap(JSON格式,内含botIdpluginId)和common_ts(时间戳)。
  2. 输出要求:预测用户是否为新增用户(is_new_did),提交格式为CSV文件,包含一列is_new_did,值为0或1,0表示不是新增用户,1表示是新增用户。
  3. 关键发现
    • 测试集中93%的用户出现在训练集中。
    • 训练集中88%的用户is_new_did为0。
    • 解题思路:标签为1的用户可直接填充标签,不为1的用户进行建模预测。

解题要点和难点

  1. 用户行为事件数据到用户级别预测
  2. 高维稀疏特征,如设备、地域、行为ID等。
  3. 正负样本不均衡,新增用户占比较少。
  4. 用户行为聚合,将事件级数据转化为用户特征。
  5. 时间敏感特征,用户行为模式随时间变化。

解题思考过程

  1. 模型选择:选择树模型(如LightGBM)而非神经网络,因为树模型训练速度快且对特征处理友好。
  2. 特征工程:优先构造简单的时间特征而非复杂特征工程。

三、Baseline方案实现

方案设计思路

  1. 特征设计:提取时间特征(如时段、停留时长等),基于用户行为分析理论捕捉行为模式。
  2. 模型选择:采用LightGBM,其稳定性高、训练效率快且数据预处理需求低。
  3. 交叉验证:使用五折交叉验证,遵循Scikit-learn最佳实践。
  4. 阈值优化:基于F1-score动态调整分类阈值,采用精确率-召回率平衡策略。

方案优缺点

  1. 优点
    • 避免数据泄露:采用五折目标编码。
    • 计算高效:基于LightGBM的直方图算法与并行训练,训练速度比XGBoost快3-5倍。
  2. 不足
    • JSON字段udmap未充分解析。
    • 缺乏特征重要性指导的特征筛选。
    • 未处理设备品牌的长尾分布。

核心逻辑

  1. 交叉验证建模:使用StratifiedKFold进行五折交叉验证,对每个折进行模型训练和验证。
  2. 目标优化函数:寻找使F1分数最大化的最佳概率阈值,默认阈值0.5不一定最优,通过候选阈值搜索优化分类效果。

四、上分思路

赛题进阶要点

  1. 高基数类别特征处理:如device_brandudmap中的botId等。
  2. 时序模式挖掘:用户行为的时间依赖性,如活跃时间段、访问间隔等。
  3. 类别不平衡问题:新增用户比例低,需优化阈值或损失函数。

进阶方法和思路

  1. 时间序列特征:计算用户在不同时间窗口内的行为频次、活跃时长等。
  2. RFM特征:包括最近一次行为时间(Recency)、行为频率(Frequency)和行为价值(Monetary)。
  3. 组合特征与高阶交互:通过类别特征交叉和数值特征分桶与交叉,捕捉复杂模式。
  4. 按did聚合后的分层建模:将问题拆解为用户层和事件层,通过分层建模提升模型鲁棒性。
  5. 半监督学习策略:利用测试数据中重复的did作为伪标签,结合训练数据进行半监督训练。
  6. 动态标签映射与修正:针对测试集中重复的did,动态修正其预测标签。

具体进阶思路代码实现

  1. 目标编码特征构建:使用五折交叉验证进行目标编码,避免数据泄露并处理未知类别。
  2. TFIDF挖掘用户更多信息:为指定列创建TF-IDF特征,按did聚合,捕捉关键词频率分布。
  3. 聚合特征构建:基于用户唯一标识did,对用户的行为数据进行聚合统计,生成描述用户行为模式的特征。

五、附录:补充知识点简介

数据建模与特征工程

  • TF-IDF特征提取:将文本数据转化为数值特征,捕捉关键词频率分布。关键点包括文本预处理、TfidfVectorizer的参数调优以及高维稀疏特征的降维。

集成学习

  • 提升模型泛化能力,适用于标签不唯一或稀疏场景。关键点包括LightGBM/XGBoost的超参数调优、动态集成策略和半监督学习。

时间序列分析

  • 捕捉用户行为的时间动态性,如活跃周期性。关键点包括时间戳处理和动态权重。
http://www.lryc.cn/news/589570.html

相关文章:

  • 数据怎么分层?从ODS、DW、ADS三大层一一拆解!
  • Flink Watermark原理与实战
  • omniparser v2 本地部署及制作docker镜像(20250715)
  • 驱动开发系列61- Vulkan 驱动实现-SPIRV到HW指令的实现过程(2)
  • 定时器更新中断与串口中断
  • Claude 背后金主亚马逊亲自下场,重磅发布 AI 编程工具 Kiro 现已开启免费试用
  • CUDA 环境下 `libcuda.so` 缺失问题解决方案
  • 2-Nodejs运行JS代码
  • 基于按键开源MultiButton框架深入理解代码框架(二)(指针的深入理解与应用)
  • css-css执行的三种方式和css选择器
  • 【leetcode】263.丑数
  • 邮件伪造漏洞
  • 再见吧,Windows自带记事本,这个轻量级文本编辑器太香了
  • Rust基础[part4]_基本类型,所有权
  • Java 集合 示例
  • 【Qt】插件机制详解:从原理到实战
  • redisson tryLock
  • HAProxy双机热备,轻松实现负载均衡
  • [Python] -实用技巧6-Python中with语句和上下文管理器解析
  • Hessian矩阵在多元泰勒展开中如何用于构造优化详解
  • 记一次POST请求中URL中文参数乱码问题的解决方案
  • LeetCode 1888. 使二进制字符串字符交替的最少反转次数
  • 整除分块练习题
  • 使用Spring Cloud LoadBalancer报错java.lang.IllegalStateException
  • AI助手指南:从零开始打造Python学习环境(VSCode + Lingma/Copilot + Anaconda + 效率工具包)
  • 学习秒杀系统-实现秒杀功能(商品列表,商品详情,基本秒杀功能实现,订单详情)
  • Sharding-JDBC 分布式事务实战指南:XA/Seata 方案解析(三)
  • 2HDMI/1DP转EDP/LVDS,支持4K,144HZ和240HZ.
  • LSA链路状态通告
  • 学习软件测试的第十六天