猿创征文|0基础文科生的机器学习8大工具

Posted 向瑶函

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猿创征文|0基础文科生的机器学习8大工具相关的知识,希望对你有一定的参考价值。

大家好,我是连续2届全国Datathon数据分析大赛亚军向瑶函,同时也是一名0基础转行机器学习领域的文科生,上面这些描述并不是夸张,可以看下面,有图有真相。

今天想跟大家分享一下我在机器学习领域最常用的工具,之所以会想到这次分享,主要还是给同样0基础想转行机器学习的小伙伴提供一个思路。

毕竟工欲善其事必先利其器嘛,相信没有哪个人会希望在机器学习的时候被环境配置、工具兼容性、依赖库这种“解决完没啥成长,但是不解决又没法推进”的问题劝退。

由于我是一个0基础转行机器学习的文科生,因此我选择工具更多是出于简单、学习成本低、性价比高这些角度,如果阅读文章的您是那种机器学习大神,想要追求在高性能、协作开发、虚拟环境管理等板块更强大的工具,那这篇文章列举的工具可能更多仅供参考了。

一、Python环境:anaconda(你可以说它臃肿,但没法否认它是最简单的)

一般我们这种转行做机器学习,除非是那种究极大佬会愿意去用C++改经典库比如tensorflow的底层代码,95%的人首选语言都是Python。

而比起直接到Python官网下载一个只附带了官方库的Python纯净版,我更推荐大家去下载anaconda(国内网可以直连)。 

如果你做过一段时间机器学习,或者是纯粹搞数据分析,你会觉得它很臃肿,因为它除了numpy、pandas等最基础的“数据分析四剑客”,以及超级实用的Jupyter Notebook外,如下图所示,anaconda还附加了很多乱七八糟可能你永远都用不到的库。

但在机器学习领域,除了没有集成Sklearn、tensorflow和pytorch这机器学习三剑客以外,anaconda基本不存在缺库的情况,相信应该没有人会喜欢还没开始搞机器学习之前,就要不断重复pip install XXX来下载各种依赖库吧。

当然,我现在也确实不用anaconda了,但这一切的前提是我通过一段时间对机器学习的摸索,已经清楚了自己常用的库是哪些,另外,我现在部分环境依赖会通过容器去解决。

如果你对上面两条没有任何基础与准备的话,那还是推荐老老实实下载一个anaconda吧,虽然它确实有些臃肿,但它在简易性方面从来都没有输过。

二、IDE:VS Code,开箱即用,拓展性最强的IDE

说起Python的IDE,很多人第一时间想到的大都是Pycharm,的确,Pycharm确实是目前Python开发工程师的首选,它有非常多强大的功能,比如说,如下图所示,Pycharm的代码自动填充和提示功能可以说是所有Python的IDE里面最最强大的,数据库、外部引用……基本上你能够想到的,啥都能填。

尽管Pycharm确实非常强大,但它很可能不是机器学习入门者的首选,因为它不够简单。

举个最简单的例子,比如说我第一次运行代码的时候报错显示【No python interpreter configured……】,查了攻略后发现要到下图这个的Pycharm运行环境设置里去解决,当时就花了我好多时间去搞懂一个个选项代表的含义是什么,直到我选择了一个Python interpreter才真正解决问题。

而在操作简易性方面,另一个IDE:VS Code就好很多,它在很多缺失功能都具备自动检测和弹窗,比如这里我在官网下载了英文版,它会自动弹窗提示我“下载中文”。

当我打开了一个Python的Notebook,它也会给个提示一键去下载在VS Code上运行Python需要的所有依赖插件。

最重要的是,它还有非常多的插件可供下载,甚至支持你在编辑Python的时候学习其他语言。 

当然,可能对大佬来说,VS Code频繁的弹窗(基本每次打开都有弹窗)是一种打扰,但对于小白来说,当自己愁眉苦脸找不到解决方案的时候,这个时候一个弹窗很有可能就是他的救命稻草。

尽管VS Code在Python编程的专业性上比不过Pycharm,但在机器学习领域,复杂的永远都不是代码,真正重要的还是整个机器学习项目推进的思路,用专业术语来说就叫做“通过特征工程,让模型匹配数据”

