《数据挖掘你必须知道32个经典案例》.docx

上传人:暗伤 文档编号:46159483 上传时间:2022-09-25 格式:DOCX 页数:16 大小:327.91KB
返回 下载 相关 举报
《数据挖掘你必须知道32个经典案例》.docx_第1页
第1页 / 共16页
《数据挖掘你必须知道32个经典案例》.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《《数据挖掘你必须知道32个经典案例》.docx》由会员分享,可在线阅读,更多相关《《数据挖掘你必须知道32个经典案例》.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第五章经典的机器学习案例机器学习是一门成熟的学科,它所能解决的问题涵盖多种行业。本章介绍了四种经典的机器学习算法,它们所关心的重点在于机器学习是如何将统计学和数据挖掘连接起来的。通过学习本章,读者可以见识到机器学习的特殊魅力,并明白机器学习与其他学科的异同。使读者可以熟练地应用机器学习算法来解决实际问题是本章的目标。5.1 机器学习综述在正式开始了解机器学习之前,我们首先要搞清楚这样一个问题:世界上是不是所有的问题都可以使用一行一行清楚无误的代码解决?举个例子,倘若我们想让一个机器人完成出门去超市买菜并回家这一任务,我们能不能在程序里详详细细地把机器人所有可能遇到的情况以及对策都写下来,好让机

2、器人一条一条按着执行?答案是“很难”。机器人在路上可能遭遇塑料袋儿、石头、跑动的儿童等障碍物,在超市可能遇到菜卖完了、菜篮挪动了位置等问题,把这些问题全部罗列出来是不太可能的,因此我们就难以使用硬性的、固定的程序来命令机器人完成这件事,我们需要的是一种灵活的、可以变化的程序。就像你去买菜时不用你妈告诉你路上看见有人打架要躲开,你就知道要躲开一样(即便你以前从来没有遇见过这种情况),我们希望机器人也可以根据经验学习到正确的做法,而不是必须依赖程序员一条一条地输入“IFTHEN”。美国人塞缪尔设计的下棋程序是另一个的经典机器学习算法。塞缪尔设计了一个可以依靠经验积累概率知识的下棋程序,一开始这个程

3、序毫无章法,但四年以后,它就能够打败塞缪尔了,又过了三年,它战胜了美国的围棋冠军。这个下棋程序进步的方式和人类学习下棋的过程非常类似,如何让机器像人类一样学习,正是机器学习关心的事情。不难想象,机器学习是一门多领域交叉的学科,它主要依赖统计学、概率论、逼近论等数学学科,同时也依赖算法复杂度、编译原理等计算机学科。通俗的说,机器学习首先将统计学得到的统计理论拿来进一步研究,然后改造成适合编译成程序的机器学习算法,最终才会应用到实际中。但机器学习和统计学仍有不同的地方,这种差异主要在于统计学关心理论是否完美,而机器学习关心实际效果是否良好。同时,机器学习侧重于归纳和总结,而不是演绎。机器学习将统计

4、学的研究理论改造成能够移植在机器上的算法,数据挖掘将机器学习的成果直接拿来使用。从这一意义上来说,机器学习是统计学和数据挖掘之间的桥梁。机器学习也是人工智能的核心,机器学习算法普遍应用于人工智能的各个领域。此外,机器学习和模式识别具有并列的关系,它们一个注重模仿人类的学习方式,一个注重模仿人类认识世界的方式。因此机器学习、数据挖掘、人工智能和模式识别等本来就属于一个不可分的整体, 离开其他学科的支持,任何学科都难以独立生存下去。本章介绍了语义搜索、顺序分析、文本分析和协同过滤这四种经典的机器学习算法,它们不仅理论完善,同时也具有广泛的应用。通过本章的学习,读者将看到机器学习在各行各业中的神奇作

5、用以及广阔前景,并学会如何使用机器学习算法来解决实际问题。5.2 语义搜索沃尔玛搜索引擎提升 15%销售额语义搜索是 21 世纪最被看好的 IT 技术之一,如今各大厂商都在积极投资语义搜索相关的基础设施。未来的互联网务必是语义搜索的天下。本小节介绍了语义搜索和寻常搜索不同的地方,以及它所能完成的事情。并使用沃尔玛开发的北极星语义搜索系统为例,剖析了语义搜索的技术原理和各项特性。5.2.1 注重用户体验的沃尔玛公司我们在第二章和第四章中已经看到大数据分析是如何在零售业起作用的,实际上,在大数据的冲击下,零售业正面临巨大的挑战。众所周知,如今的零售业利润十分微薄,同时电商又瓜分走了一大块市场,传统

