2022年高教社杯数学建模国赛ABC题思路资料汇总贴

本文章内容包含:选题建议、ABC题思路、相关代码、参考文献、可视化建议、思路相关答疑等。国赛题目还没发布,将于9月15日发布题目后第一时间更新选题建议、每道题目的思路解析、参考文献、思路配套代码、参考论文等多项资料,帮助大家取得好成绩。(2020年、2021年DS数模国赛思路基本命中组委会评阅细则要求)

申明:思路仅供参考,切记不可完全照抄,不然可能成绩不太理想!思路的目的是为了让大家可以没有思路的有思路,有思路的也可以开拓一下方向,可能我想到的你们没想到。但不可在建模过程中没有自己的思想与特色。

下面将给到大家一些C君之前的参赛经历及如何准备数学建模竞赛的方法

本文非常适合各个阶段的建模er观看,干货满满!(超详细攻略,如果认为对您有所帮助,可以三连关注一波,我会持续更新优质的内容)

申明:团队思路仅供参考,切记不可完全照抄,不然可能成绩不太理想!思路的目的是为了让大家可以没有思路的有思路,有思路的也可以开拓一下方向,可能我想到的你们没想到。但不可在建模过程中没有自己的思想与特色。

如何准备数学建模竞赛目录:

1 介绍自己

1.1 关于数模的成绩

1.2 本科三年的学习经历

2 比赛等级及含金量

2.1各大数模比赛的含金量

2.2 参赛建议(个人见解)

3 如何准备(干货满满,纯手打,希望大家多支持)

3.1 选择队友及任务分配问题(重要程度:5星)

3.2 算法储备及常用算法推荐(重要程度:3星)

3.3 研读优秀论文方法(重要程度:4星)

3.4 推荐学习的编程语言及机器学习算法的学习攻略(重要程度:4星)

3.5 论文写作必看内容及论文写作模版(写论文的同学必看)

3.6 加分项及好用的工具(可以少走弯路,工具很实用)

3.7 常用软件包及安装

3.8 竞赛时间分配建议(重要程度:4星)

1 介绍自己(团队成员)

1.1 关于数模的成绩

很开心,本科阶段的成绩还不错。在大一参加了一次校赛获得一等奖,然后因为国赛培训时间冲突没有参加国赛;在大二以队长的身份参加了校赛、mathorcup、国赛和美赛,均获得了一等奖,其中美赛获得了f奖。

很感恩自己在大一大二时打下的底子和评委大大们的照顾,国二靠实力,国一真的还得看点运气。

1.2 本科三年的学习经历(因某些原因,文章没了)

公众号里有我过往的一些经验和经历,还会在第一时间发布建模思路和相关资料,大家可以看看哦!

关注公众号,第一时间获取建模思路及其他相关资料

2 比赛等级及含金量

2.1各大数模比赛的含金量

请看文章,里面有我的详细建议: 

2.2 参赛建议(个人见解)

参加的最优顺序应该是:

1.练手比赛(选择一个或多个):

五一建模(题目简单,不过需要报名费)

强推电工杯(题目适中,含金量还可以,不需要报名费)

认证杯(有两个阶段,含金量和题目难度不成正比,需要报名费,不推荐没参加过建模的同学参加)

2.进阶比赛

Mathorcup(难度较高,去年难度与国赛持平,需要报名费,如果没有时间可不参加)

美赛(虽然是进阶比赛,但时间在国赛后,所以可在国赛后参加。难度较高,需要英语写作,时间比国赛多一天,国内目前大部分院校认可度还行,如果学校不报销报名费且无保研或其他类似原因,可不参加。不建议跨校组队,因为证书只有一个学校名字)

3.全国大学生数学建模竞赛

单列出来,因为现在中国绝大多数高校都认可这一比赛,参赛人数非常多,含金量很高。

3 如何准备(干货满满,纯手打,希望大家多支持)

3.1 选择队友及任务分配问题(重要程度:5星)

最重要的就是选择一个合适的队友,如果有两个好队友,绝对会让你爱上建模这项赛事,能极大程度锻炼自己的团队协作能力。在想出一个好点子,程序成功运行,特别是最后完成自己的论文时的那种喜悦,无以言表,我觉得这种经历是比比赛结果更为重要的。

