上手机器学习系列-第2篇-工具&学习资料准备篇

上手机器学习系列-第2篇-工具&学习资料准备篇

工欲善其事,必先利其器。既然机器学习是一门实践性科学,那么过程中就非常重视动手能力了。本期为大家推荐一些相关的软件工具、学习资源,以期在正式开始编码之前让大家做好相应的准备工作。因为可以选择的平台与工具太多,反而是一种信息干扰,这里笔者结合多年行业工作经验为大家遴选出一些比较好的资料,以节约朋友们的自我探索时间。

1. 编程环境

现如今支持机器学习的软件可谓层出不穷,但要论普及度及易用度,还是首推[Python]的生态。

1.1 Python本身

从下面这张最新的2020年2月份[TIOBE编程语言排行榜]就可以看出,自从2018年以来Python的流行度加速攀升,这里面从深度学习的工业实践更多拥抱Python受益匪浅。其实早在笔者2012年参加工作的时候开始,Python就已经在企业内部非常火了,很多系统端的开发也开始从Java迁往Python。业界广为流传的一句戏称“人生苦短,我用Python”,也充分证明了这门语言的深得人心。其实这门语言上手还是非常快的,建议大家先去初步掌握一下这门语言,后面我们的公众号文章也更多地会结合Python来讲解。目前Python已经发布到了3.8版本,同学们学习的时候可以直接使用最新版本,注意Python的3.0以后版本与2.x 是基本不兼容的,所以初步者就当2.0x不存在好了(官方已经不再维护),也不要再去使用。
上手机器学习系列-第2篇-工具&学习资料准备篇

如果仅安装Python官方版本,后续会有很多package需要自己去安装。而工业界已经有一款非常综合性的平台可以快速建立起一整套Python的工作环境,即下图所示的[Anaconda]:
上手机器学习系列-第2篇-工具&学习资料准备篇
因此推荐初学者直接安装该软件,它内置了大量好用的Python库资源,省去了自己安装的时间成本。但缺点是这个软件比较大(超2G),而且里面很多东西未必经常使用,对比较有经验的朋友来说就显得有点笨重。

现在企业界的朋友比较喜欢哪一款呢?答案是[Jupyter Notebook]:
上手机器学习系列-第2篇-工具&学习资料准备篇
这是一款轻量级的平台,在电脑本地浏览器页面中即可享受编程、可视化等一站式的玩转数据过程。现在还推出了最新的JupyterLab,称为下一代的notebook工作环境,相当值得入手体验。

小结一下,初步者建议使用Anaconda,未来建议体验JupyterLab。

1.2 Python+机器学习

对于机器学习来说,Python生态内的[scikit-learn]简直就是神兵利器!
上手机器学习系列-第2篇-工具&学习资料准备篇
它内置了大量的机器学习算法包,可以让初步者快速找到很好用的成熟软件包,工作效率真是嘎嘎的。而且,如果大家安装了上面的Anaconda,那么就已经默认安装好了这个scikitlearn的package,开箱即可用。

1.3 提一下分布式

对于入门学习来说,在笔记本上安装一个Python可能确实就够用了,但是未来如果进入互联网公司工作,了解分布式平台肯定是需要的。这里笔者给大家推荐Spark这个平台。
上手机器学习系列-第2篇-工具&学习资料准备篇
这是一套分布式迭代计算平台,在工业界使用非常普遍,支持Scala、Java、Python、R等多种语言。其中有专门用于机器学习的ML模块,和用于图计算的GraphX模块,唯一还不擅长的就是深度学习了。

2. 周边资源

学机器学习不能光学理论,也要借鉴1W小时理论的说法,勤加练习,这里就需要不断地拿一些数据集来练习,也需要找不同的案例来尝试。以下几个资源建议关注:
(1) 数据集。
[UCI机器学习数据集]
[Kaggle数据集]
[亚马逊开放数据集]
一开始不用求多,找一些经典的数据集来掌握机器学习的过程与优化要点即可。

(2)建模练习。
优先推荐 [Kaggle],这上面有大量的比赛案例、数据集、他人的代码,是个很好的学习资料来源;
其次推荐在线教育网站[Udacity],上面有一部分是免费课程,一部分要收费。这个项目的特点是很重视代码实践,练习题设计得难易适中。

交流群

欢迎关注本人公众号:
上手机器学习系列-第2篇-工具&学习资料准备篇

为方便大家交流与提问,可加入以下微信群或QQ群:
上手机器学习系列-第2篇-工具&学习资料准备篇
上手机器学习系列-第2篇-工具&学习资料准备篇