6、的百货公司正面临巨大的压力。创建于 1962 年的沃尔玛超市是全球最大的连锁超市。它在 27 个国家拥有超过一万个门店,员工总数 220 万余人,每周接待 2 亿人次的顾客。这样一个雄踞全球零售业榜首的庞然大物,也有自己难以言明的烦恼。2015 年初,分析师预言阿里巴巴将很快取代沃尔玛,成为全球最大的零售企业。来自中国的威胁固然不可轻视,但美国公司亚马逊网站则让沃尔玛产生更大的危机感。电商网站能够给消费者提供价格低廉、种类丰富的产品,沃尔玛企业所创办的沃尔玛网站固然也有不错的收益,但随着线上零售占据越来越多的零售市场份额,沃尔玛在沃尔玛网站上投入了越来越多的精力。沃尔玛一直秉承“帮顾客省每一分

7、钱”的宗旨,并在进货渠道、分销方式以及营销费用、行政开支等各方面节省资金。物美价廉一直是沃尔玛的一大优势,但不幸的是,亚马逊平台在这一方面并不逊色于沃尔玛。因此,为了反超亚马逊平台,沃尔玛势必要在用户体验方面做出突破。零售业的用户体验法则大多都是关于货品摆放规则的,将牛奶和面包摆在一起,将口香糖摆到收银台附近等都是经典的货物摆放规则,合理的摆放方式能够替顾客节省搜寻货物的时间,提高顾客的用户体验。这种规则同样适用于电子商务网站,如果在顾客搜索产品时, 能迅速将顾客想要的商品展示出来,用户体验想必会大大提高。沃尔玛希望通过改善搜索引擎提高 15%的销售额,这意味着搜索引擎必须有质的飞跃才能达成这

8、一高远的目标。沃尔玛采用的北极星搜索引擎主要模仿了 Kosmix 的语义搜索技术和语义分析技术,前者从用户在社交平台上发出的推特、和其他用户之间的互动行为中挖掘出用户的购物倾向,后者则度量产品之间的相关度和相似度,包括产品、人物、事件之间的关联。以上两种技术使北极星搜索引擎能够为顾客提供更精准地产品链接,此外北极星在确定产品排名时还引入了顾客的搜索记录。这种解析关键词和挖掘同义词的搜索方法可以给顾客提供更合理的产品,从而提高用户体验。5.2.2 语义搜索引擎的底层技术和原理搜索引擎是每个人都十分熟悉的一项服务,具体来说,首先用户在搜索栏中输入搜索关键词,如“春季碎花外套”,其次搜索引擎将关键词

9、切割为“春季”、“碎花”和“外套”,再次搜索引擎从所有的网页中抓出网页标题包含这三个关键词网页,并按照一定的规则排列展示给用户。以上是传统搜索引擎的工作模式,这种工作模式合情合理,但仍具有疏漏。比如在上文的例子中它只会推荐标题是“春季碎花外套”的网页,而不会推荐标题是“春季小花外套” 的网页,并且认为标题是“春季碎花上衣”的网页和标题是“春季碎花短裤”的网页同样不重要。我们不能一条一条地告诉搜索引擎“碎花”等同于“小花”、“上衣”比“外套”更重要等网页排序规则,这是因为首先这些规则非常多,其次这些规则总是在变化。好在语义搜索引擎能够通过学习,智能化的分辨关键词之间的细微不同,并捕捉到用户搜索关

10、键词的真正含义。从根本上解决以上问题。图 5.1 语义搜索引擎体系结构图 5.1 是一个语义搜索引擎的体系结构,它分成七层,越往下越接近底层技术,越往上越接近具体的搜索规则和网页。Unicode 和URI 所代表的字符集层以及 XML+NS+xmlschema 所代表的根标记语言层是搜索引擎的基础设施,RDF 层则提供词汇嵌入的框架,这一层将多种词汇集中起来描述 Web 资源。这三层都属于搜索引擎的基本构架,它们支撑着搜索引擎的正常运转。从 Ontology vocabulary 层向上就是语义搜索引擎的核心内容了。Ontology vocabulary 的意思是本体词汇表,这一层用于支持知识

11、库的搭建。本体是一种术语的集合,它把现实世界的物体用一组一组的术语描述出来。例如,上衣这一本体可以由季节性、长度、薄厚、风格、颜色等概念构成,而季节性这一概念又成为一个单独的本体,由春、夏、秋、冬构成,长度由短、中、长构成将这些本体合起来,就得到了本体词汇表。本体词汇表可以由半监督的形式形成,即根据以往累积的用户搜索记录提取得到高频率出现的词汇,并人工汇总本体词汇表。不同语义搜索引擎的本体词汇表很可能不同,如沃尔玛百货搜索引擎中就不会收录关于“数据分析”等科技类的本体词汇。有了本体词汇表,知识库就能够将某一确定的关键词转化为一组概念的集合,并搜索到相关联的网页。图 5.2 网页文档和网页数据的