如下是我的选队友建议:(第8条优先级最高)

1 切忌找到那种事多的人(无论男女,以我的经验,女生比例大于男生)很多女生不愿意熬夜,有的男生因为怜香惜玉就不会选择让女生熬夜or女生来例假or女生男朋友找来(尤其危险,我之前在知乎看到有人居然被打了,因为他让打他的那个男生的女朋友熬夜来的)这样无疑是极大程度上影响比赛的

2 切忌找一对情侣!(咳咳,原因不多说了)

3 最佳搭配方案:三男or一女两男(最优),不推荐一男两女或者三女(尤其是女生,因为关系好而放弃了一个机会,我觉得迟早会后悔的)

4 搭配:建模手+论文手+编程手(其中最重要的是论文手,因为如果论文写得好,算法不咋地有可能也会获得很好的成绩)

5 建模手专业建议:数学/统计/相关专业优先 

6 论文手专业建议:这个无论哪个专业都可,但是文科类同学慎重选择,因为即使论文写得好,有的人也不一定能听懂建模手或者是编程手的思路

7 编程手专业建议:计算机相关专业(学习大数据、机器学习、数据科学等方向的优先,会matlab或python的优先)有时候需要大家避个雷:不一定acm很厉害的人,就一定适合当编程手,建模更多的不是去做算法题。

8 认识大佬找大佬组队总没错

3.2 数模算法储备及常用算法推荐(重要程度:3星)

网上搜索,一搜一大把,我就不具体一个个说了,在这里仅仅说明一下哪些算法是需要提前掌握的。

以下是我觉得很重要,需要掌握(指知道原理,能够用代码实现or有能实现的代码模板)的算法:(排名不分先后)

1 拟合插值方法

2 时间序列算法

3 简单的图论算法

4 线性规划、整数规划、多元规划、二次规划(用lingo、matlab即可实现)

排队论

6 层次分析法

7 灰色综合评价、灰色预测

8 一种聚类算法(见3.4)

9 一种分类算法(见3.4)

10 一种预测算法(见3.4)

11 多元线性回归

12 元胞自动机

避坑:模拟退火、蚁群算法、遗传算法等所谓的智能算法(看起来高大上,但是慎用,老师很不喜欢用这些算法的队伍)

3.3 研读优秀论文方法(重要程度:4星)

由于内容较多,所以单开了个文章: ​​​​​​​

3.4 推荐学习的编程语言及机器学习算法的学习攻略(重要程度:4星)

以我的经验,目前最合适,最高效,最简单的编程语言非python莫属。在之前我说过我的本科学习经历,我从大一就开始接触到了python语言,且学习至今,发现这门语言真的是最好的编程语言了(除php外,懂的自然懂)。

我们学校教数模的老师在上课的时候,我记得很清楚,老师说matlab是数模必须得用的语言,然后我就用python拿到了国一等5个数模竞赛一等奖(就参加了这五次),哈哈。包括国赛目前一共有两个最高奖,一个是高教社杯,一个是matlab创新奖,也不知道未来情况如何,大家如果能用matlab还是可以用的,兴许你就是下一个matlab创新奖获得者呢。

在开始介绍各个编程语言之前,我想先说一些话。编程语言的选择适合与高效大于编程语言的好坏。其实我觉得,只要能解决问题的,那就是好的编程语言。数模最重要的是解题思路与方法的选择,而不是编程语言的选择。当然了,编程语言选择好了,能达到事半功倍的效果。

以下是各个数模常用的编程语言排行:

1 python

从前面的描述中大家也了解了一点python。下面说说这门语言在数模中的应用:1能够简洁的实现各种数模算法;2 能够简洁,优美的作出好看的数据可视化图(常用matplot和seaborn,在之后的章节还会介绍更多,更强大的数据可视化库or工具);3 有着非常强大的库,比如可以做数据处理、数据分析、模型建立与模型部署的库(常用numpy、pandas、scipy、sklearn、TensorFlow、pytorch等);4 有着优秀的IDLE(集成开发环境)在数模中,如果做数据分析类,强烈推荐anaconda,如果写算法,推荐利用pycharm

在未来我也会发布关于python的,我的学习笔记与一些学习经验分享。欢迎大家关注我的知乎哦!

