如何学习机器学习中的Python

146 阅读6分钟

Python已经成为机器学习的一种事实上的语言。它不是一门难学的语言,但如果你对这门语言不是特别熟悉,有一些提示可以帮助你学得更快或更好。

在这篇文章中,你将发现什么是学习编程语言的正确方法,以及如何获得帮助。读完这篇文章后,你会知道

  • 学习Python用于机器学习的正确心态应该是怎样的
  • 学习Python的好资源有哪些
  • 如何找到与Python有关的问题的答案

让我们开始吧。

如何学习Python

学习一种语言有很多方法,对于像英语这样的自然语言或像Python这样的编程语言也是如此。婴儿从听和模仿中学习语言。慢慢地,当他们学会了模式和一些词汇,他们就可以自己造句了。相反,当大学生学习拉丁语时,他们可能从语法规则开始。单数和复数,指示语和从句,名词和指称语。然后我们就可以建立起一个拉丁文句子。

同样,学习Python或任何编程语言,你可以阅读其他人的代码并尝试理解,然后从中修改。或者你可以学习语言规则,从头开始建立一个程序。如果你的最终目标是研究语言,例如编写Python解释器,那么后者将是有益的。但通常情况下,前一种方法能更快地得到一些结果。

我的建议是先从实例中学习。但要通过不时地重温语言规则来巩固你理解语言的基础。先看下面的例子:

def secant_method(f, x0, x1, iterations):
    """Return the root calculated using the secant method."""
    for i in range(iterations):
        x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0))
        x0, x1 = x1, x2
    return x2

def f_example(x):
    return x ** 2 - 612

root = secant_method(f_example, 10, 30, 5)

print("Root: {}".format(root))  # Root: 24.738633748750722

这段Python代码正在实现正割法,为一个函数寻找根。如果你是Python的新手,你应该做的是看一下这个例子,看看你能理解多少。如果你以前有其他编程语言的知识,你可能会猜到def 定义了一个函数。但如果你没有,你可能会感到困惑,最好从编程的初级书籍开始,了解函数、变量、循环等概念。

接下来你可能认为你可以做的是修改函数。例如,如果我们不使用正割法来寻找根,而是使用牛顿法呢?你可以猜想如何修改第4行的方程来做到这一点。那么平分法呢?你需要添加一个声明if f(x2)>0 ,以决定我们应该走哪条路。如果我们看一下函数f_example ,我们会看到符号** 。这是指数运算符,表示xx到那里的幂2。但是我们应该是x2612x^2-612还是x2612x^{2-612}?你需要回去查查语言手册,看看运算符的优先级层次。

因此,即使是这样一个简短的例子,你也可以学到很多语言特征。通过从更多的例子中学习,你可以推导出语法,习惯于成语式的编码方式,即使不能详细解释,也可以做一些工作。

应避免什么

如果你决定学习Python,从书中学习是不可避免的。只要从当地图书馆拿起任何一本关于Python的初学者的书应该都可以。但是当你阅读的时候,要牢记你的学习目标的大局。在阅读时做一些练习,尝试书中的代码,并编出自己的代码。跳过一些页面也不是一个坏主意。从头到尾阅读一本书可能不是最有效的学习方式。你应该防止自己过于深入地钻研某一个主题,因为这将使你迷失在使用Python做有用的事情的大目标上。诸如多线程、网络套接字、面向对象的编程等话题可以作为高级话题在以后进行。

Python是一种与解释器或编译器解耦的语言。因此,不同的解释器可能表现得有些不同。来自python.org的标准解释器是CPython,它也被称为参考实现。一个常见的替代品是PyPy。无论你使用哪一种,你都应该用Python 3而不是Python 2来学习,因为后者是一种被淘汰的方言。但是请记住,Python是通过Python 2获得其发展动力的,你可能仍然会看到周围有很多Python 2的程序。

资源

阅读资源

如果你不能去图书馆拿一本印刷书,你可以利用一些在线资源来代替。我强烈建议初学者阅读The Python Tutorial。它很短,但能指导你了解语言的不同方面。它让你对Python能做什么,以及如何做有了初步了解。

看完教程后,你可能应该把《Python语言参考》和《Python库参考》放在手边。你会不时地参考它们来检查语法和查找函数的用法。不要强迫自己记住每个函数。

编程环境

Python在macOS中是内置的,但你可能想安装一个更新的版本。在Windows中,经常可以看到人们使用Anacronda,而不是只安装Python解释器。但是如果你觉得安装一个IDE和Python编程环境太麻烦,你可以考虑使用Google Colab。这允许你以 "笔记本 "的形式编写Python程序。事实上,许多机器学习项目都是在Jupyter笔记本中开发的,因为它允许我们快速探索解决一个问题的不同方法,并直观地验证其结果。

你也可以在www.python.org/shell/,使用一个在线shell来尝试一个简短的片段。与Google Colab相比,缺点是你不能保存你的工作。

求助于人

当你从书上看到的一个例子开始修改时,你可能会破坏代码,使其无法运行。在机器学习的例子中尤其如此,你有很多行代码,包括数据收集、预处理、建立模型、训练、验证、预测,最后以可视化的方式呈现结果。当你看到你的代码出现错误时,你需要做的第一件事就是找出导致错误的几行。试着检查每一步的输出,确保它的格式正确。或者试着回滚你的代码,看看你做的哪个改动开始引入错误。

犯错误并从错误中学习是很重要的。当你尝试语法并学习你的方法时,你应该不时地遇到错误信息。试着从中理出头绪,那么你就会更容易弄清楚是什么导致了错误。几乎总是这样,如果错误来自于你正在使用的一个库,请用该库的文档仔细确认你的语法。

如果你仍然感到困惑,试着在网上搜索一下。

摘要

在这篇文章中,你了解了应该如何学习Python以及可以帮助你开始学习的资源。以目标为导向的学习方法可以帮助你更快地得到结果,但是和以往一样,你需要在熟练掌握之前花一些重要的时间来学习。