本文章内容包含:选题建议、ABC题思路、相关代码、参考文献、可视化建议、思路相关答疑等。如需观看实时的更新请看腾讯文档:https://docs.qq.com/doc/DSlRMQXBZTEJHVWNM?&u=0c3ac2aca3d04e889184295cd5f88990
国赛题目还没发布,将于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星)
很开心,本科阶段的成绩还不错。在大一参加了一次校赛获得一等奖,然后因为国赛培训时间冲突没有参加国赛;在大二以队长的身份参加了校赛、mathorcup、国赛和美赛,均获得了一等奖,其中美赛获得了f奖。
很感恩自己在大一大二时打下的底子和评委大大们的照顾,国二靠实力,国一真的还得看点运气。
1.2 本科三年的学习经历(因某些原因,文章没了)
公众号里有我过往的一些经验和经历,还会在第一时间发布建模思路和相关资料,大家可以看看哦!
关注公众号,第一时间获取建模思路及其他相关资料
2 比赛等级及含金量
请看文章,里面有我的详细建议:
知乎 - 有问题,上知乎67 赞同 · 9 评论回答66 赞同 · 9 评论回答66 赞同 · 9 评论回答67 赞同 · 9 评论回答
参加的最优顺序应该是:
1.练手比赛(选择一个或多个):
五一建模(题目简单,不过需要报名费)
强推电工杯(题目适中,含金量还可以,不需要报名费)
认证杯(有两个阶段,含金量和题目难度不成正比,需要报名费,不推荐没参加过建模的同学参加)
2.进阶比赛
Mathorcup(难度较高,去年难度与国赛持平,需要报名费,如果没有时间可不参加)
美赛(虽然是进阶比赛,但时间在国赛后,所以可在国赛后参加。难度较高,需要英语写作,时间比国赛多一天,国内目前大部分院校认可度还行,如果学校不报销报名费且无保研或其他类似原因,可不参加。不建议跨校组队,因为证书只有一个学校名字)
3.全国大学生数学建模竞赛
单列出来,因为现在中国绝大多数高校都认可这一比赛,参赛人数非常多,含金量很高。
以上的所有比赛,在我同名gzh中,都会在第一时间发布竞赛思路,还会不时发布一些学习福利。欢迎大家来找我玩
最重要的就是选择一个合适的队友,如果有两个好队友,绝对会让你爱上建模这项赛事,能极大程度锻炼自己的团队协作能力。在想出一个好点子,程序成功运行,特别是最后完成自己的论文时的那种喜悦,无以言表,我觉得这种经历是比比赛结果更为重要的。
如下是我的选队友建议:(第8条优先级最高)
1 切忌找到那种事多的人(无论男女,以我的经验,女生比例大于男生)很多女生不愿意熬夜,有的男生因为怜香惜玉就不会选择让女生熬夜or女生来例假or女生男朋友找来(尤其危险,我之前在知乎看到有人居然被打了,因为他让打他的那个男生的女朋友熬夜来的)这样无疑是极大程度上影响比赛的
2 切忌找一对情侣!(咳咳,原因不多说了)
3 最佳搭配方案:三男or一女两男(最优),不推荐一男两女或者三女(尤其是女生,因为关系好而放弃了一个机会,我觉得迟早会后悔的)
4 搭配:建模手+论文手+编程手(其中最重要的是论文手,因为如果论文写得好,算法不咋地有可能也会获得很好的成绩)
5 建模手专业建议:数学/统计/相关专业优先
6 论文手专业建议:这个无论哪个专业都可,但是文科类同学慎重选择,因为即使论文写得好,有的人也不一定能听懂建模手或者是编程手的思路
7 编程手专业建议:计算机相关专业(学习大数据、机器学习、数据科学等方向的优先,会matlab或python的优先)有时候需要大家避个雷:不一定acm很厉害的人,就一定适合当编程手,建模更多的不是去做算法题。
8 认识大佬找大佬组队总没错
网上搜索,一搜一大把,我就不具体一个个说了,在这里仅仅说明一下哪些算法是需要提前掌握的。
以下是我觉得很重要,需要掌握(指知道原理,能够用代码实现or有能实现的代码模板)的算法:(排名不分先后)
1 拟合插值方法
2 时间序列算法
3 简单的图论算法
4 线性规划、整数规划、多元规划、二次规划(用lingo、matlab即可实现)
5 排队论
6 层次分析法
7 灰色综合评价、灰色预测
8 一种聚类算法(见3.4)
9 一种分类算法(见3.4)
10 一种预测算法(见3.4)
11 多元线性回归
12 元胞自动机
避坑:模拟退火、蚁群算法、遗传算法等所谓的智能算法(看起来高大上,但是慎用,老师很不喜欢用这些算法的队伍)
由于内容较多,所以单开了个文章:
数模论文研读方法83 赞同 · 0 评论文章正在上传…重新上传取消
以我的经验,目前最合适,最高效,最简单的编程语言非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作为数模的首选语言是必定的。
3 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 书籍推荐
本人快大四了,满打满算机器学习已经学过两年半的时间了,大一开始刚刚接触python,学过半年的基础后就开始了机器学习的修行之路。
从一开始满是兴趣,学会了如何去实现以及简单的算法流程及思想,之后慢慢推导西瓜书中的公式时的头大,到现在致力于研究数据科学中的机器学习算法应用、BI(商业智能)可视化(目前用tableau多一点)以及一些关于AutoML(自动机器学习)的知识。
目前也参加过kaggle、天池及一些国内大学生参加的数据竞赛。
下面浅谈一些我对机器学习该如何去学的思考与建议,自己也只能算是机器学习刚刚入门级的小白,希望杠精勿扰。如果还是大学生的话,学习完可以去试试参加数模竞赛,很容易得奖的哦。
知识储备简单的分以下两个方面:
首先介绍一下关于计算机需要的知识储备:
1 程序设计语言:如果要学习机器学习,那么首选python就完事了。我的建议是python至少要学完面向对象才可以,打好基础是成功的一半,不然之后编程读懂代码可能也是问题。强烈推荐下载anaconda,利用里面的jupyter notebook进行代码编写。(必须)
2 书籍学习:数据结构、计算机组成原理、计算机体系结构、计算机操作系统、计算机网络、网络编程技术、数据库原理和设计、并行与分布式计算、计算机图形学、自然语言处理、数据挖掘(非必须,可以看看大学的相关教材)
然后是关于数学(统计学)需要的知识储备:
数学专业(我就是数学专业):数学分析、高等代数、概率论与数理统计 非数学专业:高等数学、线性代数、概率论与数理统计
看了很多回答,写了很多很多需要学习的地方。但是我觉得,学习完这些,常用的算法学习没有半点问题了,尤其需要注意代数学的知识和统计学的知识。
1 最重要的一点,要记录下自己所学的内容,无论是在网上看视频,还是在看西瓜书等机器学习书籍,亦或者在github、kaggle等平台进行学习。机器学习的内容多而繁杂,必须记录下所学内容。推荐利用博客进行记录(csdn或博客园),如果不喜欢也可以手写(我觉得记录公式推导利用手写更为方便,当然有个ipad就完美了)
2 一开始学习一个算法时,先简单学会原理,然后试着利用代码去实现这个算法(可以根据教程里给的示例代码,也可以在网上搜索)。总之,初步学习时不建议就啃公式推导等算法上的细枝末节,以实用为主,这样既可以增加自己学习的兴趣与积极性,而且可以在读懂代码时理解算法的内核
3 有一个好的教程等于初步的学习成功了一半,我们是踩在巨人的肩膀上,不要盲目的找到一个教程就去学习,应该花心思与时间在找到适合自己的教程
4 库的作用是用来加快开发的。不能在学习的时中过度依赖库,像sklearn已经将很多算法封装好了。会造成知识匮乏。建议在经历了第2步后了解算法的内部操作机制。(可以看看帮助文档,或者在网上搜索)
5 在学习基础的机器学习算法时,不要仅仅以实现为主,但也不能过于纠结细枝末节。在学完基础后,选择一个合适的方向去进行深入研究我觉得是最正确的学习思路。因为学习的目的是以工作/竞赛中应用为主,竞赛可能需要精通算法,而对于工作而言,都细分了不同的大方向。我将学习之后的大方向分为了以下五类:
6 学习与实践相结合,这里的实践不仅仅是去学会如何实现就好,而是去面向一些数据竞赛实战(推荐kaggle、天池,一开始练手可选择DC竞赛)
7 如果想在未来做算法工程师,算法推导必不可少,可以试试推一推西瓜书中的公式
机器学习算法大致可以分为三类:
推荐在未选择方向前,按照以下算法顺序进行学习,在学习完后应该对于自己的方向有了明确认知:
线性回归算法 - 逻辑回归算法 - 梯度下降算法 - 梯度增强算法 - 最近邻/knn算法 - 决策树 - 随机森林 - 支持向量机 - kmeans/dbscan(聚类) - 主成分分析(降维)算法 - 集成算法 - 朴素贝叶斯算法 - 文本分析 - 时间序列分析 - 推荐系统 - 深度学习(神经网络)
具体就不赘述算法是什么了,以后应该会建立一个专栏分享对于这些算法我的笔记及一些思考,欢迎大家关注我
大家吹爆的Machine Learning | Coursera我就不多说了,算是首选课程。
除此之外,我吹爆网易云课堂的唐宇迪老师,算是带我入门的老师。讲的非常细,非常棒,也贴合我刚刚说的学习曲线。如果有想获得资源的欢迎关注我的同名gzh,回复:【唐宇迪】。获取课程
首推西瓜书、百面机器学习,另外可以看看机器学习实战。我学习机器学习的基础基本就是靠这两本书比较多,之后的学习就是学一些商业智能、数据科学类的书籍了,在这里有点不对题,就不说了。
-------未完待续--------大家可以先收藏
有问题可评论区问我
分工可以参考美赛的分工:
2022美赛分工73 赞同 · 0 评论文章