2 matlab

作为目前最常用的商业数学软件,它在数学类科技应用软件中在数值计算方面首屈一指。除了python之外其实我的首推就是matlab,但是,只推荐利用其实现一些有关数据的工作,或者一些常用的(也就是你已经有的)数模或机器学习算法。不推荐在matlab上写程序,如果不会python可以用c++/java也是可以的,不过代码量会大大增加。

另外在这里想吐槽一下matlab,自 2020 年 6 月 6 日开始,哈工大等十多所高校被列入美国商务部实体名单,导致如果你是这些学校的,利用matlab写学术论文或者是研究成果,侵权了,将会面临被起诉的风险。数模我觉得也是这样,所以未来python作为数模的首选语言是必定的。

lingo、java、c++、c、sas、r

分别来介绍一下吧,lingo适合解决运筹学问题;如果不会python,选择java、c++、c也是可以的,但是代码量可能会变很多;sas适合解决统计分析的问题;r语言也同样适合解决统计分析的问题。

(有人可能会说为什么没有spss,这是软件,不算是编程语言)

相比较而言,如果单单是为了数模的话,推荐学习:python > matlab > r > lingo > sas > java = c++ > c

机器学习算法学习攻略如下:(F君大三写的)

本篇攻略适用于机器学习想入门或刚入门的小伙伴进行参考,干货满满!(超详细攻略,如果认为对您有所帮助,可以三连关注一波,我会持续更新优质的内容)

机器学习算法学习攻略目录

1 介绍自己目前学习情况

2 该如何去学习/入门机器学习?

2.1 学习前需要的知识储备

2.2 学习方法推荐(重要)

3 推荐算法学习曲线

3.1 介绍常见算法

3.2 算法的学习曲线推荐(重要)

4 资料推荐

4.1 课程推荐

4.2 书籍推荐

1 自己目前学习情况

本人快大四了,满打满算机器学习已经学过两年半的时间了,大一开始刚刚接触python,学过半年的基础后就开始了机器学习的修行之路。

从一开始满是兴趣,学会了如何去实现以及简单的算法流程及思想,之后慢慢推导西瓜书中的公式时的头大,到现在致力于研究数据科学中的机器学习算法应用、BI(商业智能)可视化(目前用tableau多一点)以及一些关于AutoML(自动机器学习)的知识。

目前也参加过kaggle、天池及一些国内大学生参加的数据竞赛。

下面浅谈一些我对机器学习该如何去学的思考与建议,自己也只能算是机器学习刚刚入门级的小白,希望杠精勿扰。如果还是大学生的话,学习完可以去试试参加数模竞赛,很容易得奖的哦。

2 该如何去学习/入门机器学习?

2.1 学习前需要的知识储备

知识储备简单的分以下两个方面:

  • 计算机知识储备
  • 数学(统计学)知识储备

首先介绍一下关于计算机需要的知识储备:

1 程序设计语言如果要学习机器学习,那么首选python就完事了。我的建议是python至少要学完面向对象才可以,打好基础是成功的一半,不然之后编程读懂代码可能也是问题。强烈推荐下载anaconda,利用里面的jupyter notebook进行代码编写。(必须)

2 书籍学习:数据结构、计算机组成原理、计算机体系结构、计算机操作系统、计算机网络、网络编程技术、数据库原理和设计、并行与分布式计算、计算机图形学、自然语言处理、数据挖掘(非必须,可以看看大学的相关教材)

然后是关于数学(统计学)需要的知识储备:

数学专业(我就是数学专业):数学分析、高等代数、概率论与数理统计 非数学专业:高等数学、线性代数、概率论与数理统计

看了很多回答,写了很多很多需要学习的地方。但是我觉得,学习完这些,常用的算法学习没有半点问题了,尤其需要注意代数学的知识和统计学的知识。

2.2 学习方法推荐(重要)

1 最重要的一点,要记录下自己所学的内容,无论是在网上看视频,还是在看西瓜书等机器学习书籍,亦或者在github、kaggle等平台进行学习。机器学习的内容多而繁杂,必须记录下所学内容。推荐利用博客进行记录(csdn或博客园),如果不喜欢也可以手写(我觉得记录公式推导利用手写更为方便,当然有个ipad就完美了)