12、对应关系当用户在搜索栏输入关键词后,语义搜索引擎将找出与关键词相似度高的词语和相关度高的词语,相似度高指的是两组词语具有互相代替的关系,比如“碎花”可以用“小花”代替;相关度高指的是两组词语总是伴随出现,比如“数据分析”和“数据挖掘”总是同时出现。语义搜索引擎将网页中的相似词和相关词找出来,并根据这些词语的多寡按照一定规则排序。图 5.2 展示了搜索引擎怎样从网页文档中提取出有效数据来。图中每个纸张图形都代表一个真实的网页文档,网页文档中包含的相关词和相似词则用图形中的蓝色圆点表示。网页文档中圆点越多,该文档的重要性就越高。向搜索引擎中引入相似度和相关度的概念将改变原有网页的排列顺序,有些网页

13、未必包含了所有的用户搜索关键词,但只需包含大量相似关键词和相关关键词,即可获得较好的排名。图 5.1 中的 Logic、Proof、Trust 层用于规则的推理和验证。它们通过逻辑推理对关键词、关键词之间的关系以及搜索结果排列顺序的合理性进行验证。这种验证技术主要基于 Proof 交换和数字签名技术,它一方面将钓鱼网站和伪装成优质网站的劣质网站剔除,另一方面预防不合理的网页排序结果,从而确保了良好的用户体验。5.2.3 语义搜索技术小结本小节介绍了语义搜索技术的七层结构,以及本体词汇层中本体的概念和知识库的工作原理。在语义搜索技术的七层结构中,本体词汇层是最重要的一层,它使搜索引擎能够像人类一

14、样真正“理解”不同关键词之间的联系和区别,并根据用户真正的意图排列相关网页。语义搜索技术是多种技术的综合体现,本小节仅介绍了本体论和相关度、相似度等几个概念,此外,语义搜索引擎的好坏还依赖于分词技术的好坏。在分词技术中,粒度是最重要的概念,它指的是关键词划分的粗细程度。比如,“碎花外套”分成“碎花”和“外套”时, 粒度就较大;分成“碎”、“花”和“外套”是,粒度就较小。粒度较小的分割方法使得搜索引擎反馈的网页更准确;粒度较大的分割方法则使搜索引擎反馈的速度更快。为了提高语义搜索引擎的准确度,工程师还会向引擎中引入用户的以往浏览数据,比如当用户搜索“苹果价格”时,搜索引擎难以判断用户想搜的是水果

15、的价格还是手机的价格,此时如果发现用户的以往搜索记录和浏览记录中电子产品相关的词组高频出现,则可断定用户想问的是手机的价格。不难理解,语义搜索引擎实际上应用的是一种概率知识,苹果和橘子在同一篇文章中出现的概率高于苹果和面包,因此苹果和橘子相关度高于苹果和面包。这种通过概率学习的方法与人类通过经验学习生活知识的方法十分类似,但它仍然不能像人类一样理解更深层的知识,即苹果和橘子都是水果,而面包则是一种谷物加工食品。作为一种新兴的高度智能化技术,语义搜索技术拥有难以想象的广阔前景。当我们搜索某一城市的名称时,它能够同时给出车票信息、天气信息、旅游热点信息、酒店信息等,程序不可能理解什么叫“旅游”,但

16、它知道搜索了这一城市的人大部分都关注了这些信息,因此它也将这些信息推荐给你。这种人性化的智能机制能够应用于购物网站、医疗系统、图书馆系统等各种程序中,这会使人类的搜索行为更加有效。如今已有十几种成熟的语义搜索引擎上市,除去本小节提到的北极星系统外,较著名的 还有 Kngine、Hakia、DuckDuckGo 等搜索系统。但语义搜索引擎仍是一种处于起步阶段的技术,它的阻碍主要体现在两方面:首先,数据网络的支持并不完善,不同网页采取的不同 信息标准造成了数据分享方面的困难,网页的源码中也需要标注标签,以便搜索引擎快速抓 取每个网页的主要内容;其次,语义分析的智能化程度仍然不够高,如今的算法程序仅

17、能从 表层理解世界,这意味着一个算法要比人类用掉更多的信息和计算空间才能像人类一样聪明。尽管存在重重的难关,但语义搜索技术一旦被广泛应用,其产生的效益是不可估量的, 因此语义搜索的概念一经问世,即成为多个领域关注的热点。在语义搜索技术引擎的 XML、RDF 和 Ontology 这三项关键技术中,XML 和 RDF 技术的实现依赖于计算机工程师,而Ontology 技术则主要使用了概率的知识来提取文本文档中的知识,因此语义搜索引擎的成熟正需要数据分析师和网络工程师的通力协作,无论缺少这两种人才中的哪一中,语义搜索引擎都将难以创造更大的效益。5.3 顺序分析搜狗输入法的智能纠错系统顺序分析是关联

