从Python开始机器学习

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

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

加qq群813622576免费领取学习资料

为什么用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不是很好用,对于新手来说上手困难。不过市面上已经有了解决这个问题的封装包,比如KerasBlocks 和 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。

加vx:tanzhouyiwan免费领取学习资料

原文地址:https://www.cnblogs.com/zxcv1234/p/9747497.html

时间: 2024-08-02 11:12:05

从Python开始机器学习的相关文章

用Python开始机器学习(7:逻辑回归分类) --好!!

from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到过回归算法来进行数值预测.逻辑回归算法本质还是回归,只是其引入了逻辑函数来帮助其分类.实践发现,逻辑回归在文本分类领域表现的也很优秀.现在让我们来一探究竟. 1.逻辑函数 假设数据集有n个独立的特征,x1到xn为样本的n个特征.常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小

用Python开始机器学习(2:决策树分类算法)

http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树算法 决策树用树形结构对样本的属性进行分类,是最直观的分类算法,而且也可以用于回归.不过对于一些特殊的逻辑分类会有困难.典型的如异或(XOR)逻辑,决策树并不擅长解决此类问题. 决策树的构建不是唯一的,遗憾的是最优决策树的构建属于NP问题.因此如何构建一棵好的决策树是研究的重点. J. Ross Q

Python相关机器学习

Python机器学习库 Python的机器学习库汇总与梳理 机器学习之开源库大总结

[resource]23个python的机器学习包

23个python的机器学习包,从常见的scikit-learn, pylearn2,经典的matlab替代orange, 到最新最酷的Theano(深度学习)和torch 7 (well,其实lua,不过从ipython调用很容易),基本常用的通用python机器学习平台都有了. http://python.memect.com/?tag=machinelearning

使用Python做机器学习的准备工作

机器学习的入门书籍<机器学习实战>使用的语言是python.下面介绍利用Python开始"机器学习"的准备工作.(环境:CentOS 7) 1, 两个重要的包 NumPy 和 SciPy.(http://scipy.org/scipylib/download.html )主要是处理数值运算,矩阵操作等. 注:Sci是Science的缩写. 官网介绍了安装方法,可以手动安装,也可以使用yum.(numpy 和 scipy  在默认的软件源有提供) 需要说明的是,scipy是依

机器学习00:如何通过Python入门机器学习

我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Python的生态对入门机器学习很有帮助.因此希望以此作为突破口入门机器学习. 我将会记录一个系列的学习与实践记录.记录内容主要参考Youtube中sentdex发布的视频,有兴趣的读者可以自己FQ到油管看一下. 下面介绍一下我将如何通过Python入门机器学习. 学习Python基本语法 首先我在Python官网找到入门教程,快速过了一

Python相关机器学习‘武器库’

开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很多优秀的Python工具包可供使用,所以作为Pythoner,也是相当幸福的.如果仔细留意微博和论坛,你会发现很多这方面的分享,自己也Google了一下,发现也有同学总结了"Python机器学习库",不过总感觉缺少点什么.最近流行一个词,全栈工

python入门机器学习,3行代码搞定线性回归

本文着重是重新梳理一下线性回归的概念,至于几行代码实现,那个不重要,概念明确了,代码自然水到渠成. "机器学习"对于普通大众来说可能会比较陌生,但是"人工智能"这个词简直是太火了,即便是风云变化的股市中,只要是与人工智能.大数据.云计算相关的概念股票都会有很好的表现.机器学习是实现人工智能的基础,今天早上看了美国著名演员威尔斯密斯和世界最顶级的机器人进行对话的视频,视频中的机器人不论从语言还是表情都表达的非常到位,深感人工智能真的离我们越来越近了,所以学习人工智能前

用 Python 做机器学习不得不收藏的重要库

Python通常被应用统计技术或者数据分析人员当做工作中的首选语言.数据科学家也会用python作为连接自身工作与WEB 应用程序/生产环境集成中. Python在机器学习领域非常出色.它具有一致的语法.更短的开发时间和灵活性,非常适合开发能够直接插入生产系统的复杂模型和预测引擎. Python的一个最大的资产是其广泛的库. 库是一组用给定语言编写的程序和功能的集合.一组健壮的库可以使开发人员更容易执行复杂的任务,而无需重写许多代码. 机器学习很大程度上是基于数学.具体来说就是数学优化.统计和概