DataWhaleAI分子预测夏令营 学习笔记

AI分子预测夏令营学习笔记

一、直播概览

主持人介绍

  • 姓名:徐翼萌
  • 角色:DataWhale助教
  • 活动目的:分享机器学习赛事经验,提升参赛者在分子预测领域的能力

嘉宾介绍

  • 姓名:余老师
  • 背景:Data成员,腾讯广告算法大赛冠军,著有《机器学习算法竞赛实战》

二、技术分享要点

数据预处理

  • 数据清洗:包括处理缺失值、异常值和重复数据。缺失值可以通过均值、中位数填充,或使用预测模型预测缺失值。异常值可以通过箱型图等方法识别并处理。
  • 数据标准化:对数据进行标准化或归一化处理,以消除不同量纲的影响。
  • 探索性数据分析(EDA):使用统计图表来分析数据分布、中心趋势和分散程度。

特征工程

  • 特征提取:从原始数据中提取有助于模型理解的特征,例如从化学结构中提取分子描述符。
  • 特征选择:使用过滤法、包装法或嵌入法选择最有信息量的特征。
  • 特征转换
    • 连续特征:可能需要进行对数转换或Box-Cox转换来稳定方差。
    • 类别特征:使用独热编码转换为虚拟变量,注意处理"一位有效"问题。

模型选择与训练

  • 模型比较:评估不同模型的性能,包括但不限于决策树、随机森林、梯度提升机、支持向量机等。
  • 超参数调优:使用交叉验证和自动化调参技术(如Hyperopt或Optuna)来找到最优的超参数组合。
  • 模型正则化:使用L1或L2正则化防止模型过拟合。

预测与评估

  • 性能指标
    • 准确率、召回率和F1分数:评估模型在不同类别上的表现。
    • ROC曲线和AUC:评估模型在不同阈值下的性能。
  • 混淆矩阵:直观展示模型预测与实际标签之间的关系。
  • 误差分析:分析模型预测错误的案例,找出潜在原因。

模型融合

  • Bagging:通过自助采样和模型平均来减少方差。
  • Boosting:通过关注被之前模型错误分类的样本来减少偏差。
  • Stacking:结合多个模型的预测结果进行最终预测。

附加学习内容

  • TF-IDF深入:理解TF-IDF的计算原理,如何影响文本特征的处理。
  • 高级文本处理:学习词嵌入(Word Embedding)和主题建模(如LDA)等高级文本分析技术。
  • CatBoost特性:探索CatBoost如何处理缺失值和类别特征,以及其在处理大数据集时的优势。

交叉验证方法

  • K-Fold:将数据集平均分成K份,轮流使用其中一份作为验证集。
  • Stratified K-Fold:在K-Fold的基础上,保持每个折叠中各类别的比例相同。
  • Time Series Cross-Validation:特别适用于时间序列数据,保持数据的时间顺序。

处理类别不平衡

  • 重采样:通过过采样少数类或欠采样多数类来平衡类别。
  • 合成样本生成:使用SMOTE等技术生成新的合成样本。
  • 阈值调整:根据类别分布调整分类阈值。

实用技巧

  • 特征重要性评估:使用特征重要性图来识别关键特征。
  • 模型解释性:使用SHAP、LIME等工具来解释模型预测。
  • 代码优化:编写清晰、高效的代码,使用向量化操作代替循环。

实践建议

  • 代码版本控制:使用Git等工具管理代码版本。
  • 实验跟踪:使用MLflow或TensorBoard记录实验过程和结果。
  • 结果可视化:使用Matplotlib、Seaborn等库创建直观的图表来展示结果

三、QA环节要点

  • 讨论生成数据的局限性和对现有数据的有效利用。
  • 指导如何查询比赛成绩和排名,根据反馈优化模型。

四、结束语与感悟

  • 主持人徐翼萌对余老师的分享表示感谢,强调了学习活动的价值。
  • 个人感悟:通过学习,对机器学习在分子预测领域的应用有了更深入的理解。

五、后续行动计划

  • 独立完成代码实践,加深对理论知识的理解。
  • 参与DataWhale的后续活动,获得更多实践经验。
  • 持续跟踪最新的机器学习技术和研究进展。

六、备注

  • 记录直播中遇到的理解难点,计划通过查阅资料或参与讨论来解决。
  • 收集直播中提及的资源链接,如相关论文、工具库和学习材料。
相关推荐
SelectDB18 分钟前
5000+ 中大型企业首选的 Doris,在稳定性的提升上究竟花了多大的功夫?
大数据·数据库·apache
最初的↘那颗心33 分钟前
Flink Stream API 源码走读 - window 和 sum
大数据·hadoop·flink·源码·实时计算·窗口函数
rannn_1112 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面2 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
传奇开心果编程2 小时前
【传奇开心果系列】Flet框架实现的家庭记账本示例自定义模板
python·学习·ui·前端框架·自动化
草莓熊Lotso2 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他
Yusei_05232 小时前
迅速掌握Git通用指令
大数据·git·elasticsearch
_Kayo_8 小时前
node.js 学习笔记3 HTTP
笔记·学习
一只栖枝9 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
CCCC131016312 小时前
嵌入式学习(day 28)线程
jvm·学习