18、分析的一种,它能够在大量数据集中发现数据的关联性或相关性。顺序分析关心的数据的纵向排列,即一件事情发生后紧接着会发生什么事情。顺序分析所使用的频繁模式算法是一种适用且简单的算法,本小节以搜狗输入法为例讲解了顺序分析是如何被用于挖掘用户的固有输入习惯的。5.3.1 搜狗输入法的王牌词库和智能算法输入法是人类和计算机打交道不可或缺的工具,我们的电子设备上什么软件都可以没有, 但是没有输入法的话,我们就没办法和计算机愉快的沟通。但输入法的功能并不止于此,如 今的智能输入法存储了你所有的按键数据。不夸张的说,这些数据完全可以刻画出你是什么 样的人。输入法的优劣在于输入法是否足够智能。如今市面上流行的输

19、入法有百度输入法、腾讯输入法、微软输入法和搜狗输入法等。平心而论,尽管搜狗公司的浏览器做的实在是不怎么样,但搜狗公司的输入法确实是最好的,而且比其他输入法好了不止一点点。截止 2015 年 5 月,搜狗输入法已经更新到了 7.5 版本,现如今,搜狗输入法支持的经典模块有简拼输入、智能纠错和热门词汇。其他输入法固然也支持这些功能,但它们都不如搜狗输入法做的好。图 5.3 搜狗输入法和微软输入法简拼输入对比图图 5.3 是搜狗输入法和和微微软软输入法在简拼输入方面的对比图。我们同同时时使使用数据分析的首字母“sjfx”作为测试对对象象,搜狗输入法列出的第一个选择就是“数据据分分析析”,同时它还紧接

20、着列出了“数据分析析师师”、“数据分析方法”和“实际分析”,这些些词词条条都是我常用的词条,搜狗输入法通过分分析析我我以往的输入记录,给出了这些选项。而微软输入法的第一一个个选选择是“手机飞信”,其后才是“数据分析”选选项项,这种罗列中规中矩,但并不够人性化。当当然然,我并不经常使用微软输入法,因此累积积不不到到足够的用户记录可能是导致微软输入法法表表现不好的原因之一。图 5.4 搜狗输入法和微软输入法智能纠错对比图图 5.4 是搜狗输入法和和微微软软输入法在智能纠错方面的对比图。测试输入入均均为为“shujufnexi”,其中 n 和 e 的位置打错了,正正确确输入应该是“shujufenx

21、i”。搜狗输入法辨辨别别出出了这种错误, 给出了“数据分析”这一一选选项,微软输入法则没有。智能纠错模块不仅支支持持对对按键顺序混乱的纠正,也支持对按键缺漏和和拼拼音音错误的纠正。比如“shujufexi”这一输入入中中少少了一个 n,但输入法仍能判别出这是“数数据据分分析”的输入; 而输入“shenmo”后,搜搜狗狗输输入法会给出“什么(shenme)”的选项,在在纠纠错的同时向用户指出错误。这些功能的实实现现一一方面和用户个人的输入习惯相关,另一方方面面也也和搜狗输入法中累积的上千万用户的输输入入记录相关。图 5.5 搜狗输入法和微软输入法热门词汇对比图图 5.5 是搜狗输入法和和微微软软

22、输入法在热门词汇方面的对比图。测试词词汇汇是是 2015 年 5 月中旬爆红的“赵薇撞脸高高圆圆圆圆”事件中的“撞脸”一词,搜狗输入法给出出的的第第一个选项就是“撞脸”,而微软输入法则没有出现这一选项。显然,搜狗输入法在热词方面要比微软输入法好很多。搜狗输入法还提供了“云词库”功能,以保证联网用户能够实时获取最新热门词汇。除了以上功能外,搜狗输入法也提供实时翻译、细胞词库、字符表情等多项功能。所有这些眼花缭乱的功能都依赖于搜狗输入算法的正常工作,而算法的正常工作又依赖于搜狗的庞大词库。这种简拼输入和智能纠错的功能尽管看起来并不起眼,但其实里边蕴含的算法原理是十分深刻的,本小节所关心的正是搜狗输

23、入法中的顺序分析算法。5.3.2 频繁树模式和顺序分析算法我们在输入拼音时,总是遵循先后顺序输入一串字符,算法在分析输入的字符时也总是按照先后顺序来分析。这种先后顺序是有意义的,因此对于用户打字习惯的分析十分适合使用顺序分析法来分析。序号顺序1s,j,f,x2s,j,f,x,f,f3s,j,w,j4s,h,s5s,j,f,x,s搜狗输入法累积了用户的大量数据,这是它高度智能化的基础。在进行顺序分析前,搜狗输入法首先需要分解用户输入的序列,比如将sjfx 分解为sjfx,将shujufx 分解为shujufx。这种分解依赖于已知的词库,即工程师需要首先告诉输入法 shu 是一个字符,而 sj 就

