如今,网络上的Python机器学习资源纷繁复杂,使得刚入门的小白们眼花缭乱。究竟从哪里开始?如何进行?云栖君给你推荐以下内容,相信读完你就会有自己的答案。
“开始”,是一个令人激动的字眼。然而万事开头难,当你拥有过多的选择时,往往就会不知所措。 />
我们希望借助免费、便捷的在线资源,帮助你完成从小白到大牛的蜕变。这篇《7步掌握Python机器学习》将会回答如何选择资源、如何拓展学习以及按怎样的顺序学习等一系列问题。
我们要开始了!首先假定你还不具备以下技能:精通机器学习
熟练掌握Python
熟悉其他Python相关包
使用Python的经验或许对后面的学习有帮助,但并不是必需的。在最初的几步多花些时间和功夫也可以弥补这些欠缺。
第1步:Python基本技能
如果我们希望用Python进行机器学习,对Python的基本理解是至关重要的。幸运的是,由于Python作为编程语言的普及和它在相关领域的广泛应用,找到入门教程并非难事。而从何处起步取决于你对Python的掌握程度。
首先,你需要下载Python。考虑到我们会利用Python进行科学计算和机器学习,我建议安装Anaconda。它是一个多平台开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,还包括我们许多教程的交互式环境iPython Notebook。
如果没有编程基础,我的建议是从下面的资料看起,然后再学习更多教程。
如果有其他编程语言基础,或刚接触Python,我会建议使用以下材料:
对于希望能够快速上手的读者,我推荐:
当然,如果你是一个有经验的Python程序员,你可以跳过这一步。
第2步:机器学习基础
人们会觉得数据科学家有许多异于常人之处。这实际上是人们对机器学习领域的印象,因为数据科学家所做的大部分工作都不同程度的涉及到机器学习算法。是否有必要为了更高效地完成机器学习模型的建立而去深入其内核?当然不是。就像生活中任何事物一样,理论理解的程度和实际应用相关。但机器学习算法并不在本文讨论范围,通常这需要长期学术研究,亦或是锲而不舍的自学。
好消息是,你不需要对机器学习拥有博士一般的理解程度,换句话说,并不是所有的程序员都需要接受理论的计算机科学教育才能成为的编程人员。
吴恩达老师在Coursera上的课程经常得到好评。然而,我的建议是多浏览学生编写的课程笔记,并跳过Octave某些的注释。尽管这些不是“官方”的笔记,但仍然把握了吴恩达老师课程材料的核心内容。如果你有时间和兴趣的话,现在可以在Coursera上选择吴恩达老师的机器学习课程了(网易云课堂也发布了吴老师的中文版课程)。
除了上述吴恩达老师的课程,其中还包含各种各样的视频讲座。
浏览到这里,你并不需要查看所有的笔记和视频。一个更为高效的方案是,完成下面特定的练习,并辅以相关的视频和笔记。例如,当你在练习回归模型建立时,阅读吴恩达老师和Mitchell的相关资料即可。
第3步:Python基础包概览
当我们掌握Python并对机器学习有一定概念后,我们还要了解一些机器学习常用的开源库:Numpy-主要提供矩阵运算的功能。
Pandas-提供了高效地操作大型数据集所需的工具。
Matplotlib-一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
Scikit-learn-用于数据分析和数据挖掘任务的机器学习算法。
相关学习教程如下:
下面的教程中将会提到其他一些软件包,其中包括Seaborn(一个基于Matplotlib的数据可视化库)。前面提到的包是Python机器学习任务的核心; 然而,我希望你理解它们以适应相关的包,而不会在以下教程中引用它们时引起混淆。
第4步:用Python开始机器学习Python √
机器学习基础 √
Numpy √
Pandas √
Matplotlib √
时机成熟,让我们用Python的标准机器学习库Scikit-learn来实现机器学习算法吧 />
下面的许多教程和练习将由iPython Notebook驱动,这是一个用于执行Python的交互式环境。这些iPython Notebook可以选择在线查看或下载,并在本地计算机上进行交互。
我们的第一个教程,是进行Scikit的学习。我建议在进行以下步骤之前先完成所有这些工作。
scikit-learn的一般介绍,涵盖了K-均值聚类算法:
一个更深入、更广泛的介绍,包括一个数据集的入门项目:
一个侧重于评估scikit-learn中不同模型的介绍,涵盖训练/测试数据集拆分:
第5步:开始主题化的机器学习
在Scikit-learn的基础上,我们可以进一步深入探索各种常见的、有用的算法。我们从K-means聚类开始,这是最着名的机器学习算法之一,是解决无监督学习问题的一种简单且有效的方法:
接下来,我们回到分类,并看看历史上最受欢迎的分类方法之一:
从分类,我们看看连续的数字预测:
然后我们可以利用回归分类问题,通过逻辑回归:
第6步:用Python完成机器学习进阶
我们已经习惯了Scikit-learn,现在我们把注意力转向一些更高级的话题。首先是支持向量机,一种与相关的学习算法有关的监督学习模型,可以分析数据、识别模式,用于分类和回归分析。
接下来,通过Kaggle比赛来检验随机森林:
降维是一种减少问题考虑的变量数量的方法。主成分分析是无监督降维的一种特殊形式:
在进入最后一步之前,我们回过头看看,我们在较短的时间内完成了许多充满意义的任务。
使用Python及其机器学习库,我们已经介绍了一些常见和知名的机器学习算法(K-均值聚类算法、K-means聚类、支持向量机),学习了强大的技术,检查了一些机器学习支撑任务(降维,模型验证技术)。除了一些基本的机器学习技巧外,我们也开始为自己扩充一个有用的工具包。
在完成之前,我们将再添加一个按需使用的工具。
第7步:Python深度学习
/>
深度学习无处不在。它建立在神经网络研究的基础上,可以追溯到几十年前,但是最近几年来的进步已经显著提高了深度神经网络的感知能力。如果您不熟悉深度学习,这儿有一些文章可供学习。最后一步并不意味着任何机器学习方面的权威。我们将从两个领先的Python深度学习库学习简单网络的实现。对于那些有兴趣深入深度学习的人,我建议从下面的教程开始:
Theano是我们将要看到的第一个Python深度学习库。以下的Theano深度学习教程是冗长的,但它非常的经典、具体,被各方高度评价:
Caffe是我们学习的另一种库。这篇教程是整个文章最璀璨的明珠,尽管我们已经实现了一些有趣的案例,但仍没有一个可以与用Caffe实现谷歌的DeepDream相匹敌。好好享受吧!掌握教程内容后,就可以让你的处理器拥有属于你的思维了!
我并不能保证上述这些会很快或很容易实现,但如果你花精力按照上面的7个步骤,相信你可以理解机器学习算法并熟练使用Python完成这一工作,兴许还能参与最前沿的深度学习研究中。
更多技术干货敬请关注云栖社区知乎机构号:阿里云云栖社区 - 知乎