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的后续活动,获得更多实践经验。
  • 持续跟踪最新的机器学习技术和研究进展。

六、备注

  • 记录直播中遇到的理解难点,计划通过查阅资料或参与讨论来解决。
  • 收集直播中提及的资源链接,如相关论文、工具库和学习材料。
相关推荐
dayouziei27 分钟前
java的类加载机制的学习
java·学习
aloha_7893 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
dsywws4 小时前
Linux学习笔记之vim入门
linux·笔记·学习
晨曦_子画5 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision5 小时前
Docker学习—Docker核心概念总结
java·学习·docker
昨天今天明天好多天5 小时前
【数据仓库】
大数据
油头少年_w5 小时前
大数据导论及分布式存储HadoopHDFS入门
大数据·hadoop·hdfs
ctrey_6 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少6 小时前
由中文乱码引来的一系列学习——Qt
学习
Elastic 中国社区官方博客6 小时前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理