24、是两个单独的字符。图 5.6 拼音顺序记录表图 5.6 是一个简易的拼音顺序记录表,在表中,数据分析、数据分析方法、数据挖掘、上海市、数据分析师的简拼顺序分别出现了一遍。顺序分析的任务就是在这些记录中发现频繁出现的那些顺序,并在新顺序出现时,将它与已知频繁顺序相比较,找出新顺序的潜在规律或异常。在顺序分析中,支持度和置信度是最重要的两个概念。支持度指的是顺序出现的频率。比如单个字符 s 在集合中出现了 5 次,它的支持度就是 5,而 sj 这一顺序一共出了 4 次,它的支持度就是 4;置信度则指的是当某一顺序出现后,其他顺序紧接着出现的频率。比如 sj 顺序出现后,紧接着出现 fx 的置信度是

25、 3,紧接着出现 fxff 的置信度是 1。将支持度除以集合的总数或置信度除以该前缀所对应的子集总数后,这两个值就落入了0 到 1 之间,比如 sj 的支持度 4 ,sjfx 的支持度是 3 ,而 sjfx 相对 sj 的置信度则是 3 。此554时的支持度和置信度可以直接衡量某一顺序出现的概率,而不需再结合集合总数进行分析。值得指出的是,支持度和置信度是两个单独的概念,二者之间没有任何关联,一个顺序的支持度高,置信度未必高,其置信度高,支持度也未必高。同时,我们感兴趣的是支持度和置信度同样高的顺序,一个顺序支持度低时,说明它出现的次数非常少,对它的研究没有意义;一个顺序置信度低时,说明关于它

26、的结论不可靠。图 5.7 拼音顺序记录的频繁树显而易见,顺序分析的本质思想是使用概率的知识来解决问题,一个顺序出现的概率大, 则新顺序符合这个顺序的概率就大。比如我老是要输入“数据分析”这个词组,在我的记录里这个词组的频率就非常高,因此当我再次输入“sjfx”时,搜狗输入法就知道我想要输的是“数据分析”。这种思想非常容易理解,困难的是如何把顺序合理的转化为数字、从而统计每个顺序出现的概率呢?图 5.7 是拼音顺序记录的频繁树表示,频繁树模式是一种非常好用的关联分析方法。在图 5.7 中,每一个节点都由一对字母和数字组成,字母表示该节点的输入字符,数字表示该节点的支持度。这棵树从上往下读,最上边

27、的节点是根节点,越靠近根节点,支持度就越大。根据图5.7,将所有顺序按照支持度从大到小排列后有s:5、sj:4、sjfx:3、sjfxff:1、sjfxs:1、sjfxwj:1、shs:1等七个顺序。在顺序分析中,我们通常不会保留所有的顺序,而只是保留那些支持度高的、有意义的顺序。比如在本例中,我们将阈值设为 1,即只保留顺序s、sj以及sjfx。同理,我们计算每个顺序的置信度,并设一个阈值来选出置信度较高的顺序。当用户输入 s 后,根据频繁树,我们将认为用户下一个将要输入的字符为 j;当用户输入 sj 后,根据频繁树,我们将认为用户即将输入 fx。简拼输入是基础的顺序分析,它所涉及的顺序元素

28、全都是单独的字符。在智能纠错中, 顺序分析所涉及的元素则夹杂了多个字符,比如 shujufx 这一序列应当拆分为 shu、ju、f、x 这四个元素。将一个汉字的拼音视为一个整体能够简化计算,并且,这也是符合认知习惯的。智能纠错寻找元素排列规律的方法与简拼输入并无不同,它寻找拼音错误的方法在于将每个汉字的拼音单独作为一个序列进行分析。比如对于“shujufnexi”这一序列来说,智能纠错首先将其分割为“shu、ju、f、ne、xi”这一序列,并搜索常见排列顺序,发现“shu、ju”后边总是跟随“fen、xi”,并比较“fne”和“fen”的相似度,最终确定这是一个需要纠正的错误。热门词汇功能则在

29、于调高了顺序分析算法中热门词汇所对应的序列的频率,从而保证热门词汇能够排在更靠前的位置。5.3.3 顺序分析小结和大多数机器学习问题相似,工程师没办法直接告诉程序:当一个用户输入“数据”后, 他就马上要输入“分析”了。输入法程序必须自己学习这些规则,而顺序分析正是通过累积概率知识来赋予输入法程序学习能力,因此顺序分析是一个典型的机器学习算法。顺序分析的思想十分简洁,但它是行之有效的,尤其是累积的概率知识足够多时。它总是被用于发现各种各样的顺序,比如购买了孕妇服的顾客在几个月内会购买婴儿玩具和纸尿裤,比如访问了 A 网页的用户会在两分钟内访问 B 网页,再比如这学期选数据结构这门课的同学会在下学

