打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
让 Python 开启机器学习之旅

目前机器学习红遍全球。男女老少都在学机器学习模型,分类器,神经网络和吴恩达。你也想成为一份子,但你该如何开始?

在这篇文章中我们会讲 Python 的重要特征和它适用于机器学习的原因,介绍一些重要的机器学习包,以及其他你可以获取更详细资源的地方。

为什么用 Python 做机器学习

Python 很适合用于机器学习。首先,它很简单。如果你完全不熟悉 Python 但是有一些其他的编程经验(C 或者其他编程语言),要上手是很快的。其次,Python 的社区很强大。这使得 Python 的文档不仅条理性好,而且容易读。你还可以在 StackOverFlow 上找到关于很多问题详细解答(学习基石)。再次,一个强大的社区带来的副产品就是大量有用程序库(Python 内部自带的和第三方软件),基本上可以解决你所有的问题(包括机器学习)。

但我听说 Python 很慢

Python 是很慢。它不是执行最快的语言,拥有那么多好用的抽象是要付出代价的。

但这是个可以解决的问题:程序库可以把计算量繁重的部分外包给其他更高效(但更难使用)的语言,例如 C 和 C++。比如 NumPy 这个提供数值运算的程序库,就是用 C 写的,运行速度超快。在实际运用中,几乎所有程序库都会使用 NumPy 去完成计算繁重的部分。如果你看到 Numpy,你应该想到它很快。

所以你是可以让程序的运行速度跟它的低层语言实现的运行速度相比拟的。你没有必要担心程序的运行速度。

值得知道的 Python 程序库

Scikit-learn

你刚开始学机器学习吗?如果你需要一个涵盖了特征工程,模型训练和模型测试所有功能的程序库,scikit-learn 是你的最佳选择!这个优秀的免费软件提供了机器学习和数据挖掘所需要的所有工具。它是目前 Python 机器学习的标准库。要使用任何成熟的机器学习算法都推荐使用这个库。

这个程序库支持分类和回归,实现了基本所有的经典算法(支持向量机,随机森林,朴素贝叶斯等等)。程序库的设计让迁移算法十分容易,使用不同的算法做实验非常轻松。这些经典算法可用性很强,能用于大量不同的情况。

但这并不是 Scikit-learn 的全部功能,它同样可以用来做降维,聚类等等任何你所能想到的。由于它构建在 Numpy 和 Scipy 之上(所有的数值计算都是由 C 语言来完成的),它的运行速度也超快。

这些例子可以告诉你这个库的功能,如果你想学习如何使用它,可以阅读教程。

NLTK

NLTK 不算是一个机器学习的程序库,但它是做自然语言处理(NLP)必须的一个库。除了用于文字处理的功能,例如聚类,分词,词干提取,标记,解析等,它还包含了大量的数据集和其他关于词法的资源(可用于模型训练)。

把所有这些打包在一起的好处就不用再多说了。如果你对 NLP 感兴趣,可以看看这些教程!

Theano

Theano 被广泛应用于工业界和学术界,它是所有深度学习架构的鼻祖。Theano 是用 Python,结合 Numpy 实现的。你可以用它来构建用多维数组实现神经网络。Theano 会处理所有数学计算,你不需要知道底层的数学公式实现。

早在支持使用 GPU 进行计算不像今天这样普及的时候,Theano 就已经提供了对 GPU 计算的支持。这个程序库目前已经非常成熟,能够支持很多不同类型的操作。这使得 Theano 可以在和其他库比较的时候胜出。

目前关于 Theano 最大的问题是 API 不是很好用,对于新手来说上手困难。不过市面上已经有了解决这个问题的封装包,比如 Keras, Blocks 和 Lasagne,都可以简化 Theano 的使用。

TensorFlow

谷歌大脑团队为了内部使用创造了 TensorFlow,2015 年将其开源化。设计初衷是取代他们已有的封闭机器学习框架 DistBelief,据说该构架太过于依赖 Google 的整体构架,也不够灵活,在分享代码的时候非常不方便。

于是就有了 TensorFlow。谷歌从以前的错误中吸取了教训。许多人认为 TensorFlow 是 Theano 的改进版,它提供了更灵活和好用的 API。可以用于科研和工业界,同时支持使用大量的 GPU 进行模型训练。TensorFlow 支持的操作没有 Theano 多,但是它的计算可视化比 Theano 好。

