, G$ s; {' h; G6 m" u--------------------------------------------最后一更分割线--------------------------------------- % L' E3 B# A0 q( v6 n7 m校级复试过了,来补充一下。+ d% m8 Z+ @+ S- U/ _
python相较于matlab和lingo有一个对新手不太好的地方是没有很多的参考事例。& x2 P7 D) f* b+ V
拿这次复试来说,之前我一直是用python的,之前老师说过对语言没有要求,考前一天忽然题目有要求用的软件,临时抱佛脚在网上找了一个matlab实现的《数学建模和编程》里边整本书都是数学建模的例子和用matlab实现的代码。而我在之前搜索专门的python书籍没找到这么专业的。所以还没入坑的推荐数学软件。! r# f3 _; }6 F* Z$ E
考试的时候四道题全部用的python实现,然后再在matlab中找到对应的方法,提交答案的时候提交matlab程序。为什么这么做?因为在我看来python确实好用啊= ̄ω ̄=,提前四十分钟交卷。3 M$ t/ I* h2 E e6 W8 b
6 D' `( m0 m+ i) m( p( i3 ~8 y
但是过程一波三折,提交的版本是中途保存的一个版本,上边只写了两道题,不过还算走运,顺利拿到了国赛和夏令营的入门券。 # L( h& P1 l. P3 [3 }6 }* e这个暑假打算一边参加夏令营,一边把数学建模上的知识用python 实现一遍,目前实现了线性最优,最小二乘法,多项式拟合,聚类,主成分,回归算法(建模叫分类)等等吧。 ! e: u, `, t3 V* k8 z: M* N给自己挖个坑,所有方法都实现后会把博客地址贴在这里。2 f0 ]- T9 @/ h7 F+ v. H) x3 x: A
加油。2 d5 V/ M& q4 r# }
17-07-071 y7 |: }6 ~, w+ P. a
---------------------------------分----------------割-------------线-------------------------------- , m4 E$ k' h! }: g当初只是随手一答,有人点赞,诚惶诚恐,把答案重新编辑下:) * `0 a8 D6 w3 U6 _5 F7 {1 F9 W5 @2 Q g& z9 A; F
今年准备参加,培训的时候老师讲了画图用matlab,数学分析用SPSS,lingo,还讲了几个例子,我去,画图不就是python中的matplotlib库,聚类降维神经网络不就是机器学习sklern中的kmeans,knn,neturework吗。。。$ x: A+ B3 R: n6 O3 X5 p+ R. ]
0 S% E" R2 m8 }1 t- X参加校选赛的题目是关于共享单车时空配比,题目没有给数据,网上也找不到,我就花了点时间在gitub上找了个轮子自己改了改,用python爬虫爬的天津地区摩拜单车的数量和坐标,再用kmeans聚类,matplotlib画图。: C. o7 z u) F) n" V8 Q. f' @0 d! V
- ?- m# m/ Q- i6 P" Y7 U; [选择上边那些软件的话其它答主已经说的很详细了,参见他们的回答即可。 , z) K2 n V/ W+ Y- ?如果选择python的话,需要掌握的有:& n& a2 A% c) l/ A5 |% K" M. m# ^
1、python版本的选择与安装 # _0 Q* \) l9 p! v' Y) ]2 f) A 对比VC,python的安装需要费点时间,如果熟悉Linux会轻松很多。目前py2x和py3x共存,在刚入门的时候需要看你选择的是哪个版本,不同版本支持的包不同。多说一句,用2x的话如果用到3x的method,import futuer就好了,但是3x是主流和未来的方向XD) Q4 K! c* \( Q7 Z4 ]; c
(下边的sklearn和tensorflow就是不同的python 版本。) 4 C( t% n" x, ?4 K; @2、IDE的选择 ! J& |# P. h# k/ ]4 y1 w 推荐jupter book。我目前使用的python为py36,sklearn的env是py27。在jupter book上边创建好kernels,然后切换kernel就可以达到切换env的作用。" }' [ }3 `. V; ^8 X! p
3、基本操作和包" P n- k% J6 ^$ L
如果上边的基础准备都做好了,开始学基础操作,基本的教学视频就好了,重点掌握集合,列表,元组,函数,方法,for,magic(如果有时间的话),基本的四则运算,赋值什么的。python作为一门胶水语言,又以对程序员友好著称,学习起来我认为不是很痛苦,我之前有C,Java和Matlab的基础,学的比较快。 / S3 y' ]$ r! P 包的话重点掌握numpy,pandas,matplotlib,这些里边是数学运算,文件处理和图形绘制,建模的时候都会有用,重点掌握。其他的分类,回归,聚类,降维,神经网络,相关性分析之类的都在sklearn中(即机器学习中大名鼎鼎sciki-learn的简称,不过不要被吓到,它的数学思想和你学的概率论和数理统计差不多,单纯的调用的话看看文档和技术博客就好,需要我推荐的话可以私信或留言:)0 l6 X- a4 X% Y
还有一个包是谷歌推的tensorflow,它的领域是多重神经网络和深度学习,如果还有精力的话可以去探索,私以为建模的数据量和复杂程度会使它的学习深度不会太深,它上场的机会不大。. |# U. G) N- u! \0 }2 c 人生苦短,我用python。" o- E2 a/ D; V5 a# x1 Z% M
5 C0 h" V+ s* U/ P) C6 H
最后提一点,python作为一门语言,它的学习成本可能要比上边那些软件要大。9 |' k/ f' E$ f$ B5 ^ a @
献给那些想做建模走python技术栈的人,希望可以帮到你们。 P" y+ I5 B( d3 g2 F4 e) w: g 3 m$ \/ c+ A! d % E7 R0 j; S" J, m% ^$ S 5 O, Y$ D2 Y: N6 Y( X x" | ^, x) J- e