30、期选C 语言。这种分析方法可以用于零售网站为用户推荐产品或从正常访客中区分黑客。总的来说,顺序分析专门用于解决含有大量事务集,并且事务间存在顺序关系的问题。顺序分析和决策树以及粗糙集的原理颇有相似之处,都是从概率知识中获取知识。但顺序分析擅长处理字符型数据和数值型数据,而决策树和粗糙集则需要将字符型数据转化为数值型离散数据。同时顺序分析将数据看做一个整体,关心数据中呈现的顺序规律;而决策树和粗糙集将自变量和因变量分割开来,关心的是最终的结论。常用的顺序分析算法有 Apriori 算法和 FP-growth 算法,它们都具有具有原理简单、容易理解、擅于处理多种数据类型的优点,并对于解决某些特定问

31、题具有不可替代的作用,但它同样也具有缺点。首先,结果准确度和计算效率是顺序分析中一个不可调和的矛盾。顺序分析的精髓在于统计所有常见顺序出现的频率,由于一个长的顺序需要拆分多个短的顺序,因此随着集合中样本的增长,计算空间会呈指数增长,计算效率也会急速下降。同时顺序分析的结果准确度基本完全依赖于样本量的大小,因此,结果的准确度和计算效率就成了一对不可调和的矛盾。其次,顺序分析仅能发现事件和事件之间的相关性,而不能发现一个事件引发另一个事件的原因。有时候我们能够轻易地理解顺序分析提供的规律中的内在关系,比如购买孕妇服的用户会在几个月后购买纸尿裤。但有时候这会让人困扰,比如购买黄酒的用户会在两天后购买

32、香蕉。如果偶们不能理解顺序分析提供的规律中的内在关系,我们就不能给出准确合理的建议。最后,顺序分析只在样本累积足够多时才能起到作用。这是一个冷启动问题,有的问题中它并不严重,比如我们使用输入法时不会苛刻地要求它第一天就猜出我们是数据分析师。但有时候则不然,比如在样本本来就有限,或者分析结果要的非常急的时候。这个缺点极大地局限了顺序分析能够解决的问题的范畴。5.4 文本分析经典的垃圾邮件过滤系统文本分析算法是一系列算法的合称,在文本分析中必须要完成的工作的有分词、清洗和在文本中发现信息。这些工作可以使用 K 均值算法、支持向量机或朴素贝叶斯算法完成, 本小节通过垃圾邮件过滤系统的构建展示了不同算

33、法是如何用于文本分析工作的,以及文本分析工作中需要注意的地方和文本分析工作能够解决的常见问题。5.4.1 大数据时代需要文本分析工作大数据时代最显著的一个特点就是能够在海量的数据中获取有用的知识。数据分析师之所以能够利用海量数据,不仅是因为现代世界数据量的爆炸性增长,还因为我们开始利用以往忽略的非结构化数据。这些非结构化数据包括图像、音频、视频、文字等,它们占据了现有数据量中的绝大部分。在大数据时代到来前,我们对于非结构化数据的利用是低效的。比如犯罪事件发生后, 警察会调出视频记录查看案件发生时的情况,这时几百个小时的视频记录中只有几分钟被利用起来了,这种利用是非常低效的。但是现在我们可以用这

34、些视频来训练人脸识别算法,并在新的监控视频中智能识别出罪犯,这种基于大数据和算法的识别就比较高效了。对图片、视频的分析工作统称为图像分析,同理,对文字的分析工作统称为文本分析。由于摄像机等监控设备往往由政府部门掌管,因此图像分析通常局限于政府公共事务领域, 比如 3.5 小节提到的智能人脸识别系统,以及 4.2 小节提到的自动驾驶技术。而文本分析则不然,网络上存储的文本数据大部分都是可以随意被个人或企业获取的, 如论坛上的用户发言、推特内容、微博内容、新闻网站发布的文章资讯等等,因此文本分析能够解决的问题要丰富得多。本小节所介绍的如何使用分类系统将邮件分为垃圾邮件和正常邮件的问题就是一个典型的

35、文本分析问题。此外在 2.5 小节中我们提到的谷歌预测流感就是一个经典的文本分析问题,而 6.3 小节中即将介绍的为新闻报道分类这一案例也属于文本分析的范畴。对于非结构化数据来说,想要从中获取知识,首先需要做的就是将数据转化为结构化的、可以被计算机识别利用的。在图像分析和音频分析中,我们利用各种算子将数据的物理特征使用数字表达出来,在文本分析中,我们则通常使用词向量来表示文本中的数据。比如在本小节中,我们关心的是邮件正文中某些特定词汇的出现与否,比如“特价”、“促销”、“尊敬的”、“您好”等显然属于垃圾邮件的词汇。因此,在垃圾邮件分类器中, 词向量就根据这些词汇构造而成。在不同问题中使用的词向

