数学建模社区-数学中国

标题: 华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力) [打印本页]

作者: 杨利霞    时间: 2020-4-6 15:23
标题: 华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力)
华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力)7 _5 \! F' [5 K3 N! _% m
" r3 B, A9 a) F
华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力)! s1 ?+ x2 F" x1 x+ j# `+ y# p

; d8 T- F6 M) D9 e: S8 I% |3 o6 g" A原创置顶 maligebilaowang 最后发布于2019-11-16 12:44:44 阅读数 258  收藏! I# _) ^6 e: |; y0 |5 y7 y' ~3 k' O) z( D
展开
2 s! Z" B- D+ G/ v: ~6 P" S! E!【注意】博主原创,转载请注明出处,纯属个人经验,大佬路过勿喷+ n( T  Q# Q; ?% e& ^/ b
) \$ C" r$ p9 w- ~, T  `
一、前言
/ |; b, ], H6 r2 n$ [3 |' I: E
( |, c, ~1 s; Q* H# a, {4 {! L5 P' j不知不觉,现在已经研二了!!!在最近的2019年“华为杯”全国研究生数学建模竞赛里博主喜获二等奖,虽然按照我以往经验获奖是必然的。但是出成绩,还是小激动了一下。这也应该是我最后一次参加数学建模竞赛,所以一直想着写个竞赛经验分享给大家。
& `6 g* ]* F- Q0 K( Y. i* ^很多人参加这个比赛就是为了获奖,尤其对于想在上海落户的同学。而且这个比赛也是众多官方认证比赛中比较容易取得成绩的一项。而且我也认为这个比赛相对于ACM,高等数学竞赛等看分数的比赛来说,含金量是比较低的。因为他的评奖方式是主观的,大部分赛题是没有标准答案的,你的论文是唯一的评分标准!!!既然是“主观评审”,那么就一定有“套路”!!!所以我也一直认为建模竞赛获奖,第一靠经验,第二靠运气,第三靠实力。
4 ^. u5 T% u9 d" N2 I$ S( w" \  b9 X
今天我就是要来分享我的竞赛经验,而且是十多次百分百获奖的经验。(比赛自动触发百分比获奖bug!!!)我下面主要从经验,运气,实力三个方面来说明如何获奖以及如何准备。$ y5 ~, x" s7 @; q1 N

* b0 ]4 V- v$ K二、经验1 p: R3 E  x* t7 ^7 d) M: K9 w" y* C5 q
; D* s+ q; W  C8 ]! K6 v
怎样获取经验?如果你和我一样参加过十多次的建模竞赛,我相信你的经验已经很丰富了,拿个三等奖啥的还是很容易的。如果是没参加过的小白?怎么办?你只要认真读完我的博客,你就获得了博主百分百获奖的经验了!!!只要按照我说的准备,获奖还不是分分钟的事。。。* F8 A! R( s( j9 Z4 F+ J
经验部分,我主要想从人员配置,知识准备,赛题选择三个方面来阐述。
: h9 V* E5 I* Y7 y& ]/ f
, D9 U, N: F2 o2.1 人员配置# B$ }: h% u9 p1 B( A1 S
1 E+ l7 m; l, r7 m6 p7 ?
对于人员配置,博主认为三个中最少要有一个女生!!!  w  l, f; P8 c& U2 p
没错,就是女生!!!俗话说,男女搭配干活不累。想想比赛三天或者四天比赛时间,三个大老爷们朝夕相处,还不停的讨论问题,很容易发生矛盾。这样只会搞得大家都不舒服,还能不能愉快的“建模”了。。。而且女生一般都比较心细,审美较好,很适合论文纠错,论文排版,绘制流程图,用ps修修图,写一写建议性的问题等等。
8 \. X7 X$ d1 q8 ^3 ~& Q* d+ I2 e( U
需要有一个总览全局的人,能写论文的(这个是大腿)& J/ o- \. Z1 [2 H
这个人男女都行,主要任务就是负责写论文包括摘要,问题分析等。但是要有一定的抗压能力,这就是全队核心!!!我建议论文的整体思路一定要由一个人来汇总,也就是论文一个人写。如果每人写一问就很容易造成,论文整体思路的混乱,因为很多题目的过个小问前后都是有联系的。总而言之,一个队伍里一定要有一个负责思路汇总,能够吧问题解题过程写清楚的人。尤其是摘要,一定要一个人写,其他人再来改,总值论文整体思路流程一定不要乱。5 \, z, n  r) M  H9 {  e+ [

4 [& p% A% _; c队伍里至少有一个人能够使用matlab,python,R等科学计算语言。
1 L) a% _" g  c  N建模竞赛不会编程怎么出图出结果?所以会编程语言是必须的。matlab不用说,专业的科学计算语言,很多算法原型都是用matlab开发,矩阵计算,图形工具箱,拟合工具箱等等非常多的图形界面工具箱,拿来即用几乎不怎么需要编程就能实现很多模型。R语言不用说了,统计学专业必学的,ggplot,常用机器学习封装库都有。$ a/ A/ K. K% R. @+ O4 l

/ F: n9 c( d$ L1 i4 s, _) q但是我更推荐利用python解决建模问题,python的pandas,numpy,matplotlib等依赖库几乎可以完美的替代matlab的数据分析功能(可参考博主的入门教程)。就我个人感觉,python借助Seaborn库绘制的图形更加美观。而且,随着人工智能,机器学习,大数据越来越火,很多赛题也越来越倾向于数据挖掘,机器学习,大数据分析等等。python的scipy(优化算法库),sklearn(机器学习算法库),以及Tensorflow,Keras等深度学习库可以很方便的帮助实现建模求解以及结果的可视化。。。总而言之,人生苦短,我用python9 S3 I& O" D% [
* N8 e- s, Z8 Z" e3 L2 Y
2.2 知识准备0 g: g+ j* r! Z; C. v6 X1 A

, X: x0 R$ S5 B$ C8 p1 v2.2.1 必备软件  b/ t; X7 s) |+ P# X' w
1 Y) ~7 r0 D- C" H7 k4 O
写论文排版相关( o" |) \# @# W, P
office-word,或者LaTeX,除非latex用的很熟,新手不推荐使用latex。因为全程敲命令来排版很容易出问题。而且word手工排的仔细一点,效果一定不比latex要差。" W5 k  _7 }$ f5 ~
- L- n) W/ B! q4 z6 k! d3 v4 I
Mathtype(公式编辑器),这个是写科技论文必备的东西,公式一定要用公式编辑器来敲!!!
: ^' O: |9 V1 M, [) H3 c1 T  `
" k( {" I1 r4 M7 s- u绘图,流程图,示意图,修图
2 L* m% G# ^" t( T$ G常用给的绘图软件有亿图(推荐)或者visio,这两个软件都可以绘制流程图和其他示意图等等。PS在修图或者对论文要求较高的时候使用。。。
. B  z9 ?7 c  E我尤其建议大家写论文的时候多绘制一些流程图,包括算法流程图,以及整体思路流程图。如果你能将你建模思路,用流程图的形式展现出来,肯定能够吸引评委的目光。
6 j( {' f, D3 P5 c  q9 t
" L. _/ p( E  g, ^; k下面是19研赛,我们做的问题一建模思路流程图:; j( `; C: g4 U, |5 T9 q0 }8 v8 w

6 }! R% c! P8 y* @# h9 B 1.jpg 6 ~  W4 g, Z" p8 C5 I. ]- I' B

1 w7 Q. R: Y, L  D1 l6 ~数据分析可视化软件
: t1 \6 z, [9 JEXCEL(这个不用说,都读大学了,这个肯定是会用的,很多时候excel可视化效果也是很好的)" }/ `  b" a3 Y1 s1 {  J7 y
下面是我们这次比赛用excel作出的可视化效果图:9 p% T( p: z% u9 H# i
$ l/ U8 R8 _, ~
2.jpg 9 W- t4 w/ ?+ }0 r/ U

1 A! ]7 |5 s0 }- qTableu(专业的BI可视化软件,这个软件现在企业用的很多,出图效果确实完美,尤其在地图可视化这一块)9 u- m& q- |6 F+ f" u$ [
下面是我们用Tableu作出的可视化效果图:
) i! d: z: B* H2 M8 K* d0 `& ]4 ^4 ~# Z# \
3.jpg 2 y, Q, D% D, y

! C& e6 t2 n# a" _- tSPSS,专业的统计分析软件,很多统计学专业的应该都学过。适合小样本的统计分析,还可以跑很多统计分析模型,比如主成分分析,常用回归模型,聚类模型等等。特点是不需要编程,点点点就可以得到你想要的结果,但是出图不大好看,不大适合提升论文“逼格”! @0 i# h/ ~1 E1 D3 w

6 [* s* `1 ^8 M5 w: U编程语言集成开发环境(IDE)
# T) i$ Q: Z& J6 }  y; C9 i; t$ vMATLAB本身就是一个集成语言和IDE为一体的科学计算软件(大家应该都了解,尤其是读通信相关专业的)/ I& Z$ K/ Q( s: s( i) I
: Y6 U, d0 r* _3 a& k5 {/ U+ X
Python的集成开发环境(IDE)推荐安装Anaconda Navigator 发行版,并且安装Spyder,Spyde就是一个模仿matlab界面的集成开发环境,可以随时产看工作空间变量。尤其适合用于编写数据挖掘分析算法实现。(在spyder上面写python真的和用matlab没啥区别,太像啦!!!)
: X* q/ X1 Q. E2 \( g% Q0 k) J& J8 n: U( _9 g0 e# a
Lingo(专业的优化模型求解器)专门的lingo语言用来求解优化模型,像一般的线性规划,整数规划,二次规划模型都可以直接利用Lingo求解。(数学专业或者运筹学专业应该都学过)
% I* c; f8 h6 n- u. I* ~; u
0 i, n6 w) V" x: W& ZR就不推荐了,用得少,统计学专业的同学用的比较多。。。
/ P% J, b3 Y, [; _# y
. D3 {! l% ]7 ]" y9 D3 L2.2.2 需要的理论知识5 w7 |2 k# p' s; r: \
3 y0 E) @. R! ?5 R$ E  L
这个其实不用刻意去准备,很多时候比赛都是边学边卖。但是基本的方法模型还是要掌握一些的。考虑到建模竞赛题型主要分为三大类:优化类(竞赛必有题型),评价类,数据类(涉及机器学习等)。$ w' x1 _) T0 c& w8 y9 i

" A. H$ f, X% K; x8 l, j- t  m其实很多带专业背景的题目,最后通过抽象成数学模型就是上述三类问题。比如图像类问题,很多时候要么抽象成优化模型来求解,要么就是机器学习模型来训练识别。那我就从三类题型来说明一些基本的模型:
( @7 ?- p' P0 M. P/ {; O, E4 }+ \8 H7 r
优化类:优化类问题基本没有可以直接套的模型,很多问题都需要自己来写出优化目标和约束条件。或者参考相关文献来设计模型。并且如果模型设计的复杂了,还需要自己设计优化求解算法。。。总之,优化问题是很难得。基本的优化模型包括:线性规划,整数规划,01背包,非线性规划(建模赛题基本都是非线性的。。。哈哈哈),最小二乘优化。基本求解算法包括:牛顿迭代,拟牛顿,梯度下降,共轭梯度下降,各种智能寻优算法等等。总而言之,优化就是难啊难,而且优化建模题基本上都有答案范围,模型建的不好,解的不好都over。。。2 Y6 E! h+ s5 i

4 u' e0 D% X" I2 Q3 J1 j+ G7 @/ L3 D评价类:评价类问题,一般都有可以套用的方法,比如主观一些的:层次分析法,模糊评价法。客观计算权重的(需要数据):熵权法,TOPSIS综合评价法,主成分权重法。对于评价类问题最好还是用客观计算权重的方法。
7 O8 M- r7 [5 @& c$ \! v2 u8 k2 R- N2 S& x$ n) @' o
数据类:上面两类问题可以说是建模竞赛以往的常规类型,数据类问题是最近几年随着人工智能,数据挖掘技术的热潮带起来的。。。可以说,数据类问题在以后的建模比赛中只会越来越多,而且数据量也会越来越大。- U, q- k: k$ C* i) C
' ?7 u( p% P5 h& h: o& k
数据类问题其实最好做,因为他可以套的模型简直太多了,各种无监督,有监督的机器学习模型都可以对数据进行处理。基本上只要清楚常用的机器学习算法就可以应对建模竞赛。(常用的机器学习算法可以参考博主的学习笔记)% c- @; ~# D" G5 @

7 A  j/ R& o8 `3 x* ?2.3 怎样选题?' I4 E( Y; i- @  Q( j% N3 J
5 l2 C! |1 G0 O4 f# i$ ?
我前面也提到了,现在的建模赛题题型大概分为三类题型。以我的经验来说,无论是本科还是研究生的赛题每年都会有的题型就是优化题。但是优化题对新手是很不友好的,除非对于优化问题有一定的经验,熟悉各种优化算法。传统的优化题型一般都是有一个结果标准,这个也会是论文评奖的一个标准范围,所以如果没有一定的实力,我非常不建议大家选择优化题型,毕竟大家三四天的通宵达旦知识未来取得一个好成绩。% J: c0 M, ?5 X5 c& H) e
* w0 W1 Q  F2 Y9 |( e3 L) S
剩下的就是评价类以及数据类型的题目了,其实这两种题型是经常交叉在一起的,比如数据题里又一个评价相关的小问。一般来说,评价类的问题或者是数据类的问题是没有标准答案。既然没有标准答案,那么大家可以发挥的地方也就多了,这也是为什么推荐大家做这些题型。从最近几年的研究生赛题命题方向可以看出,数据挖掘和综合评价结合的题型也会是主流趋势。最近两年的赛题都有数据挖掘+综合评价的题型。对于这种题型,最好的解决方法就是套一些现有的模型,如果能够在熟练运用现有模型的基础上提出改进,那就是一个亮点。比如随机森林回归可以用来解决数据回归预测问题,如果对于输入变量进行加权,从而让预测mse等指标有效提升,那么这就是你论文的一个亮点,只要论文写得不是太差,获奖基本没有问题。
! G  N. D6 [8 ^4 C7 a/ w9 d2 A% `* j6 n$ O7 O1 W8 A
总而言之,选题一定要量力而行,如果完全没有把握,那么就看别人都选什么题。一般来说一道题选的人多的话,这道题上手是相对容易的。(千万不要以为一道题选的人少就容易获奖,一道题选的人多就不容易获奖,告诉你:完全都是按照比例来的。题目选的人多,获奖的队伍数量也会多)
  I# V* K' Z5 u8 o: g2 D* n0 V6 z/ x- H1 ~
7 H* G  y. p( K  k( d! b8 P& w( }如果有一年出的题目全部都是优化题型,那也没办法,只能硬上了。其实优化题型建模也是有套路的,多搜搜文献一定有一些能够套上的,或者给你提供一些建模的思路。优化题模型一定要建的好一些,最后解不出来也影响不大,模型论文搞的逼格高一点,什么GA,SA寻优算法都可以套一套。最后把论文搞好一点,总而言之,难得话大家都难。模型建的不好,算法解不出来,没关系,每年这么多人参加比赛。获奖比例在哪里,完全做出来的毕竟少数,就算这些人把一等奖拿完了,你拿个二等奖不也美滋滋吗。就算模型瞎写,算法不懂,你的论文也要完成,能不能获奖的依据完全就是你的论文。
/ o& d, ~: f/ C3 R
/ w5 O" P) L6 F0 \0 i, Q2.4论文相关的建议以及经验 (最重要)
* i9 ^) _) f$ t; V9 _! u# ]5 V* \: t' \( Z, I( E6 U  |
前面说了一大推,其实对于很多第一次参加的人来说意义不大。。。(没错,很多人第一次参加,前面说的知识储备根本不可能快速补充)。那应该怎么办,听我的,把你的论文搞好一样可以获奖。。。我见过很多队伍三,四天比赛时间睡眠不到10个小时,心力交瘁,最后吧模型和算法,结果都搞的很好,但是最后也没有获奖。什么原因???其实原因很简单,你的论文没有搞好,我的建议是论文从第一天就开始写,这样你后边才会有大量时间来润色论文,刷摘要。下面我主要从论文的三个方面来探讨一下,怎样搞出一篇获奖建模论文。
# e' H7 A: _+ Z1 ]
5 S8 E4 ?. y! G先讲一下一般评委老师是怎么评判一篇论文的:你想想上万篇论文,就跟高考作文打分一样。这些评委老师每天要看多少篇论文!!!所以,这些评委专家一般都是看个摘要,排版,论文大概的浏览一下,根本没有时间详细的阅读你的论文内容。根据摘要,排版,论文内容大概就能给你的论文一个评分。所以摘要,排版,论文内容充实都是需要格外注意的。
- r2 }- ~0 I) S' x2 z, z8 H2 Q* e; l! v8 b! j6 F1 M0 n/ s$ K
2.4.1 论文摘要(重中之重!!!(摘要决定你能不能获奖))
% V1 D/ u  a* N) g  Q- k
& J8 `" |2 V8 {, ^: D论文摘要真的太重要了,这些评委老师根本不会认真读你的论文正文,但是他一定会认真看完你的摘要(前提是你的摘要写的不是太烂)。如果你的摘要出现一些低级错误,比如错字,学术性的方法写错了,模型瞎套(不懂瞎用被评委识破)。很遗憾,评委老师不会再看别的东西,直接pass掉。成功参赛奖归你了。。。
* S/ @! {% i4 ~# V5 J
+ n8 R" j; @  Q8 O9 @2 U如果你的摘要写的正规正举,评委才会再去看你论文的其他东西。$ i  S7 f5 u+ R9 D
比如排版,内容,图表(结果)等等,从而给你的论文评估一个分数。
  Y( _4 S) p! i6 r. {
1 E: v3 \% k5 F2 V2 h* }如果你的摘要写的极好,措辞专业,用到很好的方法,思路清晰的表达出来,并且提出一些自己的想法。
4 S! R) J/ z" A- _0 E2 P) D恭喜你:你的论文直接进入下一轮评审,现在保底也是三等奖了。% `3 A, C# U% _; X0 u% }3 `

