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

“华为杯”第十八届中国研究生数学建模竞赛一等奖经验分享

简介

距离去年参与研究生数学建模并获得全国一等奖已经过去了一年,由于一直比较忙也没有抽空来对之前的比赛做一个总结,最近看到师弟们在准备参与今年的竞赛,于是写了这篇文章来做一个简单的经验总结。

赛前准备

  1. 组队分工
    一般的话是三个人组队,我的建议是一个人负责建模和编程,另外两个人负责论文内容(包括撰写和可视化素材),这是我们实践中发现雄安率比较高的一种分工方式,当然这里有个前提就是负责编程的这个人的能力要比较强,要对算法和建模都比较了解。换言之,一般计算机这边会选择数据挖掘类的题目,因此这个负责编程的人要对数据挖掘的一些生态比较熟悉(我们组是我负责这一块的,我对Python的数据挖掘竞赛的一些生态都比较了解,包括pandas、numpy、scipy、scikit-learn、xgboost、matplotlib、seaborn、plotly等库)。另外两个人负责论文的撰写,这个也很重要,因为最终呈现给评委的就是论文,很少有人去看代码这些补充材料的,所以一定要格式规范且美观。
  2. 算法准备
    负责算法和建模的编程人员需要学习相应的生态库,比如matlab生态或者python生态,熟悉一种即可,然后要对一些主流的机器学习算法有所实战经验,因为实际上数学建模周期很短,很少会采用一些深度学习模型,更多的时候还是现有机器学习模型的组合调优。同时也要熟悉一些可视化工具库,python这边的话用的多的是matplotlib、seaborn和plotly等,这些数据分析或者模型决策的可视化有利于丰富论文内容并帮助理解(谁不喜欢看图呢)。此外,其实历年的优秀解法都有类似之处,需要去看看前几年的优秀论文并体会其中的建模思路,有利于最后一问的思路展开。
  3. 论文准备
    负责论文撰写的人在准备阶段,需要大量阅读之前的优秀论文,学习其排版组织、前后逻辑、章节划分等可取之处,比如他们摘要怎么写的有亮点、总结怎么拔高、文中什么时候公式说明什么时候图表说明、这一章怎么分小结的。同时,为了便于理解,可以在序章插入文章结构图之类的,这就要求会使用思维导图(xmind)、流程图(visio)等软件。此外还要学会如何导入参考文献到word中,毕竟论文最后需要一些参考文献作为佐证。此外要准备好论文模板(一般官方会给),以便于短暂的比赛期内能够迅速合作撰写,可以考虑Word自带的在线协作。

赛中安排

我们选择是当时选题量非常大的一道非常经典的数据挖掘类赛题,即2021年的D题“抗胰腺癌候选药物的优化建模”。赛题说明里面包括背景介绍、数据集介绍及建模指标、需解决问题,我们重点关注后面二者。“数据集介绍及建模指标”这部分告诉我们如何去理解数据集,这部分很重要,有助于后面的特征工程,然后会大体阐述这个赛题的最终任务是什么,但是不是狠具体。“需解决问题”这部分就是本次赛题需要解决的四个具体任务,一般是一个问题在论文里写一章来解答。

问题1:
问题1
很具有代表性的一个挖掘题,其实就是做一个特征选择,注意是特征选择而不是降维,降维会破坏原有的特征,而本题是为了找到更加合理的少部分特征。针对问题一,针对化合物的729个分子描述符进行变量选择,选出对生物活性影响最大的20个分子描述符并按照重要性排序。首先,设计了二阶段粗筛-细筛策略,粗筛阶段建立基于随机森林的递归特征消除模型(RF-RFE),细筛阶段建立基于相关性分析的特性筛选模型。接着,对模型分阶段进行求解,第一阶段先从所有变量中挑选出35个候选变量,第二阶段再从候选变量中消除高相关性的低排名变量,得到20个核心变量及其贡献度排名。最后,采用变量分布性检验和相关性检验确定所得变量的合理性。

在这里插入图片描述
其中,借助seaborn进行相关性分析如下,我们消除掉部分高相关的。
在这里插入图片描述

问题2:

在这里插入图片描述
这题是一个常规的回归问题,是在第一问的基础上进行的,我们就是采用了一些强树模型进行对比。针对问题二,建立化合物对ERα生物活性的定量预测模型,参与建模的变量不超过问题一的20个。首先,考虑到化合物生物活性值pIC50由IC50变换得到,且与药物活性正相关,因此建立pIC50预测模型,再进行目标转换得到对应的IC50值。其次,分别建立基于梯度提升回归、支持向量机回归、极端梯度提升回归的ERα生物活性预测模型,并对三种模型的预测效果进行分析。最后,对模型进行Sobol敏感性分析,探究核心变量与ERα生物活性的内在联系。
在这里插入图片描述
敏感性分析如下。
在这里插入图片描述