36、量并不相同,比如研究顾客评论时词向量的构建则围绕“售后”、“客服”、“物流”等词汇完成,词向量的选择应由具体问题决定。5.4.2 垃圾邮件过滤中的分词技术和词集模型分词是文本分析的第一个步骤。在英文中,单词与单词之间被空格分隔开,因此英文文档的分词工作是较为简单的,只需在每个空格处切割文本即可。但在中文中,字与字、词与词之间没有明显的分割点,因此需要一个模型来完成这件事。图 5.8 机械分词模型示例词典图 5.8 是一个机械分词模型的示例词典,它一共收录了感冒、解毒颗粒、解毒灵茶、解痛散、康胶囊、感觉、肺炎、肺厥等八个词语,使用树状结构表示,当新的词语输入模型时, 它就被用来和词典相匹配,从而

37、完成分词工作。以“感冒解毒颗粒”这一短语为例,模型首先提出短语的第一个字符“感”,并在词典中寻找到“感”字的位置,然后接着将短语后续的内容与词典中收录的词汇相匹配,由于“冒” 字是粉色的终止字符,故“感冒解毒颗粒”中提出的第一个词汇就是“感冒”。然后原始短语中删除“感冒”,从“解”字重新开始匹配,最终完成分词过程。在实际应用中,分词词典几乎包含了所有已知的常见词汇,因此中文句子中的所有词汇都可以切分出来。这种按照句子顺序从前向后切分的方法完全依赖词典的完备性,而不涉及任何概率知识,因此叫做机械分词模型。机械分词模型只能按照从前向后的顺序切割,因此“我喜欢上海南了”这句话就会切割成“我、喜欢、上

38、海、南、了”这种形式,为了避免这种错误,我们通常在机械分词模型的基础上引入神经网络或贝叶斯决策方法,通过使用概率来寻找正确的分词方法。即“喜欢、上、海南”这种组合出现的概率大于“喜欢、上海、南”,因此我们选择将句子分割为“我、喜欢、上、海南、了”。解决了分词问题后,垃圾邮件分类系统的构建就已经完成一半工作了。在垃圾邮件分类系统中,我们需要两组邮件,一组是用于训练的邮件,一组是用于测试的邮件。训练邮件的分类属性我们已经提前知道,并且会告诉分类系统。测试邮件的分类属性我们也知道,但不会告诉分类系统。我们将训练邮件按照垃圾邮件和正常邮件分为两组,为它们分词后,统计出每组邮件中高频出现的词语以及它们的

39、词频。可以理解,这两组邮件中的高频词汇是绝对不会相同的。垃圾邮件中的高频词汇会是尊敬的、顾客、活动、促销、欢迎等,正常邮件中的高频词汇则是朋友、宠物、约会、有趣等。尊敬的顾客活动促销欢迎朋友宠物约会有趣属性1110110001垃圾邮件2111101000垃圾邮件3101000000垃圾邮件频数322211001频率0.250.170.170.170.080.08000.084000001010正常邮件5000001111正常邮件频数000002121频率000000.330.170.330.17图 5.9 训练邮件的词频统计图图 6.9 是根据五封训练邮件统计得到的词频统计图。其中 0 表示某

40、个词汇在某封邮件中没有出现,1 则表示某个词汇在某封邮件中出现了。我们将垃圾邮件和正常邮件分开统计, 最终得到每个词汇在每种邮件中出现的频率。当训练邮件个数较多时,我们将频率直接当做概率来使用。9根据图 6.9,我们认为尊敬的、顾客、活动、促销、欢迎、朋友、宠物、约会、有趣等词汇在垃圾邮件中出现的概率分别是 0.25、0.17、0.17、0.17、0.08、0.08、0、0、0.08,在正常邮件中出现的概率分别是 0、0、0、0、0、0.33、0.17、0.33、0.17 等。那么当新邮件中出现“尊敬的”这一词汇时,我们就认为它是垃圾邮件的概率是 0.25。当新邮件出现时,我们首先对其进行分词

41、,并根据概率公式 p = ci pi ,我们可以计i=1算新邮件属于垃圾邮件或正常邮件的概率,比如对于一个含有尊敬的、欢迎、朋友、约会、有趣的邮件来说,它属于垃圾邮件的概率为1 0.25 + 0 0.17 + 0 0.17 + 0 0.17 +1 0.08 +1 0.08 + 0 0 +1 0 +1 0.08 = 0.41 ,属于正常邮件的概率为1 0 + 0 0 + 0 0 + 0 0 +1 0 +1 0.33 + 0 0.17 +1 0.33 +1 0.17 = 0.83 。由于 0.83 大于 0.4,因此新邮件属于正常邮件。我们根据训练邮件得出模型参数后,还需在测试集上测试模型的准确率

