我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高。因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发。
我了解到Python的生态对入门机器学习很有帮助。因此希望以此作为突破口入门机器学习。
下面介绍一下如何通过Python入门机器学习。
学习Python基本语法
首先在Python官网找到入门教程,快速过了一遍Python的基本语法。相信对于稍微有点编程基础的人来说这都不是事儿。作为实践,接着我用Python实现了一个基于命令行翻译脚本。到此Python算入门了。
这里啰嗦一下Mac下的Python环境的搭建过程。我在这篇文章中介绍如何处理系统自带和自己安装的Python版本。Python机器学习相关库Python有好多涉及机器学习的库,如Theano、TensorFlow、PyTorch、scikit-learn
等。考虑到scikit-learn(以后将简写为sklearn)对机器学习进行了高度封装与抽象,能够让初学者跳出数学的梦魇进行机器学习实践,我选择它作为入门的跳板。除此之外还需要学习下面几个Python库,用于数据处理或者科学计算等。
numpy:提供强大的N维数组及相关操作的库,参考NumPy快速入门笔记。
pandas:提供类似关系型或标签型数据结构的库,参考Pandas快速入门笔记。
scipy:集成众多数学运算函数的库,请自行参考官方文档。
matplotlib:把数据绘制成图像的工具,可以参考Matplotlib快速入门笔记。
出发机器学习冒险旅程
sklearn提供了很多机器学习的算法实现,在学习过程中我很难做到一个不漏地全面学习与覆盖。经过多番查找,我在Youtube上找到sentdex发布的视频“Machine Learning with Python”。至此,我也将跟随sentdex的脚步一步步进行学习。后续的文章主要也是参考视频,并结合自己的理解进行必要的扩展。
初次看sklearn可以读一下官网的Tutorials文档。其中“An introduction to machine learning with scikit-learn”章节可以让你初步了解sklearn这个库能做什么、机器学习基本概念、sklearn环境搭建、基础功能等。
而“A tutorial on statistical-learning for scientific data processing”章节能让你了解有关监督学习和非监督学习的基本概念。
深入原理
sklearn能够以黑盒方式提供机器学习算法的实现,这对初学者是有利的。但是如果仅仅停留在这里显然是不够的,如果不掌握一定的基础知识与原理,我们无法对显示问题进行建模与选型。所以在学习了sklearn的算法后,一定要查阅相关文档,了解算法背后的知识与原理。这个过程应该是最艰难的,希望我们都不停留在这一步。