我们希望借助免费、便捷的在线资源,帮助你完成从小白到大牛的蜕变。这篇《7步掌握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并对机器学习有一定概念后,我们还要了解一些机器学习常用的开源库:
相关学习教程如下: 下面的教程中将会提到其他一些软件包,其中包括Seaborn(一个基于Matplotlib的数据可视化库)。前面提到的包是Python机器学习任务的核心; 然而,我希望你理解它们以适应相关的包,而不会在以下教程中引用它们时引起混淆。 第4步:用Python开始机器学习
时机成熟,让我们用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深度学习库学习简单网络的实现。对于那些有兴趣深入深度学习的人,我建议从下面的教程开始: TheanoTheano是我们将要看到的第一个Python深度学习库。以下的Theano深度学习教程是冗长的,但它非常的经典、具体,被各方高度评价: CaffeCaffe是我们学习的另一种库。这篇教程是整个文章最璀璨的明珠,尽管我们已经实现了一些有趣的案例,但仍没有一个可以与用Caffe实现谷歌的DeepDream相匹敌。好好享受吧!掌握教程内容后,就可以让你的处理器拥有属于你的思维了! 我并不能保证上述这些会很快或很容易实现,但如果你花精力按照上面的7个步骤,相信你可以理解机器学习算法并熟练使用Python完成这一工作,兴许还能参与最前沿的深度学习研究中。 个人觉得如果是纯python,不加任何外部的库,那你就需要做好准备半年时间去自己开发深度学习框架了。不过好在有很多大牛人或者机构已经给你开发好了很多可以拿来直接用的库,模块。这些都是大大的好啊。真心感谢他们的贡献。 具体来说说用python开发或学习机器学习,深度学习的重要模块!应该说是必不可少的模块! 1. 前期准备, 你多多少少需要懂python科学运算,数据整理还有出图像结果的模块,这三个必不可少:numpy [教程], pandas [教程], matplotlib [教程]. 2. 进阶准备,在机器学习方面,scikit-learn [教程] 是汇集了众多机器学习方法的模块,它支持各种各样的机器学习方法。你总能找到适合你项目的。 3. 同样是进阶的,在神经网络方面有着巨大贡献的 Tensorflow [教程],这个是Google开发,而且挖了挺多theano的开发人员。我觉得神经网络的开发没有比tensorflow更牛的了。而且你想Google这大公司,更新推进的速度肯定也不会慢。看好它。同时 Pytorch [教程] 也是值得推荐的神经网络库. 4. 现在强化学习 [教程] 也非常的热门, 让机器人自动学习, 帮你完成事情是不错的想法. 比如AlphaGo, 都是强化学习做出来的. 5. 遗传算法 [教程] 这种类型, 在工业界是使用得比较多的, 但是未来可能大部分用遗传算法的工程会被深度学习替代, 但是遗传算法这种进化形势的算法, 还是在机器学习有一席之地的. 6. 如果想方便快捷地搭建神经网络, Keras 这个模块很不错, 他的底层是 Tensorflow 和 Theano, 所以在 Windows, MacOS, Linux上都能用得到. 7. 的确是还有很多其他的模块可以运用,不过在我个人的机器学习生涯中,主要就是运用这些了。 为了方便大家的学习,推广华人在机器学习领域的力量,我有自己做一套的scikit learn,Theano, Keras, 还有 Tensorflow 等中文教学视频, 机器学习的简介系列。国内的反响还不怎么样,不过在YouTube上已经很多人观看了。希望大家支持华人的力量。 最近也在学习并制作网页, 汇总所有内容: 莫烦Pythonmofanpy.comPython本身没有什么可以学的,numpy, scipy这些在数据预处理的时候自然会用到,唯手熟尔。scikit-learn,就不说了,深度学习和它也没啥关系(还没上正式版的MLP classifier也不知道有多少人会用),预处理时同样有用,傻瓜式调包不会用倒贴钱。 然后我不明白了,你想用Python学深度学习,加Caffe和Torch的标签干嘛,果断Tensorflow啊(Theano嘛...已弃坑hhhhh,不过能hard code一遍Theano网站上面的教程对理解深度学习算法非常有帮助,这是很多high level的流行库诸如Keras或tflearn所不能带给你的)! |
|