42、,即使用模型为测试集分类,并观察预测结果和实际结果的差异。这种交叉验证方法在机器学习中是不可或缺的一个步骤。5.4.3 文本分析小结本小节介绍的垃圾邮件过滤系统是一个经典的文本分析问题。为了解决这一问题,本小节着重讲述了如何使用机械分词方法为中文分词,以及如何将概率相加计算得到每一个新邮件最终属于垃圾邮件或正常邮件的可能性。在文本分析中,还有许多值得补充的内容。比如对于分词来说,专家系统分词模式、神经网络分词模式以及路径选择分词模式等都是机械分词模式的加强版,它们在精确度方面要优于机械分词模式,但机械分词模式的速度是最快的。无论是哪种分词模式,分词结果的准确与否都极大地依赖于分词词典的完备性。

43、而对于概率计算方法来说,一方面我们使用的是词集模型,即考虑某一单词在某一邮件中是否出现,而没有使用词袋模型,即考虑某一单词在某一邮件中出现的次数;另一方面我们使用的是简单的概率相加公式,它计算简洁,但最终结果并不是落在 0 到 1 之间,因此具有缺陷。作为简单概率公式的改进,我们也可以使用概率相乘公式,或朴素贝叶斯概率公式来计算新邮件落入不同邮件分类中的概率。此外,我们还可以选择其他解决问题的思路来处理垃圾邮件分类问题。比如将每一个特征词看做一个维度,使用支持向量机或 K 均值聚类算法来完成分类。但由于在垃圾邮件分类问题中,我们往往提取的特征数非常多,且数据中存在很多 0,因此支持向量机或 K

44、 均值算法的效果并不会比朴素贝叶斯算法的效果好。垃圾邮件分类问题的重点在于合理的提取用于计算概率的特征词,而对于其他文本分析问题来说,使用数据表示文本信息的方法未必是唯一的,在具体问题中如何将文字性的问题转化为用公式表达的问题才是重点。总的来说,大部分文本分析问题都是垃圾邮件分类系统的变形或复杂化。在文本分析中 使用概率的规则要比使用硬编程的方法好得多,在估计概率时好的分词系统将起到重要作用, 此外在模型中加入人为监督的因素也会提高分类准确度,比如在垃圾邮件分类问题中人为筛 选高频词汇。5.5 协同过滤构建个性化推荐系统的经典算法协同过滤是最经典也是最著名的一类推荐算法,现如今流行于市面上的推

45、荐算法大部分都是协同过滤算法或协同过滤算法的升级版。本小节的着重点在于协同过滤是如何依靠集体智慧工作的,以及几种不同的相似度计算方法对协同过滤算法效果的影响。通过阅读本小节, 读者将完全掌握协同过滤算法的理论和应用。5.5.1 协同过滤算法为什么这么流行推荐系统和搜索引擎的作用十分相似,都用于替用户在浩瀚的网页中抓取用户感兴趣的内容。个性化推荐系统总是被应用在各类购物网站和新闻网站上,它也可以用于推荐电影和广告。考虑到如今的互联网上充斥着各种各样的广告,而其中一大部分都是基于协同过滤做出的推荐,我们大概可以想象到协同过滤算法应用的范围之广。协同过滤算法起源于 1992 年,被 Xerox 公司

46、用于个性化定制邮件系统。类似于如今知乎、果壳会为你发送个性化的邮件那样,Xerox 公司也想知道它的用户对什么感兴趣,好给每个人发送个性化的邮件。为了达到这个目的,Xerox 公司的用户需要在数十种主题中选择三到五种主题,协同过滤算法根据不同的主题过滤邮件,最终达到个性化的目的。1994 年时,协同过滤算法中第一次引入了集体智慧的概念。集体智慧指的是利用大基数人群和数据获取知识。比如维基百科就是一个典型的集体智慧案例,它允许用户贡献自己的知识,从而建造了世界上最全面的百科网站,比任何一本百科大全都要全面且准确。协同过滤算法尝试在算法中加入集体智慧的元素。根据这一想法完成的 GroupLens

47、系统主要用于新闻筛选,在这个系统中,每一个用户阅读完一条新闻后都会给出一个评分, GroupLens 系统负责将这些评分收集起来,并根据这些评分确定新闻要不要推送出去,以及应该推送给谁。Xerox 公司人为的确定邮件主题,工程师需要明确的告诉程序每封邮件的主题是什么, 再将邮件发给对这些主题感兴趣的人。而 GroupLens 系统则首次利用了集体数据,即根据用户的反应让程序自主学习每条新闻的主题是什么。这两种做法有本质上的差别,前者要耗费更多的人力资源,同时准确度也不高,基本属于硬编程的范畴;而后者对人力资源的需求并不高,同时拥有较高的准确度,已经跨入机器学习的行列。继 GroupLens 系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