虽然,现在我用的是Pycharm,但如果你跟过去的我一样是初学者的话,还是非常推荐VS Code的。

好了,由于圈子里关于IDE和Python环境两者中谁更好的争议非常多,因此以上的介绍比较详细,接下来分享的工具基本都是业内公认的“无敌”,所以就简单介绍下。

三、线上Notebook:Google Colab(性能最好的无限免费算力)

当你的电脑配置不高(比如像我一样,老家的电脑是15年前的XP系统),或者是你需要同时跑N个无法并行的模型的时候,一个好的线上环境绝对是你最需要的。

而所有线上Notebook里面,Google Colab绝对是最好的,为啥,因为它是唯一一个基本不限制使用(我有被限制过,但只要不是一次性用7-8个小时,基本不会被限制),并且配备了很不错的GPU(英伟达的Tesla K80,运气不好可能会被分到T4)的Notebook。

唯一的缺点是它需要魔法上网,当然,如果实在不行,你也可以试着白嫖各大国内Notebook的免费额度,这里就不做详细介绍了。

四、机器学习通用库:Sklearn(上手最快的黑盒子)

我一开始认为机器学习是我这种文科生不可能掌握的,直到我遇到了Sklearn。

可以说从Sklearn这个库开始,机器学习进入了一个不需要懂太多原理,只要会fit和predict就能够出结果的时代,比如我下面这段代码就是一个线性回归模型的构建。

#模型训练与预测
lr = LinearRegression() # 这里把模型改成LogisticRegression就是逻辑回归
lr.fit(train_x, train_y) # 让模型在训练集上做训练
predict_y = lr.predict(test_x) # 用测试集的x产生模型对测试集的预测结果

尽管这样确实降低了从业者的门槛,但确实帮助了很多人开启了机器学习的大门。

这个Sklearn到底有多么神奇?这里我必须得卖个关子,等你实际体验过后,你会回来感谢我推荐给你Sklearn的。

五、深度学习通用库:Tensorflow或Pytorch(兼容性最好,功能最全的深度学习工具箱)

如果你要做深度学习,类似各种各样的神经网络的话,那就得用到Tensorflow或Pytorch了。

关于两者哪个更好,网上一直有争议,但我的建议是2个都学,因为我实际体验发现各有优缺点,但它们又无法相互替代。

具体使用方法就有待大家探索了,我的建议是先从Tensorflow的Keras开始,因为它算是最简单的一个神经网络构建库。

六、GPU租用:AutoDL(算是最便宜的GPU租用平台)

如果你有大模型的训练需求,去租一个好的GPU算是最划算的方法,而租GPU一般都比较贵,这里推荐一个叫做AutoDL的平台,算是我看过的目前来说GPU租金最便宜的平台了,不过这种走平价路线的平台售后和客服都存在一定的瑕疵,这个就需要大家自己去甄别了。

七、远程操作:Todesk

可能你会觉得Todesk这种远程操作软件跟机器学习无关,那你就错了,因为机器学习的模型运行时间是你无法估计和控制的。

可能你6点下班,有一个本地模型要大概9点跑完,怎么办?难道说在公司干等3个小时吗?这个时候远程操作软件的作用就体现出来了。

当然,一提到远程操作,可能很多人想到的是teamviewer,但teamviewer不推荐的原因是因为免费版限制最多只能够登录2个可信设备,不巧的是,我一般远程操作的设备一般都是3台,这点todesk会友好很多。

八、超参数优化:optuna(最全能的超参数优化库)

机器学习需要预先设置很多超参数,不同的超参数带来的模型效果天差地别,于是诞生了很多自动调参的库,这里面我用过兼容模型最多的库算是optuna了,当然,可能是由于兼容太多盘子太大了,optuna的运行速度可能并不尽人意。

以上是关于猿创征文|0基础文科生的机器学习8大工具的主要内容,如果未能解决你的问题,请参考以下文章

猿创征文|机器学习实战——集成学习

猿创征文|大数据开发必备的数据采集工具汇总

猿创征文|Python-sklearn机器学习快速入门:你的第一个机器学习实战项目

猿创征文|我的前端——HTML5基础成长学习之路

猿创征文|Python学习工具千千万,我心中的TOP10

猿创征文|有了这8个开发工具,程序员可以早点下班了