TensorFlow 目前非常流行。如果今天这篇文章里面提到的名字你只听说了一个,那很有可能是这个。每天都有新的提到 TensorFlow 的博文或学术文章发表。这个流行度提供了大量的用户和教程,新人很容易上手。

Keras

Keras 是一个提供更高层神经网络 API 的库,它可以基于 Theano 或者 TensorFlow。它拥有这两个库强大的功能却又同时大大地简化了使用难度。它将用户的体验放在首要地位,提供简单的 API 和很有用的错误信息。

同时 Keras 的设计基于模块,这就使得你能自由组合不同的模型(神经层,成本函数等等),而且模型的可扩展性很好,因为你只需要简单的将新模块跟已有的连起来即可。

有人觉得 Keras 太好用了,简直就是在作弊。如果你开始用深度学习,可以看看例子 和 文档,对于你可以用它做什么有个数。如果你要学习使用它,可以从 这个教程开始。

两个类似的库有 Lasagne 和 Blocks, 但它们只支持 Theano。如果你试过了 Keras 但是你不喜欢它你可以试试这些其他的库,也许它们更适合你。

PyTorch

还有一个有名的深度学习架构是 **Torch,** 它是用 Lua 实现的。Facebook 用 Python 实现了 Torch,叫做 PyTorch,并将它开源了。用这个库你可以使用 Torch 使用的低层的库,但是你可以使用 Python 而不是 Lua。

PyTorch 对查错的支持很好,这是因为 Theano 和 TensorFlow 使用符号计算而 PyTorch 则不是。使用符号计算就表明在一行代码被解释的时候,一个操作(x+y)并不会被执行,在那之前,它必须先被编译(解释成 CUDA 或者 C 语言)。这就让用 Theano 和 TensorFlow 的时候很难查错,因为很难把报错跟当前的代码联系起来。这样做有它的好处,不过查错简单不在其中。

如果你想开始学 PyTorch,官方文档适合初学者也会包含有难度的内容。

机器学习的第一步?

你讲了这么多机器学习的包,我应该用哪一个?我怎样比较它们?我从哪里开始?

你可以试用我们面向初学者的平台 Ape Advice

,就不用烦细节的问题了。如果你完全没有接触过机器学习,从 scikit-learn 开始。你可以了解标记,训练和测试是怎样工作的,以及一个模型是如何被建立的。

如果你想试试深度学习,从 Keras 开始,毕竟这是大家公认的最简单的框架。你可以先试试,找找感觉。当你有点经验之后,你可以开始考虑你最需要的是什么:速度,不同的 API,或者别的什么,之后你就能更好地决定了。

目前有海量的文章比较 Theano,Torch 和 TensorFlow。没有人能说哪个最好。你要记住的是所有包都支持很多东西,而且也在不断改进,想相互比较它们也越来越难。六个月前的标准有可能已经过时了,一年前的评价说框架 X 没有 Y 功能也不一定还有效。

最后,如果你想用 NLP,可以试试 MonkeyLearn! 我们的这个平台所提供的用户界面让建造模型,训练模型和改进 NLP 模型都非常容易试下。你可以用事先训练好的模型处理常见问题(意见挖掘,话题探测或者提取关键字),也可以为你特有的问题设计一个新的算法。你不需要担心底层实现或者发布你的模型,我们可扩展的云系统会帮你完成这些。你可以免费注册,马上开始试用我们超棒的 API。

想知道更多?

关于机器学习的网络资源很多!下面列举一些:

  • 如果你想看看代码, 这里有 一个机器学习详细范例的 Jupyter Notebook

  • 如果你想知道更多机器学习的概念,可以看我们的机器学习入门指南

  • 如果你要认真学机器学习,你可以从 Andrew Ng’s Stanford CS229 on Coursera 开始;如果你要找关于深度学习的网络课程,可以看看 fast.ai.

结语

这篇关于用 Python 库做机器学习的简介就到此为止。我想强调的是不要被细节吓住了,放手尝试。让你的好奇心指导你前进,不要害怕进行不同的实验。

转载声明:本文转自【Python 开发者】

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python机器学习库TOP10
一文带你了解——2019你必须知道的10大Python库
2019 必知的 10 大顶级 python 库
2021年的12大人工智能工具和框架
Python 新手入门必学的20个开源库
轻松进行深度学习的11种Python库和框架
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服