当前位置:首页 » 机器学习电子书 » 正文

机器学习:实用案例解析 (O'Reilly精品图书系列) - 电子书下载(高清版PDF格式+EPUB格式)

1004 人参与  2018年12月21日 23:29  分类 : 机器学习电子书  评论

机器学习:实用案例解析 (O'Reilly精品图书系列)-(美)DrewConwayJohnMylesWhite

            在线阅读                   百度网盘下载(zxc1)


image.png

书名:机器学习:实用案例解析 (O'Reilly精品图书系列)

作者:(美)DrewConwayJohnMylesWhite

格式:EPUB, HTMLZ, PDF

路径:点击打开

出版:机械工业出版社

排序作者:(美)DrewConwayJohnMylesWhite

排序书名:机器学习:实用案例解析 (O'Reilly精品图书系列)

日期:09 12月 2018

uuid:6f43b3c2-96db-46d2-a597-24864c655e81

id:519

出版日期:4月 2013

修改日期:09 12月 2018

大小:11.48MB

语言:中文


在本书开篇,我们就提出,学习新技术的最好方式是从你渴望解决的问题或你渴望解答的疑问入手。对任务的较高层次愿景满怀激情,这会让你从案例中有效地学到知识。这里我们要介绍的R基础知识并不会涉及机器学习问题,但是我们将遇到一些R中数据处理和管理相关的问题。在案例研究中可以发现,常常要花很多时间来规整数据,使其格式统一、组织合理以便分析。而花在编写代码、运行分析的时间常常较少。

在接下来这个案例中,我们提出的问题纯属为了好玩。最近,数据服务商Infochimps.com发布了一个数据集,其中含有60000多条不明飞行物(UFO)的目击记录和报道。这份数据时间跨度几百年,地域覆盖全世界。虽然数据涵盖全球,但是主要的目击记录都发生在美国。面对这份数据的时空维度,我们可能会有以下疑问:UFO的出现是否有周期性规律?美国的不同州出现的UFO记录如果有区别,有哪些区别?

我们要探索的是一个很棒的数据集,因为它数量巨大、高度结构化,同时也很有趣。因为它是个大文本文件,而且我们在本书中要处理的数据都属于这一类型,所以练习一下很有用。在这样的文本文件中,常常有一些杂乱的记录,我们会用R中的基本函数和扩展库来清洗和组织原始数据。本节我们会带你一步一步地了解整个简单分析的过程,并试图回答前文提到的两个问题。在本章的code文件夹下有一个文件:ufo_sightings.R,这是本章所用的脚本源代码。我们首先从加载数据和所需的库开始。

到目前为止,我们只是介绍了数据集中单列处理方法的一些思路。这些方法很有价值:如果在数据集中发现了相似形状,那会让你得到很多信息。发现一个正态分布就说明均值和中位数是相等的,也说明在大部分时候你不会观察到偏离均值超过三个标准差的数值。仅仅学习了一个数据可视化结果,我们就能得到这么多信息。

但是,目前我们所回顾的知识你都能在传统统计学课程中学到,和你热切希望投入其中的机器学习应用还是有所不同。要进行真正的机器学习,我们需要发现数据集中多个数据列之间的关系,以此搞清数据所隐含的意义,而且能够预测未来的一些东西。在本书中我们要接触到的预测问题有如下几个:

·根据一个人身高预测其体重;

·根据电子邮件文本预测一封邮件是不是垃圾邮件;

·预测一个人是不是想买此前从未向其推荐过的一件产品。

这些问题仍然可以分成两类:回归问题,要预测的是数值,比如体重,已知的是一组其他数值,比如身高;分类问题,就是给数据贴上标签,比如“垃圾”,已知的是一组数值,比如类似“伟哥”(viagra)和“西力士”(cialis)这些垃圾词汇的词频。本书余下内容中很多地方都会介绍回归和分类的方法,在这里我们希望读者谨记两种数据可视化方法。

第一个就是老套的回归图。在回归图中,我们要画出数据的散点图,观察是否有隐含的形状来体现数据集两列之间的关系。回到之前的身高体重数据集上,接下来给身高和体重绘制一幅散点图。

第2章末尾已经简要介绍过一个关于分类的案例。我们用身高和体重来预测一个人是男性还是女性。在例图中,可以用一条线把数据分成两个群体:一个为“男性”群体,另一个为“女性”群体。这条线称为分类超平面,但是从现在起,我们将使用“决策边界”(decision boundary)这个术语,因为我们有时候会遇上无法仅用一条直线来很好地完成分类的数据,比如,像图3-1所示的数据。

第3章中我们详细讨论了二分类的概念——也就是把对象判定为两个类别中的其中一个。在很多情况下,能够做出这样的辨别,我们就满意了。但是,如果同一个类别中每个对象并非被同等创建,并且我们想在这个类别中对它们进行排序那又该当如何?举个简单的例子,假如我们想说某一封邮件垃圾倾向最高,另一封的垃圾倾向程度次之,或者用其他有效的方式去对它们进行区分,那该怎么办呢?设想一下,我们不仅要过滤垃圾邮件,还要将更重要的邮件置顶在收件箱列表中。这个问题在机器学习中很常见,也将是本章的重点。

通过产生一组规则对一个对象列表排序,这在机器学习中越来越常见,只不过你可能还未从专业角度思考过。你更可能听说过类似推荐系统的东西,它就是在后台对产品进行了排序。即便你可能连推荐系统也没听说过,但是你肯定在某些场合使用过或者与之交互过。一些非常成功的电子商务网站已经从中尝到甜头了,他们利用其用户数据为用户推荐可能感兴趣的其他产品。

举个例子,如果你曾经在亚马逊(Amazon.com)上买过东西,那么你就与推荐系统交互过。亚马逊要解决的问题很简单:你最可能购买他们列表上的哪些库存商品?这种说法的隐含意义就是:亚马逊列表上的库存商品对每个用户来说都有一个特定的顺序。同样,在Netflix.com上有海量的DVD可以出租给用户。为了让用户能在这个网站上找到尽可能多感兴趣的DVD, Netflix部署了一套复杂的推荐系统用于为人们提供租赁建议。

回归模型简介

从理论上讲,回归模型是一个非常简单的概念,即用已知的数据集来预测另外一个数据集。例如,保险精算师也许想在已知人们吸烟习惯的基础上预测其寿命,气象学家也许想使用已知过去每天的温度来预测明天的温度。一般来说,我们称已知的数据为输入,将你想要预测的数据称为输出。有时候,人们也会把输入叫做预测变量或者特征。

回归模型和分类模型的不同之处在于,回归模型的输出是真正的数字。比如我们在第3章中描述的那些分类问题中,用于区分类型的虚拟变量必须是数字,因此0代表合法邮件,而1代表垃圾邮件。但是这些数字仅仅只是符号,当我们使用虚拟变量的时候,并不去研究0或者1的数字性质。在回归模型中,其输出本质的事实就是它的输出是真正的数字,例如,预测温度这类目标的范围也许会在50°~70°。因为预测结果是数字,所以可以得出输入和输出之间关系的有力断言,例如,你也许能得出这样的结论,当人们每天所抽香烟的包数增加一倍时,他们的预计寿命将会减少一半。

当然,这里存在的问题是,想要做出精确的数值预测和能够实际做出这样的预测并不是一回事。为了能够做出定量的预测,需要提出一些规则,这些规则能够利用我们可用的信息。近200年来,统计学家们提出了各种各样的回归算法,这些算法可以用不同的方式根据输入预测输出。在本章中,我们会讲到最常用的回归模型:线性回归(linear regression)。

优化简介

目前为止,本书中接触到的算法对我们来说都是黑盒,我们只关注理解输入和输出是什么。本质上,我们把机器学习算法看做由一组函数组成的软件库,用它来完成预测任务。

在本章中,我们将会关注一些用来实现基础机器学习算法的技术。首先,基于前面的知识写一个函数拟合只有一个输入变量的线性回归模型。这个例子可以让我们把从数据中拟合一个模型看成是一个优化问题。我们可以这样来理解优化问题:假设有一台机器,机器上有一些把手,我们可以操作这些把手来对机器进行不同的设置,然后可以衡量这台机器在当前设置下运行的效果如何。我们希望找到对这台机器的一种最佳设置,在某些简单的度量标准下,使得这台机器运行的效果最优。这个最佳设置称为最优点(optimum)。达到最优点的过程称为优化(optimization)。

在理解了优化的原理之后,我们会着手处理本章的主要工作:构建一个简单的密码破译系统,它把解密一串密文当做一个优化问题。

无监督学习

到目前为止,我们围绕数据所做的一切都是基于预测的任务:我们尝试对电子邮件或者网页访问量进行分类,在这些任务中,我们拥有训练用的样本数据集,其中的数据都已知正确的答案。正如本书曾提到的那样,当我们拥有已知正确答案的训练样本数据时,从中进行学习的过程称为有监督学习:发掘数据中的结构,并使用一个信号量进行衡量,在探索真实的模式这项工作中,我们是否做得很好。

但是,在没有任何已知答案指导的情况下,我们也经常想要发掘数据中的结构,这称为无监督学习。例如,我们也许想要进行数据降维,即把一个有很多列的表压缩成一个只有较少列的表。如果你需要处理很多的列,那么采取降维方法将会使得数据集更加容易理解。当你使用一列来代替多个列的时候,尽管明显损失了信息,但是在数据的可理解性上,通常获得了有价值的回报,在分析一个新的数据集时更是如此。

基于相似性聚类

很多时候,我们想知道一群人中的一个成员与其他成员之间有多么相似。例如,假设我们是一家品牌营销公司,刚刚完成了一份关于有潜力新品牌的研究调查问卷。在这份调查问卷中,我们向一群人展示了新品牌的几个特征,并且要求他们对这个新品牌的每个特征按五分制打分。我们同时也收集了目标人群的社会经济特征,例如:年龄、性别、种族、他们住址的邮政编码以及大概的年收入。

通过这份调查问卷,我们想搞清楚品牌如何吸引不同社会经济特征的人群。最重要的是,我们想要知道这个品牌是否有很大的吸引力。换个角度想这个问题,我们想看看那些最喜欢这个品牌特征的人们,是否有多种多样的社会经济特征。实现这一点的一种方法就是对问卷受访者的聚类结果进行可视化。然后就可以使用各种各样的视觉线索,识别出不同社会经济特征的成员。也就是说,我们想要看到大量不同性别、不同种族以及不同收入的人聚类到一起。

同样,我们想要使用这些知识来看看,相近的人群是如何基于品牌吸引力而聚类到一起的。我们也想看看一个聚类中有多少人,或者它与其他聚类的距离有多远。这也能告诉我们这个品牌的什么特征吸引了不同社会经济特征的人群。在提出这些问题时,我们使用这样的名词,如“近”和“远”,它们本身都是说明距离概念的词。因此,为了使聚类结果之间的距离更形象化,我们需要引入一些个体聚集的空间概念。

k近邻算法

第9章介绍了如何利用简单的相关性技术,根据国会议员的投票记录来度量他们之间的相似程度。本章将会讨论如何利用同样的相似度度量方法来为网站用户进行推荐。

本章将讨论的算法称为k近邻(k-Nearest Neighbors, kNN)。它也许是本书中所有机器学习算法中最浅显易懂的一个了。如果有人想根据相似性推荐一些东西,几乎大部分人都会自动选择k近邻算法的最简单的版本:他们会为用户推荐一首与其喜欢的歌曲最相似的,但是他还未曾听过的歌。这种做法其实是1近邻算法。完整的kNN算法是这种直觉做法的一种扩展,在做出推荐之前,你可能会同时参考多于1个数据点。

完整的k近邻算法原理和我们向朋友们征求意见的原理差不多。首先,我们找到一些和我们品味相似的朋友,然后向他们征求意见。如果他们中大多数推荐了同样的东西,我们猜测这应该也是我们喜欢的东西。

社交网络分析

社交网络无处不在。根据维基百科(Wikipedia)的数据,在互联网上有超过200个活跃的社交网站,其中还不包括那些交友网站。从图11-1可以看出,根据Google趋势(Google Trends)的数据,从2005年开始,全球对于“社交网络”的兴趣一直在稳定增长。这种情况是非常合理的:对于社会交往的渴望,是人类最基本的天性,而这种社会本质必然会体现在我们的技术中,就显得不足为奇了。但是关于社交网络的映射和建模,并没有什么新东西出现。SVM:支持向量机

在第3章,我们引入了决策边界的概念,并指出对于简单的分类算法而言,非线性决策边界的问题会是一个很大的挑战。在第6章,我们演示了如何使用逻辑回归这个线性决策边界分类算法进行分类。在这两章里,我们都承诺会在后面的内容中介绍一种叫做“核方法”的技巧,用来解决非线性决策边界问题。现在,让我们兑现承诺,给你介绍一种新的分类算法——支持向量机(Support Vector Machine, SVM),它可以让你使用多种不同的核函数来找到非线性决策边界。我们会使用SVM来对一组非线性决策边界的数据进行分类。

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1178

机器学电子书  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!