2 一开始学习一个算法时,先简单学会原理,然后试着利用代码去实现这个算法(可以根据教程里给的示例代码,也可以在网上搜索)。总之,初步学习时不建议就啃公式推导等算法上的细枝末节,以实用为主,这样既可以增加自己学习的兴趣与积极性,而且可以在读懂代码时理解算法的内核

3 有一个好的教程等于初步的学习成功了一半,我们是踩在巨人的肩膀上,不要盲目的找到一个教程就去学习,应该花心思与时间在找到适合自己的教程

4 库的作用是用来加快开发的。不能在学习的时中过度依赖库,像sklearn已经将很多算法封装好了。会造成知识匮乏。建议在经历了第2步后了解算法的内部操作机制。(可以看看帮助文档,或者在网上搜索)

5 在学习基础的机器学习算法时,不要仅仅以实现为主,但也不能过于纠结细枝末节。在学完基础后,选择一个合适的方向去进行深入研究我觉得是最正确的学习思路。因为学习的目的是以工作/竞赛中应用为主,竞赛可能需要精通算法,而对于工作而言,都细分了不同的大方向。我将学习之后的大方向分为了以下五类:

  • 数据分析类:数据分析师、数据挖掘工程师、数据科学家
  • 推荐系统工程师(广告、信息流、交易等商业用途)
  • 自然语言处理工程师(对话机器人、数据驱动、舆情系统、研究院等文字相关)
  • 图像处理工程师、计算机视觉工程师(机器人、无人驾驶、监控等图像相关)
  • 跨专业结合类:风控算法、网安算法、量化金融,甚至控制、生物、社科等专业也有使用

6 学习与实践相结合,这里的实践不仅仅是去学会如何实现就好,而是去面向一些数据竞赛实战(推荐kaggle、天池,一开始练手可选择DC竞赛)

7 如果想在未来做算法工程师,算法推导必不可少,可以试试推一推西瓜书中的公式

3 推荐算法学习曲线

3.1 介绍常见算法

机器学习算法大致可以分为三类:

  • 监督学习算法 (Supervised Algorithms):利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。这就要求学习算法是在一种“合理”的方式从一种从训练数据到看不见的情况下形成。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等
  • 无监督学习算法 (Unsupervised Algorithms):这类算法没有特定的目标输出,算法将数据集分为不同的组。很多聚类算法就是典型的无监督学习算法
  • 强化学习算法 (Reinforcement Algorithms):强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。在运筹学和控制论的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)

3.2 算法的学习曲线推荐

推荐在未选择方向前,按照以下算法顺序进行学习,在学习完后应该对于自己的方向有了明确认知:

线性回归算法 - 逻辑回归算法 - 梯度下降算法 - 梯度增强算法 - 最近邻/knn算法 - 决策树 - 随机森林 - 支持向量机 - kmeans/dbscan(聚类) - 主成分分析(降维)算法 - 集成算法 - 朴素贝叶斯算法 - 文本分析 - 时间序列分析 - 推荐系统 - 深度学习(神经网络)

具体就不赘述算法是什么了,以后应该会建立一个专栏分享对于这些算法我的笔记及一些思考,欢迎大家关注我

4 资料推荐(未完待更)

4.1 课程推荐

大家吹爆的Machine Learning | Coursera我就不多说了,算是首选课程。

除此之外,我吹爆网易云课堂的唐宇迪老师,算是带我入门的老师。讲的非常细,非常棒,也贴合我刚刚说的学习曲线。如果有想获得资源的欢迎关注我的同名gzh,回复:【唐宇迪】。获取课程

4.2 书籍推荐

首推西瓜书、百面机器学习,另外可以看看机器学习实战。我学习机器学习的基础基本就是靠这两本书比较多,之后的学习就是学一些商业智能、数据科学类的书籍了,在这里有点不对题,就不说了。 

-------未完待续--------大家可以先收藏

有问题可评论区问我

3.5 论文写作必看内容及论文写作模版(写论文的同学必看)

3.6 加分项及好用的工具(可以少走弯路,工具很实用)

3.7 常用软件包及安装

3.8 竞赛时间分配建议

分工可以参考美赛的分工:

2022美赛分工73 赞同 · 0 评论文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值