冰与火之歌:数据分析的前世今生(二)
一场与上帝的战斗
2017年5月27日,浙江乌镇,人机对弈。世界第一的柯洁在颤抖,他皱着眉,仿佛听到眼前黑白子之间刀来剑往的杀伐之声。俄而,他叹口气,捡两枚旗子丢到棋盘上,认输了。这个身穿黑衣的青年,狂傲不羁的天才,躬身站起,望了眼兵败如山倒的棋局,似乎又有些释然。没有惊喜,没有奇迹,当围棋上帝AlphaGo一骑绝尘时,他明白自己也走到十字路口上。
围棋,是一个靠直觉而非计算的游戏,而AlphaGo是在尝试“用计算机拟合直觉”。具体说就是,通过深度神经网络,模仿人类下围棋这种直觉行为。而深度神经网络这种算法的实现,则依赖于对海量数据的挖掘与分析,d也就是我们接下来要讲的大数据分析。
大数据分析的优点
在讲大数据前,让我们回顾上一篇冰与火之歌:数据分析的前世今生(一)文末提到,基于统计学的数据分析有一些局限性:
- 对数据的精确度要求很高
- 很难做到实时分析
- 无法回答数据搜集时未考虑的问题
而大数据能近乎完美地解决上述问题,解决的原因,我们可以从大数据的三个特征进行分析:
海量数据规模
举个不太严谨的例子,假如我们要预测2017年北京高考数学平均分,方法是找出历年北京高考数学平均分与试卷难易度的关系,再根据2017北京数学卷的难易度,算出平均分。
如果是统计学,因为无法处理海量的数据,则只能采用随机采样的原则,从每年的学生中随机抽取100人作为样本。假设有1个人的成绩录入出错,则误差为0.01。
如果是大数据,则将北京的6万考生全部作为处理数据,假设有100个人成绩录入出错,则误差为0.002。
从上面这个例子可以看出,统计学由于数据量小,一颗耗子屎打乱一锅粥。而大数据的数据规模如此庞大,所以允许数据有一定误差。
动态数据体系
大数据的采集、存储、处理都是实时进行的,所以能实时分析。而统计学的数据分析,则依赖于确定问题,再根据问题去搜集数据,数据的搜集无法做到实时,分析自然也无法实时。有兴趣的朋友可以看一下我的上一篇文章,这里不再赘述。
多样数据类型
从新泽西州的汇款诈骗说起
Xoom是一个专门从事跨境汇款业务的美国公司,它会分析一笔交易的所有相关数据。2011年,它注意到用“发现卡”从新泽西州汇款的交易量比正常情况多一些,于是启动报警。Xoom公司的首席执行官约翰·孔John Kunze)解释说:“这个系统关注的是不应该出现的情况。”单独来看,每笔交易都是合法的,但是事实证明这是一个犯罪集团在试图诈骗。而发现异常的唯一方法就是,重新检查所有的数据,找出统计学分析法错过的信息。
大数据强调搜集所有的相关数据,所以能发现“未知的问题”。而传统的统计学分析,则只能等到问题爆发,才能回溯寻找原因,继而进行事后分析。孰优孰劣,自然一清二楚。
什么是大数据分析?
定义:对规模较大的数据进行分析,通常使用一些算法结合海量数据来预测某些事情发生的可能性
初看定义,同学们可能会很失望,看似深奥的大数据分析竟然可以用这么一句简单的话来概括?然而,越是简单的道理,实际操作起来往往越难。大数据分析,简单可以分为以下4步:
收集
数据收集的核心:在于收集的最好是“全量”数据,至少是尽可能多维度的数据
屁股坐姿与防盗系统——数据维度
很少有人会认为一个人的坐姿能表现什么信息,但是日本先进工业技术研究所的教授越水重臣认为可以。当一个人坐着的时候,他的身形、姿势和重量分布都可以量化和数据化。越水重臣的团队通过在汽车座椅下部安装总共360个压力传感器以测量人对椅子施加压力的方式。把人体屁股特征转化成了数据,并且用0~256这个数值范围对其进行量化,这样就会产生独属于每个乘坐者的精确数据资料。
在这个实验中,这个系统能根据人体对座位的压力差异识别出乘坐者的身份,准确率高达98%。有了这个系统之后,汽车就能识别出驾驶者是不是车主;如果不是,系统就会要求司机输入密码;如果司机无法准确输入密码,汽车就会自动熄火。
如果仅仅只收集身形数据,或者只收集体重,系统都无法准确识别人的身份。大数据分析非常依赖数据的维度,数据的维度越多,数据量越大,大数据的价值也会倍增,可控分析的内容也会越多。
数据分类
IDC早在2011年的调查报告中就提到,非结构化数据占未来十年新生成数据的90%。所以,数据的收集,不单单是对结构化数据的收集,也包括非结构化数据。
数据类型 | 数据定义 |
---|---|
结构化数据 | 即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据 |
半结构化数据 | 介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据 |
非结构化数据 | 不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等 |
存储
以微信为代表的社交网络,和以淘宝为首的电子商务,把人类社会带入了一个以“PB”(1024TB)为单位的结构与非结构数据信息的新时代。
目前关系型数据库在可缩放方面几乎已经达到极限,无法处理如此量大、并且不规则的“非结构数据”的。而解决方案就是使用键值(Key-Value)存储数据库,这是一种 NoSQL(非关系型数据库)模型,其数据按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。
下图是5种用于大数据处理的存储数据库:
处理
数据处理的技术可以使用云计算,而处理数据的方法,便是利用算法结合数据预测某些事情发生的可能性。比如这两年风头正劲的今日头条,就是一个经典例子。它为用户推荐有价值的、个性化的信息,本质就是记录你的阅读内容、习惯、口味等,将这些数据标签化,再利用协同过滤、基于内容推荐等推荐算法,就能推荐你想看的新闻了。
以大数据分析的一个分支,机器学习算法为例,整个流程如图所示:
下面,我会最经典的朴素贝叶斯分类算法来给大家讲解上面的流程。
问题建模
对现实问题进行抽象
假设豆瓣的老大久闻你的大名,给你提了这样一个需求:
这时,你会对需求进行分析,提取出以下两个关键词:
-
不同用户:
A喜欢的电影B可能不喜欢,所以我们的模型一定是基于用户的
-
喜欢的电影:
什么叫喜欢?什么叫讨厌?所以,我们需要量化喜欢的标准,最直接的办法就是用评分来做,5分代表非常喜欢,1分代表非常讨厌。
根据上述分析,我们就可以看出问题的本质,即我们要实现的东西——一个基于用户的电影评分系统。现在,我们来看看实现这个电影评分系统的两种方案:
- 方案一:根据用户之前评分高的电影,推荐相似的电影
- 方案二:A、B两个用户喜欢的电影很相似,可以给A推荐B喜欢的电影
第一种方法,就是基于内容的推荐算法;而第二种方法,就是基于用户的协同过滤算法。假如我们采用第一种方案,问题就可以被转化为下列表达:
- 计算电影内容之间的相似度,两部电影越相似,它们的评分越可能相同
选择模型
朴素贝叶斯概述
众所周知,朴素贝叶斯是一种简单但是非常强大的线性分类器。它在垃圾邮件分类,疾病诊断中都取得了很大的成功。举个例子,你在街上看到一个黑人,我问你你猜这哥们从哪来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。(篇幅所限,这里没有讲朴素贝叶斯的特征独立性以及数学原理,有兴趣的朋友请自行百度)
能否适合电影评分系统?
朴素贝叶斯是一个线性分类器,那么意味着它也能将电影进行分类:
好电影 | 较好电影 | 一般电影 | 较差电影 | 差电影 |
---|---|---|---|---|
5 | 4 | 3 | 2 | 1 |
准备数据
这个不难,豆瓣老大发了一份电影评分资料给你:
用户 | 已看电影 | 评分 |
---|---|---|
阿强 | 加勒比海盗5 | 4 |
阿强 | 神奇女侠 | 5 |
阿强 | 满城尽带黄金甲 | 1 |
小张 | 摔跤吧爸爸 | 5 |
…… | …… | …… |
电影名 | 地区 | 投资 | 风格 |
---|---|---|---|
加勒比海盗5 | 美国 | $3亿 | 冒险 |
神奇女侠 | 美国 | $2.5亿 | 冒险 |
满城尽带黄金甲 | 中国 | $0.8亿 | 战争 |
摔跤吧爸爸 | 印度 | $0.5亿 | 励志 |
…… | …… | …… | …… |
抽取特征
假设我们选取三个特征:地区、投资、风格,并对特征进行数字化处理:
- 地区:美国 1 中国 2……
- 投资:0:0-1亿 ,1:1-2亿 2:>2亿
- 风格:冒险 1 战争 2……
训练模型
假设阿强对100部电影进行评分,我们选择其中80部电影作为训练样本,以此训练朴素贝叶斯模型,则对应下列流程图的第二步与第三步
继续以阿强为例,在他看过的80部电影中,评分为5分的电影有20部,则对应的P(5)=20/80=25%,同理可得:
电影评分 | 评分概率 |
---|---|
5 | 25% |
4 | 20% |
3 | 20% |
2 | 20% |
1 | 15% |
在计算每个类别条件下各个特征属性划分的频率(由于P(x)对于所有类别来说是常数,所以只用计算分子):
P(美国片|电影评分=5分)= P(所有5分电影中美国片的占比)* P(5)
……
至此,模型训练完毕,我们就可以用来预测阿强未看过的电影评分了。篇幅所限,如果对整个过程有兴趣的同学请自行百度。
模型优化
我们可以看到,通过上面的模型只能得到整数型(5、4、3、2、1)的电影评分,所以可能出现下列两种情况:
- 用户对电影A的评分是3.6分,对电影B的评分是3.4分,但是利用朴素贝叶斯分类给出的电影评分电影A就是4分,电影B就是3分;
- 通过条件概率的计算,发现某电影评分为5分、4分、3分、2分、1分的概率分别为20.5%,19.5%,20%,20%,20%,那么根据朴素贝叶斯分类的原理,该电影的评分为5分,但实际该电影的评分很可能是1分
所以,从上面的那个例子可以说明,这是一种比较粗糙的分类方式,更适用于非A即B的分类方式,并不能准确地反应用户对一部电影的喜好程度。所以,这里就涉及到可以引入数据期望的方法,至于具体的优化方式,不再赘述。
应用
飓风与蛋挞的故事
沃尔玛公司注意到,每当在季节性飓风来临之前,不仅手电筒销售量增加了,而且POP-Tarts蛋挞(美式含糖早餐零食)的销量也增加了。因此,当季节性风暴来临时,沃尔玛会把库存的蛋挞放在靠近飓风用品的位置,以方便行色匆匆的顾客从而增加销量。
沃尔玛非常聪明的将数据分析的成果应用到他们的销售策略中,而你们如果想要成为一名数据分析师,也应该不断在实践中去运用数据分析的成果,才能真正成长起来。
写在最后&参考书目
无论是传统的统计学分析,还是时髦的大数据分析,它们的本质都是一脉相承的:对数据价值的挖掘与探索。只有在长期的实践中不断培养对数据的敏感性,不断努力向前,你才能成为一名优秀的数据分析师/产品运营/产品经理。《冰与火之歌:数据分析的前世今生》系列就到这里,下一期我们会带来Google、及策都在使用的“归因分析”系列。欢迎关注及策云课堂,也可以点此免费试用我们的产品。
以下是这个系列文章的参考书目,可以一读:
- 《大数据时代》
- 《深入浅出数据分析》
- 《金字塔原理》
- 《增长黑客》