问题3:
在这里插入图片描述
这题是个典型的分类问题,我们对每个指标建立一个分类模型,共计5个模型,模型的构建思路是基于基模型进行集成模型搭建。针对问题三,建立化合物的Caco-2、CYP3A4、hERG、HOB、MN的性质分类预测模型。首先,分析得出上述五种性质均存在类别不均衡的问题,采用过采样策略进行样本平衡,以保证后续模型具有非偏向鲁棒性。然后,通过交叉验证法确定变量使用策略,以归一化后的全部分子描述符作为建模依据。接着,分别建立基于决策树、逻辑回归、支持向量机的基分类模型,并采用投票法(Voting)和堆叠法(Stacking)策略构建集成分类模型,并对上述模型进行预测效果分析。最后,通过模型决策面的可视化确定了构建的分类模型具有较强的复杂特征适应能力且分类准确。

在这里插入图片描述
投票法模型的决策边界二维可视化。
在这里插入图片描述

问题4:
在这里插入图片描述
这题应该是这整个赛题的压轴题,这是一个比较开放的任务,我们已经得到了很不错的分类和回归模型,他们可以用来衡量一个化合物的好坏,那么现在你能否利用这些已有的模型,生成一些不错的药物呢?其实就是已知模型,反搜索一些合适的特征,我们这边采用了比较经典的遗传算法。针对问题四,探究分子描述符拥有更好生物活性和ADMET性质的条件。首先,设计了基于ADMET性质和ERα生物活性联合任务评分策略,并以最大化该得分为目标函数,以20个核心变量为决策变量,以其在数据集中的现有范围经过20%扩张后作为约束,建立核心变量优化的规划模型。其次,采用精英保留的遗传算法对模型进行求解,并对算法关键内容进行针对性设计,确定的大部分核心变量优质范围均相比于赛题样本缩小50%以上。最后,对优秀样本进行合理性验证,证明了遗传得到的子代样本具有较强的综合性能。

在这里插入图片描述
具体优化函数公式比较多,上面只给出基础思路,因为每个人建模思路都可能不一样。下图是迭代搜索的一些参数搜索。

在这里插入图片描述

注意点

  • 第一,摘要要通过加粗等方式给人展现亮点,因为据传言一审主要看摘要‘;总结要体现优点和缺点,以及一些展望。文中合适的时候就可以给出一些可视化,比如模型可视化、预测可视化、流程可视化,毕竟评审人也是人,还是比较喜欢元素丰富的作品。
  • 第二,一定要对每个题目有明确的结果在论文中说明,不要方法说了半天在验证集上很好用,最后没有在测试集上进行推理并给出结果。也就是说,针对问题的每一章都要有一节明确为模型预测结果
  • 第三,提交截至前一天会要求填写论文的md5校验码,这时候一定要根据PDF文件生成校验码提交,并且此后这个PDF绝对不能修改,任何改动都不可以。

总结

研究生数学建模对于实战功力的提升非常巨大,而且强度有点大,那些深夜肝论文的日子终会称为有趣的回忆,最后附上获奖证书。

在这里插入图片描述

相关文章:

  • C#的StreamReader类使用说明
  • 基于图搜索的规划算法之 A* 家族(九):Hybrid A* 算法
  • 2022年Webpack 5初学者完整指南
  • 【MATLAB教程案例22】基于MATLAB图像去噪算法仿真——中值滤波、高斯滤波以及频域滤波等
  • 浙江大学软件学院2022保研经历分享
  • 表的自然连接(数据结构链表链接)
  • 在Vue脚手架实现登录页面及跳转
  • 新旧电脑间文件互传(通过网络)
  • Python3,仅仅2段代码,就实现项目代码自动上传及部署,再也不需要Jenkins了。
  • 贪心c++(结合LeetCode例题)
  • MATLAB-多项式曲线回归拟合
  • 第五章-Python数据处理工具--Pandas
  • Redis02-分布式session、缓存查询及缓存问题的解决
  • JavaWeb——AjaxJson
  • Spring-Cloud-Feign-03
  • 【刷算法】求1+2+3+...+n
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • extjs4学习之配置
  • java概述
  • Java小白进阶笔记(3)-初级面向对象
  • Laravel 菜鸟晋级之路
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python_OOP
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • VUE es6技巧写法(持续更新中~~~)
  • vue 配置sass、scss全局变量
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 京东美团研发面经
  • 聚簇索引和非聚簇索引
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 小程序 setData 学问多
  • 一个完整Java Web项目背后的密码
  • 鱼骨图 - 如何绘制?
  • Android开发者必备:推荐一款助力开发的开源APP
  • 阿里云服务器购买完整流程
  • # 计算机视觉入门
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (003)SlickEdit Unity的补全
  • (1)STL算法之遍历容器
  • (3)nginx 配置(nginx.conf)
  • (C语言)二分查找 超详细
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (转)memcache、redis缓存
  • (转)nsfocus-绿盟科技笔试题目
  • (转)socket Aio demo
  • (转)编辑寄语:因为爱心,所以美丽
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET 设计一套高性能的弱事件机制
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET单元测试