机器学习入门指南
前段时间微软的年龄识别网站风靡全球,它的核心算法就是机器学习领域的内容。机器学习看起来高深莫测,学习曲线比较陡,实际上优秀的入门资料不但可以降低学习门槛,还可以激发学习乐趣。
机器学习算法
Coursera 上面 Stanford 的 机器学习 课程是优质的算法相关入门课程。Andrew Ng 是 Coursera 的创始人,也是 Stanford 的老师。这个课程最大的特点是对机器学习算法的推导和介绍,从数学层面去推导一些经典的机器学习算法。如果你微积分,矩阵运算,概率论等大学数学都还给老师了也没关系。课程中会介绍用到的最基础的数学知识,包括微积分,矩阵运算,概率论等。真正做到了深入浅出以及零基础。
算法是理解机器学习原理的非常基础的知识,在实践中我们可能根本不用去推导或实现这些算法,但不代表我们不需要理解这些算法。理解这些算法对我们选择机器学习的模型以及对数据进行分析都有非常有益的。
编程语言
适合机器学习的编程语言不少,这里推荐使用 Python。Python 是免费开源的语言,并且有非常丰富的库,而且学习 Python 语言的门槛比较低,是全民编程运动的推荐语言。这篇文章罗列了目前主流的机器学习语言以及各自的优劣。
学习 Python 除了官方的教程之外,推荐一本书 Dive Into Python 有中文版,也有英文版。中文版翻译质量也很高。当然,Learn Python The Hard Way 也不错。不过建议选择一本照着练习,一个月掌握这个语言的基础特性问题不大。
Python 机器学习工具箱
Python 用来实现科学计算的软件包是 scipy, numpy, matplotlib,其中 numpy 提供高性能的数值去处;scipy 实现机器学习的算法;matplotlib 提供数据可视化。
这三个库都挺大的,内容也比较多。这里重点推荐一个非常优质地适合入门的网站:Python Scientific Lecture Notes。一个网站把机器学习想着的 Python 工具全部搞定,并且内容易懂,很适合初学者。
机器学习入门书籍
《机器学习系统设计》是图灵社区翻译引进的机器学习入门书籍。书中使用 Python 作为机器学习算法的编程语言,从易到难,从实际问题出发,去探索怎么样用机器学习算法去解决实际问题。当然,如果需要自己实现书中的案例,需要掌握 Python 语言以及 Python 机器学习工具箱的几个库的用法。
这本书的最大特点是:
- 简单易懂,从易到难
- 内容比较精简
- 让你跳出机器学习的算法,真正从工程角度去理解机器学习,包括数据清洗,模型筛选,模型验证等
总结
建议 Coursera 上的算法课程和《机器学习系统设计》结合起来,并行来看,这样即了解了工程应用的方法,又理解了背后的算法原理。这里介绍了不少英文资料,学习机器学习的过程中还学了英文,一举两得。再花个几十美刀从 Coursera 上弄个课程证书( Coursera 上课程都是免费学的,但如果要证书则需要交几十美刀不等),瞬间高大上有没有,喝洋墨水有没有。去美帝读书也不就是这样的体验嘛。