温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
探寻
数据
背后
逻辑
_R
语言
挖掘
内 容 简 介 数据分析、数据挖掘的本质是探寻数据背后的逻辑,挖掘人们的欲望、需求、态度等。本书不仅仅教会读者如何掌握数据挖掘相关技能,更教会读者如何从数据挖掘结果中分析出更深层次的逻辑。本书主要介绍使用 R 语言进行数据挖掘的过程。具体内容包括 R 软件的安装及 R 语言基础知识、数据探索、数据可视化、回归预测分析、时间序列分析、算法选择流程及十大算法介绍、数据抓取、社交网络关系分析、情感分析、话题模型、推荐系统,以及数据挖掘在生物信息学中的应用。另外,本书还介绍了 R 脚本优化相关内容,使读者的数据挖掘技能更上一层楼。本书适合从事数据挖掘、数据分析、市场研究的工作者及学生群体,以及对数据挖掘和数据分析感兴趣的初级读者。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 探寻数据背后的逻辑:R 语言数据挖掘之道/宋云生,张坚洪,黎新年著.北京:电子工业出版社,2018.8 ISBN 978-7-121-33861-8.探.宋 张 黎.数据采集研究.TP274 中国版本图书馆 CIP 数据核字(2018)第 049541 号 策划编辑:王 静 责任编辑:石 倩 印 刷:三河市双峰印刷装订有限公司 装 订:三河市双峰印刷装订有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7871092 1/16 印张:27 字数:742.4 千字 版 次:2018 年 8 月第 1 版 印 次:2018 年 8 月第 1 次印刷 定 价:89.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。序言 提纲挈领式心诀:一名数据挖掘工程师的成长之路 我的学习之路 不知不觉毕业两年多了,有一些大音如霜工作室的读者总想了解一下我是怎么学习数据挖掘、数据分析的,下面就综合大家常见的问题分享一下自己的经历、经验。我不是学数学的,也不是学计算机的,研究生的专业是植物学,而且方向是植物分类,可以说很难和数据挖掘、市场研究等领域扯上关系。唯一能扯上关系的也就是我的舍友是做生物信息学研究的。说一句丢人的话,在读本科时上的 SPSS 课我都不知道在讲什么。那时没考过计算机等级考试,原因是我每分钟打汉字的速度都不过关,讲这么多,只是为了告诉读者,我的基础并不扎实。需要说明的是,我的英语还不错,在大一和大二分别通过了英语四、六级考试(而其他科目则学得比较一般,因为我每学期只有一两个主要学习目标),在大四我读了很多英文文献。因为在读研究生期间需要查阅大量文献,我需要给这些文章建立一个数据库,于是年少无知的我就选择了 Access。选择 Access 的原因并不是我比较熟悉它,而是我的老师用它,我至今也不会太多的操作。这应该算是我开始接触数据分析了。使用高级语言时,记不住函数不要紧,但是你要有很强的搜索能力。之所以讲这一段经历,不是为了说明我起步晚,而是为了说明建立 Access 文献数据库锻炼了我的英文搜索能力。我一碰到问题,就在 Google 里搜索,很快就能找到答案。于是 Google 几乎成了我的眼睛,真正做到了用 Google 搜索、发邮件、社交、阅读和写作。在公司里曾经传说,如果是连我都搜不到的内容,那么别人更不可能搜到。有些年轻人就怕英文,我并不是崇洋媚外,客观地想一想,现在的很多知识都是从欧美起源的,如果你连这门世界语言都不掌握,那么你获得的资料永远都是二手资料。另外,无论你是找函数还是找包、模块,抑或是为问题寻找答案,使用 Google 进探寻数据背后的逻辑:R 语言数据挖掘之道 IV 行英文搜索会为你节省很多时间。掌握这门语言并不需要你听、说、读、写样样精通,而是将其作为一种工具,应用起来比较方便就可以了。要善用英文搜索,原因很简单,你所用的编程语言或软件大多是外国人构建的,并且在国外已经普及,相关的问答社区早已完善,你碰到的问题可能早就有人解决了。在搜索文献的过程中,我喜欢上了经济学人的 Graphic Details 栏目,发现其绘制的图表非常漂亮、专业,于是我就开始学习 Excel,尽自己所能将 Excel 图表做得更漂亮、更专业,这些经历为我日后做数据可视化打下了坚实的基础:我知道了商务色彩搭配及图表要简洁、易读等原则,我知道怎么使自己的图表特色鲜明。后来看了大前研一先生的著作,了解了专业精神,我曾经写下这样一句话,以勉励自己:所谓专业,即每一个细节都经得起推敲。有一天,舍友看到我用 Excel 作图,嘲笑我孤陋寡闻,推荐我学习 R 语言,然后我就开始搜寻一些 R 语言入门读物进行阅读,慢慢地知道了关于这门语言的粗浅知识。这个时候已经到研二下半学期了,我需要为自己未来的工作做打算了:是步入园林行业还是就此转行?必须做一个决断。我发现自己真的对植物分类不感兴趣,而我做家教的学生的妈妈是星空传媒的一个经理,平时待我很好,她说毕业可以介绍我去做市场研究。我了解了一下市场研究,发现其中涉及一些数据分析的内容(现在看起来很简单),于是,我从此决定踏上数据分析这条“不归路”。为了快速上手、熟悉统计学知识,我并没有马上深入地学习 R 语言,而是像以往一样懒懒散散地学习(后悔当时没有实战学习)。我通过搜索发现,市场研究的岗位大多将熟练使用 SPSS 作为硬性要求,偶尔也会要求熟悉 R 语言,但 SPSS 对我来说更容易上手,于是就开始学习 SPSS。SPSS帮助我巩固了统计学知识,当学习完简单的统计学知识后,我发现 SPSS 不够灵活,很多功能不够用,做出的图表很难看(这对于我来说是无法忍受的),因此,网络上有一些人鄙视 SPSS,但很推崇 R语言。于是我决定要深入地学习 R 语言。我先将 SPSS 的功能在 R 中做了一遍,有了一些自己的理解后,我开始在自己的论文里做一些数据分析的内容。现在想来,如果我直接在实战中学习可能会节省更多的时间。实战更能锻炼技能水平。研二快结束了,开始找工作了。我找工作的目的很明确,如果工作不是做数据分析、数据研究的,那么我宁愿放弃这个工作的机会。非数据研究的岗位我也不去面试,这样又省下了大量的时间学习。序言 提纲挈领式心诀:一名数据挖掘工程师的成长之路 V 在工作中学习 2013 年毕业后,我去了一家医药市场研究公司,当时的工作并不太忙,我有大量的时间学习。但这时也暴露了我的弱点,公司的数据并不是很规整(raw data)的,往往需要标准化等,而且数据规模也不再是之前练习时那么小,在面对这些脏数据、大一点的数据时,我的数据清洗水平显得捉襟见肘。周围的人都是 Excel 高手,如果跟着他们学,估计也能成为高手,但是我一定要在 R 中做数据清洗整理,反正公司的工作不是很多,我就一点点地学习和积累,这样我的数据处理能力就逐渐扎实起来了。其间我用两天读完了异类这本书,感触很深,阅读经历已经写成一篇文章在我们的公众号里分享了。任何一个工具在刚开始学习时都会觉得它很糟糕,其实这并不是工具的问题,而是自己的知识体系跟不上节奏,或者是它的很多方法与自己原有的认知相反,这时不要急于否定它,而是要深入地学习它。知识体系是一个积累过程,为自己准备一万个小时计划吧。我们公司当时在做 BI(商业智能),于是我接触了市面上常见的 BI 工具,包括 Tableau、QV 等,我熟悉它们的优、劣势,也熟悉它们的数据可视化效果。因为需要将 R 语言的页面融入 BI 中,所以我熟悉了 shiny 包,做了一些页面,但我渐渐看到 R 语言在做这些通用语言的工作时所暴露的缺点,于是开始接触 Python。后来,我们的合作公司的总经理听说我比较熟悉 R 语言,就向我请教,我们一起讨论了 R 语言和数据挖掘。得知他们在做文本挖掘,于是在我闲暇时间开始学习中文文本挖掘的内容。没有成型的数据和书,我就看帖子,去一个个地实现,然后积累经验,这时我对 R 的操作算得上非常熟练了,从实现到速度优化(并行计算等)等也已经非常熟练,积累的代码也非常多了。后来,那个经理找我做医院处方数据挖掘工作,之后,他请我去负责法院文本数据挖掘,我没去,但成了他们的外援,仍然没收过钱,他们搭建的一台服务器也帮助我了解了不少 Linux 的知识。刚开始,锻炼自己的机会远远比钱重要,反正自己闲着也是闲着,但是这种情况只适用于刚开始。后来,我们公司推出了微信公众号平台,我开始给公司的公众号写文章。其间我为公司的公众号写了多篇关于综合排名的文章,阅读量最高达到 4 万多人次,当时公众号的粉丝才 2 000 人左右。后来我又制作了评价医院市场趋势的综合指标体系,现在公司也一直在沿用这套指标,这些工作中的小点子都是我在公交车上想出来的。除要把工作当成一种谋生手段外,还必须有极大的兴趣,要么不做,要么做好。另外,我在公交车上读完了 Data Mining with R learning by case studies、Machine Learning for Hackers、R Graphics Cookbook 等书籍,之所以提这三本书,是因为我不止读过一遍,这三本书很有特色,第一本帮助我学习了各种算法,第二本帮助我接触了实际应用中的知识,第三本帮我熟练了ggplot 的函数及图表元素结构。我开始学会利用零散的时间,坚持积累,也开始学习高度自律。探寻数据背后的逻辑:R 语言数据挖掘之道 VI 古之成大事者,不唯有超世之才,亦必有坚韧不拔之志。苏轼 其实,我一直幻想着有一个自己想写什么就写什么的平台,于是,我和小伙伴们开通了微信公众号,直到现在,我们更注重文章的可读性、趣味性,而不仅仅是技术,但是每一篇文章都可以作为一个小项目让希望学习数据分析的读者能锻炼一下自己的技能。经常有读者问学数据分析就一定要学编程吗?以及为什么要看英文资料?针对这两个问题,我写下了这样一段对话,希望你能在对话中找到答案。为什么学习数据分析?赚钱!什么样的人容易赚钱?技能比别人高的!英语是不是一般人的难关?是不是大家都想学习傻瓜式操作软件?是!那么如果大家都这么想,你应该怎么做?很明显,你要做其他人不愿意做的事情,才能赚到别人不能赚的钱!作为数据分析师,一定要将自己和技术区分开,分析数据、挖掘数据本质上是探寻数据背后的人心,挖掘人们的欲望、需求、态度等,所以数据分析师还要尽量拓宽自己的视野和知识结构,尽自己所能博览群书。我的经历大体如此,中间会有各种迷茫、各种苍白无力,但是如果你缺少什么,就去搜集资料,做出判断,努力去争取,这一点总不会错,千万不要一味地否定你不了解的东西,这也是我对待未知领域的态度。作为一名技术人员,要让自己的知识时刻在进步!这是一种宿命。作 者 前言 什么是规范化的数据挖掘流程 VII 前言 什么是规范化的数据挖掘流程 人总是被自己日常从事的工作所蒙蔽双眼,看不到事态发展的整体面貌,为了手里的工作而工作,这就是所谓的迷失吧。一个数据挖掘项目不仅仅是数据挖掘工程师手中的一部分工作(虽然它是工作的核心),作为一个力求向上的人,要跳出来看看项目的全貌。只有对项目全程有了足够的了解,才能更加有效地使用数据挖掘、机器学习、数据分析的工具。数据挖掘项目一般可以分为问题边界、清洗整理、数据探索、算法评估、结果提升、结果报告、系统集成和系统测试 8 个主要的模块。一般而言,可以尽量将这些模块合并,但无论怎么合并,它们在项目中都是不可或缺的(当然,有些项目并没有其中某些模块的需求,比如市场研究项目,它们可能就不需要系统集成)。从右图中可以看到数据清洗、数据探索、算法评估占据了项目的大部分时间,这也说明它们是项目的核心内容,缺了这 3 项,就不能再称为是数据挖掘项目了。数据挖掘项目流程如下图所示。探寻数据背后的逻辑:R 语言数据挖掘之道 VIII 问题边界 问题边界一般是项目的开头部分,可以分为 4 点。首先要和业务