7 O" G0 {9 L; v9 ^2 @  G可以说你的论文摘要直接觉得你的论文能不能获奖,摘要写的烂,直接pass,摘要写好直接进入下一轮(保底三等奖,为什么会这样?因为你的只要就是全文的浓缩,包括你的整体建模思路,用到的方法,结果。你们的工作一定通过摘要清晰的表达出来)% s2 L  @4 }. E
) d& O- Z* v  b8 n# J6 Y
2.4.2 论文排版
% @# d$ K! F2 D  G; b9 ~
0 P* B/ E! v. {; K% Z排版也不是特别重要,只要不出现特别夸张的排版问题,评委老师基本不会特别在意。但是论文排版弄得美观还是有加分的,自己看着也舒服。
0 L0 \( F% h$ p* K3 \* w2 p
7 W& o* O7 z2 r$ m2.4.3 论文内容: I" T9 l/ s* G) Y$ f3 X+ n
1 }3 u( e1 V" V7 V0 h
论文内容一定要充实,本科起码20页正文,研究生起码30页正文。4 o: b+ P3 ^8 M5 M( U) ?
就跟毕业论文一样,先不谈水不水的问题,别人都写30多页,你写了不到10页内容。工作量都比别人差远了,(除非你是大佬,论文10页都是精华,其实也不一定的,毕竟比赛很主观). p1 ^( a& d8 F5 H

- q& r: r5 d1 J+ {' l论文中一定要包含大量图和表
5 x- n6 ]! P2 V0 T4 a评委在浏览论文内容的过程中,根本没有心情看你的文字。而且你的图和表就是你的工作,也就是你编程实现的结果。所以你的工作一定要尽可能的通过图表可视化来实现。一般人都是更喜欢图,表,而不是阅读大量的文字。尤其是各种图,美观的可视化结果会直接抓住评委的眼球。如果你做出一个较好的结果,并且通过可视化呈现出来,我相信只要评委老师看到,基本上获奖就稳了!!!如果摘要过关,而且内容完整,排版美观,恭喜你:保底二等奖水平了!!!
: f: ]7 a7 _" |  C( B2 C5 b& n. E1 B. B  D" [5 f7 G& {, W
比如我们今年研赛用python做出的温度热力图可视化效果:3 I: ], ]+ u3 {1 G( r( k5 J- j
4.png 5 h% }! n7 B4 A$ G4 H0 J
: [: @* |) T& v$ i% j* d2 p

- `- L2 h' Z$ z2.4.4 论文经验总结
. p! M' a" M5 }0 q& |. o# ^, s
% A- |+ m: U# p! h$ E概括一下就是:
3 D: {, V* O. v: P1 P摘要很重要,最好留有半天时间专门的写摘要,改摘要。条件允许的同学可以找老师帮忙修改摘要。总之摘要基本上觉得你能不能获奖。。。而论文的排版和内容决定你能获得几等奖,论文内容结果尽可能用图表来可视化,如果你的图表结果抓住评委老师的眼球,奖项很有可能会提示。。。python,matlab,tableau作图相关还是要去自己学习。。。这个要自己动手做。( n' q# T8 p' g. E/ O# ^
至于怎么写论文和摘要,我的建议是多看优秀论文,看看每年的一等奖优秀论文摘要和论文是怎么写的,比赛的时候可以模仿他们。。。3 r8 l: G$ _3 A* q

1 Z6 K& \6 v8 h$ Z2 ^& }三、运气(尽力而为,听天由命)1 t6 l2 W3 Z- v
- T1 L* l" w* n/ A; z
其实运气这个东西基本上做任何事情都是存在的,但是运气在数学建模竞赛评奖的过程中确很突出。每年总有一些队伍做的很好,但是没有获奖,或者奖项较低。而一些感觉做的一般般的,没怎么付出时间劳动的,却拿到了很好的成绩。/ ?0 p7 O* y3 N, v8 ]0 O) k$ l: Q1 J
* ^% I, U  v) \0 K& `" a& x. d
所以说尽人事,听天命,保持一个平和的心态,努力坚持把你的论文做完。如果你按照我上面说的把你的论文弄好,摘要弄好。获奖问题不大,就算一次不获奖,多来几次一定是可以获奖的!!!' P+ `; c+ G- r. \8 C5 B

  G7 c; S+ [  W( t0 ~四、实力
; i2 b, H- O# B/ D
+ ?. w. W' f. G+ l+ p/ u关于队伍实力这一块也没啥好说的,实力强的队伍结果做的一定好。但是我想说的是,就算你的结果做得好,模型建的好,如果不好好整你的论文的话一样会滑铁卢。记住啊,建模论文是你比赛的唯一评分标准!!!(先看论文再看结果)2 ^8 e  P9 m  w  f+ n7 S2 g7 E

; t* L2 O% \  [1 k0 ?五、总结
. W) F* b9 r4 |" C" y6 c( J
/ g6 _9 B! F/ }) L7 K上面写的都是我自己参加比赛的经验,不一定适合于所有人。欢迎大家留言评论,交流相关经验,也可以到我的个人网站:$ P: D  x; O5 j( ]& L0 y9 z

0 H( s8 F6 I- U' d王双双的个人网站
. d3 a  f! j: Y! ?. n2 A3 i6 q上面提到的软件,工具以及博主这里都有破解版。本科,研究生国赛的历年优秀论文,博主这里也都有。如果有需要的可以下方留言,我看到就回。最后祝愿大家都能成功获奖!: O( i6 m2 e' u5 Z8 [- z! c
————————————————
  J1 b" y$ U6 z) Y* N4 u$ U7 g原文链接:https://blog.csdn.net/maligebilaowang/article/details/103097376
& a  d: m* |* W" F& t' ^% Y' B
6 L3 F  J# }: V( ~7 t. J3 Z# R2 C! `' h4 P2 u4 u

作者: chace    时间: 2020-4-7 10:06
很好的分析,学到了很多,谢谢分享9 Y9 Y4 i* j# `$ s7 C+ p





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5