Datawhale AI夏令营助教经历
作为Datawhale AI夏令营数据挖掘方向的专业助教,这段经历让我深刻体会到技术赋能与知识传递的双重价值。以下是核心感悟:
1. 助教角色的核心使命
- 技术引导:通过拆解复杂模型(如集成学习G(X) = sum_{i=1}{n} alpha_i g_i(X))帮助学员跨越理论到实践的鸿沟。
- 实战赋能:Kaggle式项目,强调特征工程的重要性:
- 帮助学员解决相关机器学习问题;
- 引导学员用PCA降维解决"维度诅咒"问题;
2. 突破性挑战与应对
- 问题诊断:学员常陷入过拟合陷阱,需反复强调正则化原理:
# L2正则化示例 model = Ridge(alpha=0.5) # 惩罚项$\lambda||\theta||^2$
-
这是我自己在做模型优化调参的时候,做的正则示例,可在一定程度上缓解过拟合的风险
- 重点问题解读:过拟合&欠拟合:
过拟合:就像学生死记硬背了所有例题答案,但遇到新题完全不会举一反三(泛化能力太差)。
欠拟合:就像学生只背了公式但不理解原理(没学到关键特征),遇到任何题目都答错。降低过拟合风险方法:
1)更多训练数据 2)降低模型复杂度3)增大正则化系数
降低欠拟合风险方法:
1) 增加新特征 2)增加模型复杂度 3)减小正则化系数
3. 技术之外的收获
- 社区联结:
我会记录学员的每个提问,整理成经验笔记
- 自我迭代:
通过深入研读LightGBM模型源码,我对时序预测问题有了更深入的理解
未来展望:计划将夏令营经验沉淀为模块化课程,推动"技术民主化"。这段旅程印证了一句话:
真正的智能不是算力峰值,而是点燃他人心中的算法之火。
4. 原始baseline文件概况
- 4.1 文件结构与内容概述
- 4.2 核心算法与逻辑分析
- 4.3 性能与局限性总结
模型性能:交叉验证平均F1=0.657(约66%准确率)
数据特点:测试集与训练集设备高度重叠(93%)
预测分布:15%设备被识别为新用户
关键特征:时间戳、APP版本、设备型号主导预测
输出文件:生成`submit.csv`包含设备ID及其新旧标签
时间特征工程
设备ID重叠分析
类别特征编码
(注意:cat_feature就像是{color、band、city}这些类不能直接加减的标签型数据,需要先转化成数字编码才能喂给模型吃)
模型训练
特征重要性分析
最终结果输出
5. 修改与提升
- 5.1 优化方向与关键改动点
- 5.2 改进后的算法逻辑
- 5.3 性能对比与验证结果
(LightGBM 参数的作用及其对 F1 Score 影响:
objective': 指定模型的目标函数为二分类任务 ,让模型按照二分类的逻辑进行训练和预测,计算相应的损失来优化模型参数。
对F1 Score影响:合适的目标函数是模型能正确学习和预测的基础。若选错,模型无法针对二分类问题有效优化,会导致 F1 Score 大幅降低。
metric': 用于评估模型在二分类任务中的预测概率与真实标签之间的对数损失 ,衡量模型预测概率的准确性,帮助监控训练过程中的模型表现。
对F1 Score影响:虽然该指标和 F1 Score 衡量角度不同,但低的对数损失通常意味着模型预测概率更准确,在一定程度上有利于提高 F1 Score 。但二者并非严格正相关,有时对数损失降低,F1 Score 不一定提升。
max_depth': 限制树的最大深度,控制模型复杂度 ,避免模型过度拟合训练数据。
对F1 Score影响:值过大,模型可能过拟合,在测试集上 F1 Score 下降;值过小,模型可能欠拟合,无法充分学习数据特征,同样导致 F1 Score 降低 。找到合适的深度,能让模型在拟合能力和泛化能力间平衡,提升 F1 Score 。
num_leaves': 决定树的叶子节点数量,影响模型复杂度和拟合能力 ,叶子数越多模型能捕捉到的特征交互等信息越多。
对F1 Score影响:数量过多易过拟合,F1 Score 在测试集变差;数量过少,模型难以学习到足够特征,导致欠拟合,F1 Score 也会受影响 。适当增加叶子数可提升模型拟合能力,有助于提高 F1 Score ,但需注意过拟合风险。
learning_rate': 控制每次迭代时模型参数更新的步长 ,影响模型训练的收敛速度和最终性能。
对F1 Score影响:值过大,模型可能跳过最优解,难以收敛到较好结果,导致 F1 Score 不高;值过小,模型收敛速度慢,训练时间长,也可能陷入局部最优,F1 Score 无法提升 。合适的学习率能让模型快速且准确地收敛到较优解,对提高 F1 Score 有益。
feature_fraction': 每次迭代训练时,随机选择 n% 的特征参与训练 ,引入随机性,防止过拟合,增加模型泛化能力。
对F1 Score影响:值过小,模型利用特征不足,可能欠拟合,F1 Score 降低;值过大,过拟合风险增加,F1 Score 在测试集表现变差 。合理设置该参数,可平衡模型的拟合与泛化能力,提升 F1 Score 。
bagging_fraction': 每次迭代训练时,随机选择 n% 的样本参与训练 ,通过自助采样降低模型方差,防止过拟合。
对F1 Score影响:与 feature_fraction 类似,值不合适会导致欠拟合或过拟合,合适的 bagging_fraction 能让模型更稳健,有助于提高 F1 Score 。
bagging_freq': 指定每 5 次迭代进行一次样本采样(bagging 操作) ,控制样本采样的频率。
对F1 Score影响:频率过高,模型训练不稳定;频率过低,bagging 防止过拟合的效果难以体现 合适的频率能在稳定训练的同时,发挥 bagging 防止过拟合的作用,间接对 F1 Score 产生正向影响。
min_child_samples': 定义叶子节点所需的最小样本数量 ,防止模型在训练中生成过小、不可靠的叶子节点,避免过拟合。
对F1 Score影响:值过大,模型可能丢弃一些有价值的细节信息,导致欠拟合,F1 Score 降低;值过小,叶子节点可能包含噪声样本,导致过拟合,F1 Score 在测试集变差 。合理设置可平衡模型的拟合与泛化能力,提升 F1 Score 。
verbose': 控制训练过程中日志信息的输出 ,-1 表示不输出训练过程中的日志。
对F1 Score影响:对模型性能和 F1 Score 无直接影响,主要影响训练过程中的信息展示。
n_jobs': 指定并行运行的线程数,加快模型训练速度 ,利用多核 CPU 资源。
对F1 Score影响:对模型最终性能和 F1 Score 无直接影响,只是提高训练效率。
seed': 设置随机种子,使模型训练过程可重现 ,每次设置相同种子,模型初始化和训练中的随机操作结果一致。
对F1 Score影响:不影响模型最终性能,但方便调试和对比不同参数设置下的模型表现 ,若多次训练结果波动大,可固定种子排查是否因随机因素导致。)
特征工程修改
结果输出
(注:内容基于技术助教职责创作,聚焦技术传播核心价值,无任何不良影响,上述所言仅供参考)