Python机器学习入门的准备·
前几天读到一则笑话,有人问投资界大拿:“你如何区分一个种子项目究竟是机器学习还是人工智能(AI)?”大拿回答道:“如果技术团队说项目是用Python写的,那就是机器学习,如果是用PPT写的,那就是人工智能。”这个笑话虽然主要讽刺的是对人工智能概念过度的炒作,但也从侧面反映出Python在机器学习领域的重要意义,而就目前而言,在本质上,所谓的人工智能,其实也只是机器学习的另一种称呼而已。正因为python受欢迎程度如此之高,很多有志于从事机器学习工作的朋友都开始于学习Python,但如果要学习基于Python的机器学习,究竟要做哪些工作呢?本文提出了一些基础性的建议与准备。
1.机器学习及其分类
和在相当程度上被低估或者高估的人工智能概念相比,机器学习这一名称就要朴质得多。谷歌的Alpha狗即使能打败世界排名第一的围棋高手,但在智力上仍然比不上任何一条现实中与你擦肩而过的流浪狗(或者单身狗),Alpha狗的成功,只是表明机器学习技术的飞速发展与进步,要想全面达到一条狗的智力,窃以为还有相当长的路要走。简单来说,机器学习顾名思义,就是通过程序的方法通过已知的数据与资料找到规律和方法,去解决一些未知的问题,人类所做的大部分开创性的工作,在本质上与此类似,只不过机器学习与人类自主的学习不同的是,机器不具备通过亿万年的进化融入在基因中的学习策略与方法,而只能通过人类的程序设计,通过数学模型去完成学习工作。
机器学习可以简单地分成两大类,有监督的学习和无监督的学习,前者的一个简单的例子是通过一批已知的签名识别一个人的笔迹,而后者一个典型的应用则是在众多的访问中识别出对网站恶意的供给与访问行为。这两种问题主要的区别是,在前一种问题中,样本和目标都是清楚的,而在后一种程度中,则不清楚这两者,而需要机器进行发掘与分类。基于上述的情况,机器学习中关键的因素之一便是数据的数量和质量,因此,在进行机器学习前,熟悉一些数据处理与筛选的技术是不无裨益的。
2. 要准备的环境
要通过Python进行机器学习,首要的先决条件当然是安装Python,一般来说,虽然原生的Python当然也可以使用,但为了免去人工安装很多包(并且解决其依赖性问题)的复杂,可以选择用于科学研究的Python发行版(Python有一个官方的正式发行版,以及数量非常多的用于各种不同用途的发行版),这些发行版中以Anaconda最为流行,也最为推荐,Enthought Canopy当然也不错,但缺点在于仅支持Python2,而Python3才是(大部分人)公认的python发展方向,毕竟Python2早已经不更新了。还有Python(x,y)但相对小众一些,还是推荐Anaconda作为主要的Python开发版本。
Python机器学习中最有用的工具之一是Jupyter Notebook,如果你安装了Anaconda发行版,那么Jupyter Notebook已经包含在其中了,如果是其他版本,可能需要手动再安装一次。与此类似,进行机器学习需要的环境软件包比如NumPy,Scipy,matplotlib,pandas,Ipython,scikit-learn(最受欢迎的机器学习框架之一)都已经包含在Anaconda中了,如果安装的是官方版本的Python,那么这些软件包都需要逐个安装一遍,那么,即使只是为了省事,也没有理由不用Anaconda了。
测试数据在scikit-learn中有一些,都是用于机器学习练习的非常好的数据,因此在学习阶段基本上不太需要自己搜集数据(虽然等到了实际应用中还是需要搜集大量数据的),如果用的是其他机器学习框架,那么即使细节方面不太一样,基本的理念都还是类似的。
有了上面这些条件,Python机器学习的路程,就算迈出第一步了。剩下的,也不过就是十万八万步而已了吧。加油。