白话大数据与机器学习(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-19 02:04:20

点击下载

作者:高扬

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

白话大数据与机器学习

白话大数据与机器学习试读:

前言

为什么要写这本书

不知从何时开始我们已周身没入大数据时代的潮流,不知不觉被卷入了大数据时代。

无论是每天上网看网页、聊QQ、聊微信,或者登录银行、网购、买票,或者出行、投宿,甚至是出入任何公众场合、驾车、用水用电……我们无时无刻不在生产着各种数据。而同时我们也在消费着其他人生产的数据,我们使用的众多家电产品,每一个设计细节都融入了设计者对用户体验数据的调查与分析;我们使用的每一部手机、每一台电脑,每一个部件的产出都融入着多得无法想象的指标数据控制下的生产与监控;我们访问的每一个网页、每一个软件,每一次享受到的贴心的产品改动和服务的升级,无不浸透着无数的数据汇集与精细的分析和反馈。这是一场慢慢到来的、贯穿所有产业的革命,这是一次润物细无声的各行业精耕细作的开端。

不管我们是不是愿意,不管我们有没有意识到,我们现在已经身处大数据时代的奇点,而未来要迎接的是大数据奇点爆炸给我们带来的冲击力。我们需要力量来驾驭浪里的航船,我们需要乘风破浪前进的动力。

在这一次远航中,我们不必担心自己的能力水平无法感知数据这种磅礴之力的气魄,不必担心晦涩难懂的公式定理会让我们感到阻力。

请相信我,这是一本通俗易懂的大数据图书,这是一本轻松愉悦的数据挖掘和机器学习的读本,这是一本没有门槛的机器学习实战手册。让我们一起扬帆远航吧!

本书特色

从行为脉络来看,本书基本上是从数据统计、数据指标理解、数据模型、聚类/分类与机器学习、数据应用、大数据框架补充知识,以及扩展讨论这样的角度来层层深入完成的。

这种方式会给读者比较好的带入感,让大家——尤其是不擅长数学的读者降低对大数据与机器学习算法的恐惧感。如果读者朋友对排列组合、统计分布这些基础知识比较了解,完全可以考虑跳过这些部分直接去读后面更感兴趣的内容。

为了调节阅读气氛,我们还尝试加入了一些漫画插图。为了让读者朋友能够更快地进行实践,我们几乎在每一个算法讲解后都配有Python或者SQL语言的实现部分。相信这些能够帮助大家更快、更轻松地阅读本书。

读者对象

(1)对大数据感兴趣但是完全不了解的技术人员。(2)对机器学习和数据挖掘比较感兴趣的技术人员。(3)大数据初级从业人员。

如何阅读本书

本书一共分为18章。

第1章~第5章为入门所需基础知识及对数据指标运营的阐述。

第6章~第10章是对数据挖掘基础知识与算法的介绍。

第11章~第18章为生产应用与高级扩展。

其中,第1章~第15章正文内容,以及第17章、第18章的正文内容由高扬编写。

全书所有的Python代码由卫峥编写与补充整理。

第16章、附录全部由尹会生编写。

全书所有的漫画插画由万娟创作完成。

勘误和支持

由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎扫描下方的二维码,关注“奇点大数据”微信公众号和我们进行互动讨论。关注大数据尖端技术发展,关注“奇点大数据”。

同时,你也可以通过邮箱77232517@qq.com联系到我,期待能够得到你的真挚反馈,在技术之路上互勉共进。

致谢

特别感谢:万娟女士为本书做的漫画插画内容。

万娟女士现任深圳星盘科技有限公司UI设计师,是我在多年工作中遇到过的最敬业的UI设计师之一,在2013年一起合作的过程中给我留下了非常深刻的印象。

她多次参加全国和国际艺术比赛,曾获得全国青少年绘画大赛铜奖,中国–新加坡国际青少年绘画比赛优秀奖,以及全国大学生工业设计大赛三等奖。从小酷爱绘画,理想是开一个属于自己的画室。

她给我留下的最深刻的印象用两个词可以描述:一个词是“敬业”,不管是在过去共事期间的合作,还是在为本书创作插画的过程中,为了保证进度带病坚持创作,都让我非常感动;另一个词是“唯美”,不仅人长得美,作品设计风格也透出现代与时尚的气息。

此外还要对所有支持和关心本书成书的各界朋友表示由衷的感谢:

衷心感谢北京邮电大学软件学院杨谈老师对本书的审校工作。

衷心感谢腾讯公司数据分析师彭瑶女士对本书的审校工作。

衷心感谢重庆工商大学黄辉老师、杨艺老师对本书的大力支持。

衷心感谢机械工业出版社华章公司对本书的支持与帮助。

衷心感谢“奇点大数据”微信群友对本书的关注与支持。高扬第1章大数据产业1.1 大数据产业现状

大数据是近几年来都一直非常火热的一个名词,似乎是伴随着“互联网”的逐渐发展所出现的一个新名词。我们在天天听着“互联网+”的同时也在听说“大数据+”。

大数据其实是一个比较抽象和笼统的概念,应该说这个词是为了涵盖性地表达一系列生产和业务行为的一个统称。但是也正是由于这种抽象和过于简略的称谓方式,让每个人都容易对这个词产生见仁见智的不同视角的印象或者看法。

大数据是一个以数据为核心的产业,是一个围绕大数据生命周期不断循环往复的生产过程,同时也是由多种行业分工和协同配合而产生的一个复合性极高的行业。

在我看来,大数据产业生产流程从数据的生命周期的传导和演变上可以分为这样几个部分:数据收集、数据存储、数据建模、数据分析、数据变现。

其中每个环节都是非常重要的数据生命环节,每个环节的生产加工行为都是有其价值的,并且每个环节做到极致都可以成就一个伟大的公司。整个完整的产业生态圈就是大数据,它的缩影也渗透在任何一家以数据作为运营基础的公司中。

根据麦肯锡2011年发布的一份研究报告,到2018年世界范围内将会出现高达14万~19万的“大数据”岗位空缺。而艾瑞咨询集团在“2014年会”上曾指出,全球数据量每18个月翻一番,到2015年,中国专用数据分析人员预计缺口1400万。

可以看到,在仅仅三四年的时间间隔上,两家咨询公司做出的预测都很大胆,但是两个估算数字相差也确实非常悬殊。究竟哪个数字更贴近“事实”并不好判断,因为大家对“大数据”的概念边界理解可能有很大的偏差,估算出现偏差是必然的,但是有一点可以肯定,大数据人才缺口一定是未来几年非常显著的问题。

2015年12月21日,全球第一家大数据交易所——贵阳大数据交易所经过半年多的发展,交易金额已突破6000万元人民币,会员数量超过300家,接入贵阳大数据交易所的数据源公司超过100家,数据总量超过10 PB,已发生实际交易的会员超过70家。预计在未来[1]3~5年,交易所日交易额将突破100亿元。

截至目前,中国境内除了贵阳大数据交易所以外,还有长江大数据交易所、东湖大数据交易所、崇州大数据交易所等十余家大数据交易所挂牌营业。

2016年1月,阿里云的“数加”大数据平台和金山云的KMR平台等国内大品牌云产品供应商的重磅产品先后登场,几乎所有有远见的云产品巨擘资本都在向大数据产业链集中。但是这块蛋糕似乎有点太大了,只能边烘焙边分割,谁也没办法一下子全吃掉。[1] 来自《新华网》的报道。1.2 对大数据产业的理解“大数据”这个人造词汇其实很容易产生不少误解,尤其是这个“大”字,很容易让人感觉,数据量必须大,而且特别大,越大越能形成产业,也越有价值。其实这真的是“大数据”给人带来的误导。大数据产业的存在其实和其他产业并无二致,本身是为了给其他产业提供服务。

做个假设,假如现在给石油产业冠以“大石油”产业的名字,那么会影响石油行业本身对其他行业的服务样态吗?应该不会。

在“大石油”产业里,同样有人从事着这样的工作内容:石油勘探、石油开采、石油运输、石油提炼、石油产品销售等多个细分领域和环节。

最后提供给社会的是由大量人工和智慧凝结在石油产品上的服务,而这些服务极大地方便并满足了社会各领域对于工业能源、建筑材料、食品包装、服装面料、模型器具、日杂用品等多种制造与使用的需求。试想如果没有石油,也就没有廉价汽车与航空动力,尤其是没有乙烯等重要化工原材料的来源,是否存在塑料这样一种廉价的工业制造材料都很难说,那么各个产业则需要用其他造价更为高昂的材料对其进行取代,更不用提家用的天然气和液化石油气了,人们只能再去寻找其他能源:要么不洁净——如柴火和煤炭,要么价格昂贵——如氢气。人们之所以选用石油作为整个产业链的根源,并把它发展成一个完整的产业也是由于这样的原因,大概这个逻辑是比较容易理解的。

类比一下“大数据”产业,数据收集、数据传输、数据存储、数据建模、数据分析、数据交易贯穿了大数据产业的完整产业链。在这个产业链里同样蕴含着和“大石油”一样的东西,这个东西是什么?

数据通过各种软件进行收集,通过网络进行传输,通过云数据中心进行存储,通过数据科学家或者行业专家进行建模和加工,最后数据分析得到的是一种知识,是一种人们通过数据洞悉世界的能力。数据之间本来彼此错综复杂的潜在关系会使得大量孤立而多来源的数据同时出现在一个舞台后显得更为有趣,大量看似不相关的事情却能够通过观察与分析后告诉人们更多背后的因果。这些因果联系的意义会让人们在各个方面能够推测未来趋势,减少试错的机会,减少成本,降低风险,解放劳动力。笔者认为这才是大数据产业本身的价值与意义所在。1.3 大数据人才1.3.1 供需失衡

大数据产业既然如此炙手可热,那么大数据人才的待遇如何呢?这一点其实不用多说,只要大家时常关注一些猎头QQ群的状态,或者猎头朋友的签名档内容,再或者干脆到“猎聘网”、“前程无忧”等专业的人才中介网站去看看就会了然于胸——30万年薪找不到人,40万年薪找不到人,50万、60万还是找不到人,一时间可谓洛阳纸贵,似乎市场上的大数据人才是“一将难求”。这也从一个侧面说明,很多公司愿意花这么多薪水雇佣一位大数据人才,不管他的头衔是大数据科学家,还是大数据架构师,抑或是大数据产品经理,很显然这些公司都是把大数据产业发展作为自己的经营战略的重要组成部分来看待。

大数据人才的一将难求其实不奇怪,因为人才既然是市场的一部分,是一种特殊的“商品”,那就必然受到市场因素的调节,供需严重失衡才会有这样的现象。但是,为什么大数据人才会供需严重失衡呢?原因有以下两个。(1)大数据产业发展迅速,很多公司都越来越意识到要将大数据作为自己公司经营战略不可或缺的一部分,就像销售、生产、公关这样的重要环节一样缺一不可。人才需求旺盛!(2)大数据人才培养成本居高不下,培养周期长,成材率相对较低,这也是导致大数据人才缺乏的一个非常重要的原因。人才供应不足!1.3.2 人才方向

从目前市场上的人才需求观点来看,大数据人才大致可以分为以下3个方向。(1)偏重基建与架构的“大数据架构”方向。(2)偏重建模与分析的“大数据分析”方向。(3)偏重应用实现的“大数据开发”方向。

当然,也有理想主义者会认为能来个三合一的人才就更好了,但是知识宽度和知识深度本身就是一组矛盾,毕竟对于有限的学习时间和精力,能够在一方面做到运用自如已属不易。1.大数据架构方向

大数据架构方向的人才更多注重的是Hadoop、Spark、Storm等大数据框架的实现原理、部署、调优和稳定性问题,以及它们与Flume、Kafka等数据流工具以及可视化工具的结合技巧,再有就是一些工具的商业应用问题,如Hive、Cassandra、HBase、PrestoDB等。能够将这些概念理解清楚,并能够用辩证的技术观点进行组合使用,达到软/硬件资源利用的最大化,服务提供的稳定化,这是大数据架构人才的目标。

以下是大数据架构方向研究的主要方面。(1)架构理论:关键词有高并发、高可用、并行计算、MapReduce、Spark等。(2)数据流应用:关键词有Flume、Fluentd、Kafka、ZMQ等。(3)存储应用:关键词有HDFS、Ceph等。(4)软件应用:关键词有Hive、HBase、Cassandra、PrestoDB等。(5)可视化应用,关键词有HightCharts、ECharts、D3、HTML5、CSS3等。

大数据架构师除了最后可视化的部分不需要太过注意(但是要做基本的原理了解)以外,其他的架构理论层面、数据流层面、存储层面、软件应用层面等都需要做比较深入的理解和落地应用。尤其是需要至少由每一个层面中挑选一个可以完全纯熟应用的产品,然后组合成一个完整的应用场景,在访问强度、实现成本、功能应用层面都能满足需求,这是一个合格的大数据架构师必须完成的最低限要求。2.大数据分析方向

大数据分析方向的人才更多注重的是数据指标的建立,数据的统计,数据之间的联系,数据的深度挖掘和机器学习,并利用探索性数据分析的方式得到更多的规律、知识,或者对未来事物预测和预判的手段。

以下是大数据分析方向研究的主要方面。(1)数据库应用:关键词有RDBMS、NoSQL、MySQL、Hive、Cassandra等。(2)数据加工:关键词有ETL、Python等。(3)数据统计:关键词有统计、概率等。(4)数据分析:关键词有数据建模、数据挖掘、机器学习、回归分析、聚类、分类、协同过滤等。

此外还有一个方面是业务知识。

其中,数据库应用、数据加工是通用的技术技巧或者工具性的能力,主要是为了帮助分析师调用或提取自己需要的数据,毕竟这些技巧的学习成本相对较低,而且在工作场景中不可或缺,而每次都求人去取数据很可能会消耗过多的时间成本。

数据统计、数据分析是分析师的重头戏,一般来说这两个部分是分析师的主业,要有比较好的数学素养或者思维方式,而且一般来说数学专业出身的人会有相当的优势。最后的业务知识方面就是千姿百态了,毕竟每家行业甚至每家公司的业务形态都是千差万别的,只有对这些业务形态和业务流程有了充分的理解才能对数据分析做到融会贯通,才有可能正确地建立模型和解读数据。3.大数据开发方向

大数据开发方向的人才更多注重的是服务器端开发,数据库开发,呈现与可视化,人机交互等衔接数据载体和数据加工各个单元以及用户的功能落地与实现。

以下是大数据开发研究的主要方面。(1)数据库开发:关键词有RDBMS、NoSQL、MySQL、Hive等。(2)数据流工具开发:关键词有Flume、Heka、Fluentd、Kafka、ZMQ等。(3)数据前端开发:关键词有HightCharts、ECharts、JavaScript、D3、HTML5、CSS3等。(4)数据获取开发:关键词有爬虫、分词、自然语言学习、文本分类等。

可以注意到,大数据开发职种和大数据架构方向有很多关键词虽然是重合的,但是措辞不一样,一个是“应用”,一个是“开发”。区别在于,“应用”更多的是懂得这些这种技术能为人们提供什么功能,以及使用这种技术的优缺点,并擅长做取舍;“开发”更注重的是熟练掌握,快速实现。

最后一个方面——数据获取开发与前面的数据库开发、数据流工具开发、数据前端开发略有不同,它出现的时间相对较晚,应用面相对较窄。现在很多数据公司,如汤森路透、彭博等咨询公司的数据除了从专业行业公司直接得到以外,很多也是从互联网上爬取的,这个过程中也涉及一些关键技术。1.3.3 环节和工具

前面提到过,大数据从数据的生命周期的传导和演变上可以分为这样几个部分:数据收集,数据存储,数据建模,数据分析,数据变现,如图1-1所示。图1-1 数据生命周期中的环节1.数据收集

完成数据收集是做大数据的第一步,这里请注意,数据的收集和平时在业务生产库上的做法不太一样,而是更像以前数据仓库里的收集方式。

方法一:快照法。可以每天、每周、每月用数据快照的方式把当前这一瞬间的某数据的状态复制下来放入相应的位置——这个位置就是大数据的数据中心所采用的数据容器,可以用Hive实现,也可以用Oracle或者其他专业的数据仓库软件实现。

方法二:可以使用一些工具来进行流式的数据导入,如TCP流或者HTTP长/短链接。2.数据存储

数据存储的方式也是比较多样的,当数据收集进入数据中心时,可以考虑使用HDFS或者Ceph等开源并且低成本的方案,数据量较小的时候可以采用NAS直接mount到一台Linux服务器的某挂载点。比较推荐HDFS和Ceph主要是因为这两种框架在业界已经有了长时间的应用,社区活跃,方案成熟稳定,部署价格低廉且扩展性极好。3.数据建模

数据建模是一个人为因素影响比较大的环节,我们这里提到的数据建模是指数理关系的梳理,并根据数据建立一定的数据计算方法和数据指标。一般来说,在一个比较成熟的行业里,数据指标相对是比较固定的,只要对业务有足够的了解是比较容易建立起运营数据模型的。使用人们熟悉的SQL语言就可以对存储容器中的数据进行筛选和洗涤,如果数据存储的容器是其他的异构容器,如HBase或者Mongodb等,就只能使用它们自己的操作Shell去操作了。

在这里需要提一句,有一个比较重要的环节是数据清洗。不同的业务习惯下,清洗有着不同的解释,但核心思想都是让数据中那些由于误传、漏传、叠传等原因产生的数据失真部分被摒弃在计算之外。此外,原始数据从非格式化变成格式化需要一个“整形”的过程,目的是让它能够和其他数据进行参照来运算,清洗同样涵盖这个“整形”的过程。也有人习惯把这个环节直接放在数据收集的部分一次性完成,究竟哪种方式比较好不能一概而论:在数据收集的时候就直接“整形”完毕,可能会使后面的数据存储、建模等环节处理起来成本更低一些,这是它的好处;但是在这个过程中会发生一部分数据裁剪的动作,而裁减掉的数据所蕴含的信息以后再想找回是不可能的。孰优孰劣还是因地制宜地进行讨论比较好。4.数据分析

数据分析是这些环节里面一个比较重要的环节。“分析”两个字的含义可以包含两个方面的内容:一个是在数据之间尝试寻求因果关系或影响的逻辑;另一个是对数据的呈现做适当的解读。

这两个方面或许有重叠的部分,但是笔者认为这两个方面还是可以分开来理解的,前者偏重数据挖掘、试错与反复比对;后者偏重业务结合、行业情景带入等。但是两者都是货真价实的分析工作,这点毫无疑问。数据分析的工具在“市面”上有不少,有开源的,也有收费的,到现在其实没有特别好用的,大多使用的时候门槛较高而且使用习惯十分西方化。目前收费的软件里比较好的有IBM的SPSS、SAP的BW/BO,以及微软的SSAS和SSRS;开源的软件里有Mahout、Spark ML Lib、Python Pandas等。收费软件里通常会把挖掘分析和可视化结合得比较好,而开源软件里主要是封装的算法比较多,但是环节较为孤立,绘图的丰富程度和美观程度会大打折扣或者干脆没有,那么这个环节就需要使用者自己想办法了。1.3.4 门槛障碍

大数据开发不是一个由大数据带来的新方向,它更多是迁移性地使用旧有技术,技术突破也比较有限,所以这里不做过多的介绍。1.大数据架构方向

对于大数据架构方向,在资料方面虽然近两年涌现出很多翻译资料,也有很多国内高手写出不少实战心得,但是对于层出不穷的优秀开源框架来说,资料的更新多少显得有些跟不上脚步。这大概是自学成才的大数据架构师们很多不得不一边翻看着英文文档,一边翻看着源代码,一边试来试去的原因。而同时,越来越多的架构师们也将自己的心得写成越来越多的参考书籍,这些书籍的丰富也使大数据架构领域奋战的同行们有了更多的参考,有了更快进步的动力。2.大数据分析方向

对于大数据分析方向,在淘宝或者京东上试着翻看一下,其实书籍比前者要缺乏得多。虽然有一些不错的数据挖掘与机器学习的书,也有一些关于Mahout、Spark ML Lib和文本挖掘、神经网络的书被摆上货架,但是笔者也经常听一些同行抱怨这类书有不少问题不尽如人意。英译中版本的书有不少翻译生涩、阅读困难,而且解析不够细致,默认读者已经掌握了大量的数理统计或概率学的知识;而Mahout之类开源数据挖掘项目的书籍,要么就是由官方文档翻译而来新意全无,要么就是由于成书较慢早已落后于当前的最新版本,所以让人读起来如吮鸡肋。3.市场参与

在我看来,大数据行业目前不够繁荣的原因众多,但是究其根本就是因为它目前还不是一门“生意”,距离大量自由交易有价值的数据这一目标还相差太远。这种交易既存在于公司和组织之间,也存在于公司内部。现在去看身边最繁荣的市场,如大超市、大型网店,它们火爆的原因关键在于流量大、交易自由、交易成本低、交易参与方众多。大数据行业想要真正实现良性和快速发展,关键在于提高行业的市场化普及度。换句话说,大数据市场供需越丰富市场就越繁荣。而市场供需的繁荣靠的是参与方的丰富,以及交易内容的丰富。

那么支持参与方的不断丰富和交易内容不断丰富的源动力是什么呢?当然是人们经常说的去中心化和降低参与门槛。说到底,让尽可能多的人成为大数据行业中的价值制造者,这可能才是大数据行业进步的关键点所在。大数据产业中最有价值的层面在哪里?应该说,在数据收集、数据存储、数据建模、数据分析、数据变现这几个主要环节中,只有数据建模和数据分析这两个环节离数据变现,即创造价值更近;而数据收集和数据存储这两个环节做得再好也只是离节约成本更近,而对促进市场化普及的帮助较为间接。

因目前数据分析书籍的缺乏,阅读门槛的障碍,业内人士对知识的渴求,种种因素使我决心尝试着写一本门槛更低,更易理解,更“平民化”的数据挖掘与机器学习的书籍。1.4 小结

大数据产业已经向我们敞开了大门,整个产业才刚刚开始萌芽,只要我们肯多进行观察、学习和思考,任何领域任何业务都会享受到大数据产业为我们带来的各种好处。

笔者问过一些试读过本书的朋友,他们有的是大专毕业,有的是大学本科毕业但是由于专业设定的原因没有学过高等数学,基本还是能够看懂。

如果读者已经完成大专或者大本的学业,而且加减乘除、幂指对函数这些概念基本没问题;

如果读者对“一个六面的骰子在丢出后出现2点的概率是1/6”基本没问题;

如果读者对“一个匀质的硬币在扔出1000次后,正面朝上和反面朝上的次数基本各为500次”没问题;那么请读者放心大胆地跟随我们,我们将用最令人放松的聊天方式开始这次轻松的白话数据挖掘与机器学习之旅。第2章步入数据之门

数据与数据应用中的许多概念彼此有着千丝万缕的联系,同时也有着概念上的偏重与区别,这里先从数据应用领域中的常见概念聊起。2.1 什么是数据

数据是什么?这几乎成为一个人们熟视无睹的问题。

有不少朋友脑子里可能会直接冒出一个词“数字”——“数字就是数据”,我相信会有一些朋友斩钉截铁地说。

一些朋友会在稍作思考后回答“数字和字符、字母,这些都是数据”。图2-1 例1图2-2 例2

不知道你现在是不是正在纠结哪个回答更正确,抑或第二个回答更合理一些,这里先放一放。先看下面这组例子(图2-1):

这里有6个0,请问它是数据吗?

再看这样的例子(图2-2):

这里有4个1和2个a,那么它是数据吗?

也许你可能会问,“这到底是什么意思?”不错,这就是我们在认识数据的过程中存在的一个很要命的问题,几乎在我们出发时就拦住了我们的去路。

我们回过头再想想刚才的问题可能会得到比较令自己和他人信服的回答:“承载了信息的东西”才是数据,换句话说,不管是石头上刻的画,或者是小孩子在沙滩上歪歪扭扭写出的字迹,或者是嬉皮士们在墙上的涂鸦,只要它表达一些确实的含义,那么这种符号就可以被认为是数据。而没有承载信息的符号就不是数据。这个观点似乎看上去要比前面的回答理性得多,也科学得多,但是这个观点真的不需要补充了吗?

我们假设这两个例子都有一些比较特殊的场景,假设第一组里出现的6个0其实是时分秒的简写,000000表示00点00分00秒,而如果写作112349则表示11点23分49秒,那么它是不是也是数据呢?假设第二组出现的4个1和2个a其实是一组密码,4个1代表一个被约定的地点,aa代表一种被约定的事件,那这组数字和字母的意义也有了相应的解读,那么它是不是也是数据呢?

不难看出,一些符号如果想要被认定为数据,那就必须承载一定的信息。而信息很可能是因场景而定,因解读者的认知而定,所以一些符号是不是可以被当做数据,有相当的因素是取决于解读者的主观视角的。不知道这个观点你是不是认可,总之这点很重要。2.2 什么是信息

说到这里,我的同事娟娟非常认真且煞有介事地跟我说:“我觉得数字、字母、图像,这些都是数据,跟信息不信息的没什么关系。”看着她认真地跟我抬杠,我觉得蛮好,至少在认识数据过程中积极思考只有好处。

信息一词,在没有学术背景的情况下其实有着很多解释,例如,广播中的声音、互联网上的消息、通信系统中传输和处理的语音对象,甚至是小区和校园的消息看板(图2-3),也就是人类社会传播的一切内容。图2-3 信息的表现形式

1948年,数学家香农(Claude Elwood Shannon)在题为《通信的数学理论》的论文中指出:“信息是用来消除随机不定性的东西”。这句话如果举个例子说明,大概可以想象这样一个场景(图2-4)。图2-4 场景1

我说了两句话:“我今年33岁。”,“我明年34岁。”

那么第一句话如果是为了向不了解我的人介绍我的年龄而可以算作信息,第二句话则不是信息。至少你会觉得说了第一句以后,后面这句简直就是废话,因为从第一句话完全可以推导出来。

再如,某一天巴西足球队和中国足球队进行了比赛。

结果第二天张三告诉笔者,“昨天巴西队赢了。”

而后李四告诉笔者,“昨天中国队输了。”

再而后王五告诉笔者,“昨天的比赛不是平局。”(图2-5)图2-5 场景2

前提是只要他们都是说实话的人,那么对于我来说,也就只有张三的话能算信息,李四和王五说的则不能算作信息。甚至连张三说的“昨天巴西队赢了”这句话是否能够被算作信息,我们都要表示怀疑,因为这也有点“废话”的意味——但凡对足球运动有点认识的人都几乎可以认定,即便你不告诉我昨天巴西队赢了,我也能猜个八九不离十,因为可能性实在是太大太大了,大到几乎是一定的,几乎是毋庸置疑的。国足的粉丝们请放下手中的臭鸡蛋和烂西红柿,听我把例子讲完。

现在对信息是什么清晰多了吧?我们可以粗略地认为,信息就是那些把我们不清楚的事情阐明的描述,而已经明确或者知晓的东西让我们再“知晓”一遍,这些被知会的内容就不再是信息了。这个概念是很有用的,我们后面在讲信息论的时候也会再做定量的说明,现在只做一个定性的了解。

数据和信息是我们在数据挖掘和机器学习领域天天要打交道的基础,也是我们研究的主要对象。所以对数据和信息有一个比较一致性的认识对后面咱们讨论问题是非常有好处的。2.3 什么是算法

算法这个名称大家应该不陌生,如果你是一个信息相关专业的本科学生,至少在本科一年级或者二年级就接触过不少算法了。随便打开一个人力资源网站去搜索“算法工程师”,好的算法工程师的年薪能到三五十万甚至上百万。

算法是什么?算法可以被理解为“计算的方法和技巧”,在计算机中,算法大多数指的就是一段或者几段程序,告诉计算机用什么样的逻辑和步骤来处理数据和计算,然后得到处理的结果。

科班出身的信息相关专业的朋友看到这里就会觉得比较亲切了,经典的算法有很多,如“冒泡排序”算法,这几乎是所有学习高级语言和“数据结构”课程的入门必学;再如“八皇后问题”算法,这几乎也是在讲穷举计算时的经典保留算法案例(就是在国际象棋棋盘上放8个能够横、竖、斜无限制前进的皇后,让它们之间互相不能攻击,求有多少种解);以及MD5算法、ZIP2压缩算法等各种不胜枚举的算法。图2-6所示为八皇后问题的一组解,经过穷举是可以求出所有92组解的。图2-6 八皇后问题的一组解

应该说算法是数据加工的灵魂。如果说数据和信息是原始的食材,数据分析的结论是菜肴,那么算法就是烹调过程;如果说数据是玉璞,数据中蕴含的知识是价值连城的美碧,那么算法就是玉石打磨和加工的机床和工艺流程。

算法在高级语言发展了很多年之后,更多地被封装成了独立的函数或者独立的类,开放接口供人调用,然而算法封装得再好也是不能不假思索地使用就能获益的东西,要知道,这些封装只是在一定程度上避免了重复发明轮子而已。

大家不要以为算法全都是算法工程师的事情,跟普通的程序员或者分析人员无关,算法说到底是对处理逻辑理解的问题。《孙子兵法·作战篇》有云,“不尽知用兵之害者,则不能尽知用兵之利”,意思是说,不对用兵打仗的坏处与弊端进行充分了解同样不可能对用兵打仗的好处有足够的认识。算法的应用是一个辩证的过程,不仅在于不同算法间的比较和搭配使用有着辩证关系,在同一个算法中,不同的参数和阈值设置同样会带来大相径庭的结果,甚至影响数据解读的科学性。这一点请大家务必有所注意。2.4 统计、概率和数据挖掘

统计、概率、数据挖掘,这几个词经常伴随出现,尤其是统计和概率两个概念,几乎就像自然界的伴生矿一样分不了家,有很多出版社都出版过叫做《概率统计》的书籍。

本书不准备从学术的角度对统计和概率做严格的区分,在平时工作中用的统计大多为计数功能,如在使用Excel时会用到COUNT、SUM、AVERAGE等统计函数;如软件开发中,在用SQL语言对数据库的某些字段进行计数(count)、求和(sum)、求平均(avg)等函数。而概率的应用大多则是根据样本的数量以及占比得到“可能性”和“分布比例”等描述数值。当然,概率的用法远不止这些,在数据挖掘中同样用到大量概率相关的算法,后面会有相当的篇幅进行说明。

数据挖掘这个词很多时候是和机器学习一起出现的,现在网上对这两个词的关系也是莫衷一是。有的说数据挖掘包含机器学习,有的说机器学习是数据挖掘发展的更高阶段。在笔者看来,数据挖掘和机器学习这样的词汇命名应该是信息科学自然进化和衍生出来的,带有一定的约定俗成的色彩,人们的看法见仁见智也在情理之中。

我的观点是这样。

首先我认为没有必要一定要给两个词汇划一个界限,或者一定要对它们做严格的概念区分,因为区分的标准到目前本就没有科学而无争议的界定,况且能不能分清一个算法属于数据挖掘的范畴还是机器学习的范畴对于算法本身使用是没有任何影响的,这两个词大家如果想听解释的话,不妨只从字面意思去理解就已经足够了。

数据挖掘——首先是有一定量的数据作为研究对象,挖掘——顾名思义,说明有一些东西并不是放在表面上一眼就能看明白,要进行深度的研究、对比、甄别等工作,最终从中找到规律或知识,“挖掘”这个词用得很形象。

机器学习——先想想人类学习的目的是什么,是掌握知识,掌握能力,掌握技巧,最终能够进行比较复杂或者高要求的工作。那么类比一下机器,我们让机器学习,不管学习什么,最终目的都是让它独立或至少半独立地进行相对复杂或者高要求的工作。这里提到的机器学习更多是让机器帮助人类做一些大规模的数据识别、分拣、规律总结等人类做起来比较花时间的事情。但是请注意,与数据挖掘一起出现的这个机器学习概念和我们说的“人工智能”还是相差甚远,因为这里面对“智能”的考究程度实在是太低了。2.5 什么是商业智能

另一个经常和大数据一起出现的词汇是商业智能(图2-7),也就是我们平时简称的BI(Business Intelligence)。

商业智能——业界比较公认的说法是在1996年最早由加特纳集团(Gartner Group)提出的一个商业概念,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息。如果这个书本式的概念读起来还是比较费解,那么请看一个形象的比喻。

公司在日常运营过程中是需要做很多决策的,无时无刻都存在于公司的各个方面,而决策不管是股东大会讨论还是企业领导、部门领导直接发布行政命令,最终可能是很多因素共同影响做出的结果,无论其来自主观还是客观。图2-7 商业智能

这些决策可以如何得出呢?可以由领导直接凭经验决定;可以群策群力开会决定;可以问询行业专家;甚至可以找个算卦先生来占卜……从概念来说都是属于辅助决策。而显然,我们都期望不论最终是如何做出的这些决策和命令,它们都应该是更为理性、科学、正确的。但是如何帮助他们做出更为理性、科学、正确的决策呢?商业智能整体就是研究这样一个课题,到目前为止,业界普遍比较认可的方式就是基于大量的数据所做的规律性分析。因而,市面上成熟的商业智能软件大多都是基于数据仓库做数据建模和分析,以及数据挖掘和报表的。

可以说,商业智能是一个具体的、大的应用领域,也是数据挖掘和机器学习应用的一个天然亲密的场景。而且商业智能这个解决问题的理念其实不仅仅可以应用于商业,还可以应用于国防军事、交通优化、环境治理、舆情分析、气象预测等。2.6 小结

数据的认识和数据的应用是大数据与机器学习的基础,数据、信息、算法、概率、数据挖掘、商业智能,这些是大数据最为核心的基础概念与要素。当我们对这些概念有了清楚的认识,并能够清楚说出这些概念之间的辩证关系时,我们就已经在数据大门的里面了,怎么样,是不是很简单?下面就让我们一步一步地深入理解这些概念的细节以及它们的应用技巧吧。第3章排列组合与古典概型

记得我在上中学和上大学的时候,有一些身边的同学就抱怨:“真不知道这些定理们都是哪儿来的,是天上掉下来的还是哪个数学家哪天睡觉做梦突然梦见的”。大家听了不住地发笑,有的同学则忍俊不禁,捂着嘴点起头来(图3-1)。图3-1 对数学定理感到疑惑

在我印象里,高中的时候当时其实有不少同学的数学成绩还是相当不错的,但是也会偶尔发发牢骚,“每个公式我都背得很熟,每个题我也都会做,我就是不知道将来这些东西能干什么用……”

还有的朋友对数学确实有兴趣,但是看到复杂的公式就两眼发花、瞳孔放大,抱着《概率论》、《高等数学》这些大部头的书满头大汗,难以入定。不知道你身边的同学朋友里有没有对数学又爱又恨的人。

其实数学本身本不应是高高在上的学科,它来源于人类的生产生活,也扎根于人类的生产生活,它本身无处不在,只是我们早已习惯了它以孤傲的脸孔出现在书本上,才让我们感到格外地陌生和疏远。我们有没有尝试着重新用更平和和更朴实的目光再一次认识一下这些和我们本应水乳交融的平民数学?我们需要平民化的数学应用,需要用更为平民化的语言把简洁生涩的公式定理表述得更加接地气。3.1 排列组合的概念3.1.1 公平的决断——扔硬币

排列组合是本书介绍的第一个概率论概念,也是在高中学过的一个概率学的入门概念。概念记不清了也不要紧,现在回忆一下在中学学过的排列组合都有哪些经典问题来着。

首先是扔硬币(图3-2)。图3-2 排列组合的经典场景——扔硬币(见彩插)

如果一个匀质的硬币——也就是扔出正面朝上和反面朝上各有一半可能性的硬币,我们连扔3次,产生3次朝上的可能性有多大?

这个计算应该不算难,首先每一次扔出,每一个面的可能性是一样的,即正面1/2的可能性,反面也是1/2的可能性。

那么第一次扔,正面朝上是1/2的可能性,反面朝上也是1/2的可能性。

在第一次正面朝上的情况下,第二次扔,正面朝上的可能性仍然是1/2,反面朝上也是1/2的可能性。(即正正,正反。)

而在第一次反面朝上的情况下,第二次扔,正面朝上的可能性仍然是1/2,反面朝上也是1/2的可能性。(即反正,反反。)

也就是说连扔两次,两次结果为“正正”、“正反”、“反正”、“反反”的可能性都是完全一样的,各是1/4。

以此类推,连扔3次,3次都是正面朝上的可能性应该为1/8,即概率为1/8或12.5%。也就是说,3次朝上分别为“正正正”、“正正反”、“正反正”、“正反反”、“反正正”、“反正反”、“反反正”、“反反反”。这几种的可能性是一样大的(图3-3)。图3-3 正反面朝上的可能性

我们可以想想在生活中的例子,扔硬币和扔骰子很多时候都作为大家凭运气讲公平的一种裁决手段,如两个人打赌赌单双数或者大小数,4个人打麻将决定抓牌位置,我们都会借助硬币或者骰子这样的几率产生均等的工具来将公平进行到底,当然那些手法出众或者出老千的情况除外。

在影视作品里曾看到过一些赌徒为了让自己扔骰子掷出6点的概率增加而在6点的正对面放置铅弹一类的重物,使得骰子的6个面中6点被掷出的几率远高于其他几面(图3-4)。而一旦被人识破,该赌徒则会被其他赌徒殴打甚至是杀害。显然,在事先得知骰子被做了如此手脚之后,是不会再有兴趣和该赌徒博弈的,因为掌握这种严重不对称信息的人会成为不败的赢家,因为这种机会的均等性被破坏了,造成极大的“不公平”。图3-4 “不公平”的骰子

如果一个随机试验所包含的单位事件(就是刚才说的3次朝上分别为“正正正”、“正正反”……这其中每一种情况都是单位事件)是有限的,且每个单位事件发生的可能性均相等,则这个随机试验叫做拉普拉斯试验,这种条件下的概率模型就叫古典概型。古典概型也叫传统概率,该定义是由法国著名数学家拉普拉斯(Laplace)提出的。

这种使用穷举有限多个可能性,并且根据可能性在所有事件中所占比例求出可能性的问题,就可以使用排列组合的方式来进行计算。3.1.2 非古典概型

上述“古典概型”的特点是“包含的单位事件是有限的,且每个单位事件发生的可能性均相等”。单位事件指的就是抛出一个“正正正”或者“正正反”这种一个确定的试验结果的事件。可能性均等就是“正正正”、“正正反”……一共8种情况,每种情况产生的机会是一样的。

那么是不是也有不符合古典概型的反例呢?也就是说“包含的单位事件不是有限的或每个单位事件发生的可能性不均等”则不算是古典概型,有这样的例子吗?

有的。首先,刚刚提到的赌徒改造骰子的例子就是“每个单位事件发生的可能性不均等”的例子,那么这种情况下就不能使用穷举、排列组合的方法进行计算,算出来也和试验结果不一致;再者,还是使用骰子掷数的例子,用两个骰子来掷。因为每个骰子的掷出范围为1~6个点,所以两个骰子扔出的范围是2~12个点。但是需要注意,虽然骰子掷出每个点的机会是一样的,但是2~12这11个点产生的可能性不是一样的。两个骰子都扔出1才产生2,所以概率为1/36,同理12的概率也是1/36。但是6就不一样了,两个骰子的点数可以为1和5、2和4、3和3、4和2、5和1,每种情况的概率都是1/36,相加得5/36。所以对于两个骰子扔出2~12个点,每个点产生的概率可就不一样了,那每个点的概率必然不能是1/11。好在产生2~12这11个点的每种情况中,各自是由两个古典概型组成的,还能分解以后各自求解(图3-5)。图3-5 两个骰子掷出的点数

而“包含的单位事件不是有限的”这种例子其实也很多,例如,我想知道我每天出门碰到熟人的概率。这种问题用古典概型也是不能解决的,所有单位事件的定义非常复杂,每个单位事件也不能通过类似扔骰子这么简单的事情就描述清楚,还有时间、地点等各种复杂的情况,当然是没有办法用古典概型来获解的。3.2 排列组合的应用示例3.2.1 双色球彩票

双色球彩票在中国的历史不算短了,大概是从2003年2月就开始在中国联网发售。虽然有很多人都在诟病说双色球开奖的方式不够公平透明,但是还有相当多的彩民一直在执着地研究双色球开奖的规律(图3-6)。图3-6 双色球

这里只从数学的角度来看一下双色球彩票的头奖和你花两块钱下注购买的彩票一致性的概率,也就是人们平时说的买一注然后就能中头奖的概率有多大。这里必须先明确一个前提,就是确实没有人对彩票购买和抽奖小球的抽出做干预,换而言之,就是你下的这一注是在完全不知道开奖结果的情况下买的,抽奖也是在每个球被抽出的概率一样的情况下进行的。

我们购买一注彩票的时候,首先选择红球,从01~33共33个号码中选择6个号码。再选择蓝球,从01~16共16个号码中选择1个号码。6红1蓝一共7个号码组成完整的一注彩票。

最终抽奖的时候也会是从01~33共33个红色号码中选择6个号码,再从01~16共16个蓝色号码中选择1个号码。6红1蓝一共7个号码组成完整的一注头奖彩票。

如果选择的6红1蓝和头奖的6红1蓝完全一致那就算中了头奖,奖金怎么算……这个大家去问福利彩票中心吧,咱们这里只算概率。

先算算挑选6红1蓝一共有多少种挑法。

首先先从33个红球中挑选6个红球,用组合的方式计算:

也就是1107568种选法。

再从16个蓝色球中选1个,一共有16种选法。

这样6红1蓝的选法一共有1107568×16=17721088种。

举个形象点的例子,老天爷在想1到17721088中的一个整数,你也在想1到17721088中的一个整数,你们俩想的完全一样的概率有多大?没错,是1/17721088,大约是0.0000000564%的概率。

不少人说,这没关系,反正有一些破解方法。有哪些破解方法?支持以下两种方法的人比较多。

方法一:多买几种组合。

那就算算看,一共17721088种可能,全部买下来——也就是俗称的全餐彩票,一共要花35442176元人民币。奖池是不是在所有中头奖的人平分后还能至少分到手这么多不好说(加上二等奖、三等奖一共能领到多少钱都可以自己算)。按照比例缩小一些试试呢?比如买一半,那就是中奖概率变成1/2——要花17721088元,还有一半的可能性是不中。其他比例读者可以自己计算。每一种比例在降低投入的同时,也在降低中奖概率。所以这种方式并没有提高买彩票的投入产出比。

方法二:只买一种组合,坚持到底,就能提高胜率。

有这样思想的朋友估计是这么一个思路,就是这一次这种组合不中,由于每种组合概率一样,所以在多次随机过程里前面出现过的组合后面出现的概率就低,前面没出现过的组合后面出现的概率就高。有这样思路的朋友,想想这样一个事情,交通事故其实是一个典型的随机事件,平均每个月发生交通事故的数量是相对“固定”的,只是发生的地点、发生的时间、发生的车型、涉及的人可能不同而已。

那么如果要避免交通事故,就要先人为制造一些无害的交通事故,造够了次数,这个月就不会再发生交通事故了,大家也可以安心上路了。这个逻辑就变得顺理成章,但是事实真的会是这样吗?

这种随机产生的每一次结果之间其实是独立的概率,换句话说每一次结果是不会影响前后随机事件里产生的结果的,也不会影响到前后的随机事件的结果。在静态概型里,这个结论请大家牢记。也有人表示怀疑,说我明明在一些事情里看到前一件事发生后会影响后面事件发生的可能性,那这种事情怎么解释。这种事情,首先不是古典概型的范畴,如果要归类的话可以算作条件概率的研究范畴,条件概率在后文会详细讲解。3.2.2 购车摇号

北京是一个以拥堵著称的城市,拥堵的问题也是由来已久,而且几乎是越来越严重。在万般无奈的情况下,专家们最后祭出了一个大招——摇号。

摇号是一个带有比较浓郁配给制色彩的手段。大概的形式就是,每个已经具备摇号资格的人登记一下身份证号码,所有登记过身份证号码的人都放在一个大“池子”里,然后每两个月通过“随机”的方式产生20000个号码,这20000个幸运儿就是中签者,就拥有了购买一辆汽油动力汽车的配额(图3-7)。图3-7 汽车摇号

中签概率多大呢?有人想到直接用20000除以1420000就是自己中签的概率。但是为什么是这么算呢?有理论依据吗?下面试着推导一下。

以真实数据为例,2015年9月这个“池子”里大约有1420000个号,从里面选出20000个号,一个人中签的概率有多大?稍微想想看,这个数值也不会是,因为不是要求1420000个号里找出20000个号一组的不同组合。

在没有其他政策进行干预而将1420000个号码进行等概率选出的情况下,选出20000个号,而自己的号正好在其中。相当于用一个1420000面的骰子投掷一次选出一个号,然后把这个号抹掉,再用剩余的1419999个号做成一个1419999面的骰子,再投掷一次,选出一个号,然后把这个号再抹掉……一次一次下去,直到20000次为止。实际相当于这么一个过程。

想不清梦的话试试用小一点的数字找找感觉。

如果是有3个人参与摇号,摇出2个,是怎么计算呢?

按照这种扔骰子的方法来玩,假设我们有个3面的骰子(其实真的是没办法做出一个3个面的等概率骰子,我们就当真的能做出来好了)。第一次我被骰子选中的概率为1/3,还有2/3是没被选中的概率。在没选中的情况下,换2个面的骰子,这一次我被骰子选中的概率为1/2。

算算我能被选中的概率一共是多少吧,

如果是6个人参与摇号,摇出3个,是怎么计算呢?

仍然用扔骰子的方法,同理:

第一次,选中的概率为1/6,没选中的概率为5/6,现在该换5面的骰子了。

第二次,选中的概率为1/5,没选中的概率为4/5,现在该换4面的骰子了。

第三次,选中的概率为1/4,没选中的概率为3/4,结束。

被选中的概率是多少呢?

如果有兴趣可以继续用其他例子去算,我们现在直接说结论了,这种情况其实就是用掷骰子的次数除以最开始骰子的总面数,也就是一共选出的次数除以全样本空间的大小。20000/1420000这个答案是没有问题的,也就是中签率为1.4%左右,一年摇号6次的话,估计运气最差的人要11.8年才能抽中,听到这样的消息现在整个人都不好了。不过别忘了,每个月这个“池子”还在变大,究竟等多久可能只有老天知道了。我们这里只从理论上讲解了计算的原理,但是和实际的计算方法还是有区别的,毕竟实际的遴选规则也是在不断变化,例如对长时间未选中的号码加遴选权重,这样计算起来更为复杂一些。3.2.3 德州扑克

七零后和八零后的朋友估计对香港影星周润发很熟悉,尤其是发哥在《赌神》系列中风流倜傥的表演给人留下很深的印象,其中最后发哥和大BOSS单挑基本玩的都是“梭哈”——英文名称Show Hand。梭哈和我们今天要说的德州扑克在牌点大小比较的规则上是非常近似的。

德州扑克是很多年轻人都喜欢的扑克竞技游戏,全称是Texas Hold’em Poker,中文简称德州扑克。这里研究一下各种牌型出现的概率。

对于不熟悉德州扑克规则的读者来说,还是有必要先简单描述一下德州扑克的规则。

一张台面至少2人,最多22人,一般是由2~10人参加。德州扑克一共有52张牌,没有王牌。每个玩家分2张牌作为“底牌”,5张由荷官(专业发牌的人)陆续朝上发出的公共牌。开始的时候,每个玩家会有2张面朝下的底牌。经过所有押注圈后,若仍不能分出胜负,游戏会进入“摊牌”阶段,也就是让所剩的玩家亮出各自的底牌以较高下,持大牌者获胜。

第一轮是在每位玩家只能看到自己2张底牌的情况下加注。

第二轮是在每位玩家能看到自己2张底牌,以及桌面上3张公共牌的情况下加注。

第三轮是在每位玩家能看到自己2张底牌,以及桌面上4张公共牌的情况下加注。

第四轮是在每位玩家能看到自己2张底牌,以及桌面上5张公共牌的情况下加注。

最多只会经历这4轮,一局游戏结束。

游戏的输赢就是看玩家自己的2张底牌与桌面上当前已开出的公共牌,一共挑选出5张,组成最“大”的牌,哪位玩家的牌组合最“大”,哪位玩家就获得胜利。

牌的组合大小怎么定义呢?

对博弈类游戏有所了解的读者可能会有一些常识性的体会——组合出现的可能性越小的通常牌越“大”。那德州扑克里都有哪些组合呢?

第一等:同花大顺。相同花色的A、K、Q、J、10(图3-8)。

第二等:同花顺。相同花色的5张牌相连。例如,红桃6、7、8、9、10,黑桃9、10、J、Q、K等(图3-9)。图3-8 同花大顺图3-9 同共顺

第三等:四条。4张相同点数的牌。例如,4张8,4张Q等(图3-10)。

第四等:满堂红(也叫葫芦)。3张相同点数的牌,再加2张相同点数的牌。例如,3张5和2张9,3张K和2张10等(图3-11)。图3-10 四条图3-11 满堂红

第五等:同花。5张相同花色的牌,但不是同花顺。例如,5张牌都是方块,5张牌都是梅花等(图3-12)。

第六等:顺子。5张点数相连的牌,但至少包含两种花色。例如,方块2、方块3、梅花4、红桃5、红桃6,红桃8、方块9、梅花10、红桃J、黑桃Q等(图3-13)。图3-12 同花图3-13 顺子

第七等:三条。3张相同点数的牌,再加2张不同点数的牌。例如,3张9和1张3、1张K,3张Q和1张A,1张6等(图3-14)。

第八等:两对。2张相同点数的牌作为一对,两对牌,再加1张单牌。例如,2张5、2张9、1张A,2张10、2张J、1张K等(图3-15)。图3-14 三条图3-15 两对

第九等:一对。2张相同点数的牌作为一对,一对牌,再加3张单牌。例如,2张10、1张7、1张8、1张9,2张A、1张K、1张9、1张5等(图3-16)。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载