【回顾】大数据微课 郭鹏程:如何获得有生命力的数据

 

今天我采用微信文字的方式,大概会讲5个主题...



今天我采用微信文字的方式,大概会讲5个主题 :

1.拿数据做什么?
2.数据建模
3.业务数据化
4.分析和挖掘的方向


5.抽样和数据量
最后如果还有时间的话,我也会根据自己的经历和理解讲一讲做数据的几种职业发展途径。

如今数据行业正式火热的时候,不少公司纷纷设置数据岗位,也有很多创业公司从数据角度入手,同时,不少高校也成立了数据专业。

特别是大数据这个名词,已经被热炒了好几年。

如果大家留意的话,会发现网上很多关于大数据的课题,往往是在研究大数据平台,比如Hadoop,spark

然而从时间角度来说,数据工作者有三个角度:技术、统计、和业务

这里技术主要指的就是IT技术,从简单的分析工具,如R、SPSS,数据库,到大数据平台,如storm,spark等等

统计呢,是指建模、数学、概率统计,其中尤其以统计最为重要

业务是指,数据工作者会始终以业务为导向。从某个角度来说,数据应该是扮演辅助的角色。这个待会我们会重点讲

关于数据分析和数据挖掘,市面上有很多种教材,会讲各种各样的算法,比如回归,关联等等。然而如果真的深入到实际工作中时,会发现:

教科书上的练习过于纸上谈兵,现实中很少有干干净净的数据摆在你面前让你用各种算法去做;实际上数据清洗会占到真正工作的60%以上

相信这点不少同学会深有体会。这里顺带介绍一下我的经历,本科我修的是天文,但是主要的还是推导公式,跟现在我们很多大学里学的还是差不多(这点有些遗憾)。

后来对学术现状表示很灰心,就决定去社会上实践一下,于是比价勉强的做了电子工程师;然而接着发现没有受过专门训练还是很难走远,就决定去深造。

因为专业原因(为了好申请),我的博士方向选定了天文仪器,也就是说,天文背景+电子工程师背景,听上去很合适的样子。

然后就是连续n年在实验室里做仪器,运到山上去观测,然后回来分析数据,期望能够发现点什么。。。。

结果数据质量很差,打个比方是什么呢?

我们期望在一张白纸上,会突然有个黑点,然后可以兴奋的指着说,我发现了一颗星

结果实际上呢,拿出纸来,发现一片雪花

就这样好多年,很难毕业。然后就换了个做理论的导师,导师的名言是:“we never use real data. real data sucks!"

我们只用模拟数据~

然后就毕业了。。。

做的事天文统计,用计算机模拟物理模型,然后反过来分析模拟的数据,做了一堆东西。。。

有了这些经历,我对数据的质量就特别敏感,总希望从一开始就把握好数据质量,不然我们浪费的不仅是金钱和时间,还有更重要的机会。

                                              

我们现在说说第一个话题,拿数据做什么?

数据用来做什么?我大概总结了一下:记录、解释(理解)、预测、控制

记录:一个是将我们感兴趣的活动记录下来,比如日志,交易记录等等

解释:通过数据和数据之间发现的信息,帮助我们理解一些问题,比如,通过实验和分析数据,很多物理模型得以建立

预测:通过分析和挖掘数据建立的模型,可以用来在已知情况下,去预测我们感兴趣的某些变量,帮助我们采取相应的措施

控制:也是在模型的基础上,如果我们希望达到某种结果,改如何改变某些可以控制的变量。比如,我们通过调整利率可以达到管理经济的目的

数据分析和数据挖掘,就是用来从数据中获得信息、模型、知识的一系列方法

其中,根据我的理解,数据分析相对传统,一般是建立在假设检验的基础上,对已知的模型进行参数估计等

而数据挖掘,一般是指发现数据中隐含的模式,或者我们称之为知识、模型、都可以

常见的数据分析方法:如描述性统计、相关分析、回归分析等等;常见的数据挖掘方法:如分类、关联、聚类、回归等等

具体指代的是什么,有很多资料可以查,我在这里就不一一赘述了。

那么我们对这个话题总结一下的话,可以概括为: “数据-信息-知识-智慧”。这个是业内经常被拿来说的“数据金字塔”

1,3,8,15,20,25,26,30,31,20,8,4

比如这串数字,我们可以称之为数据

如果再加点内容,这个表示了某个地区一年12个月(不确定我是不是输错了)的气温,那么这个叫信息

当我们利用分析方法,发现平均气温的周期性,以及冬暖夏凉时,这个就称之为知识。至于如何应对这种周期性的气温变化,以及能对她做什么,那就是智慧了。

我个人认为,数据工作,也就到“知识”这个层面。

好,刚才说了,数据工作者就是能到达“知识”这个层面,尤其是现在,即使alpha狗这么厉害,它估计还是分不清善恶。也很难做出有创意的决策。所以数据工作者要看清自己的位置,那就是辅助决策。

当然一边是数据工作者,一边又是CEO的人是另一回事,但是也要分不同的角色去扮演。数据工作者实际工作中,是不会有人喂给你质量很好的数据的

书上那么多高大上的算法,在现实中也是难得一用的,一般是做了好几个月数据清洗,挖掘之后,啥模式也没有。



那我们就要说,数据工作者最重要的一个任务,就是根据业务去进行数据建模。什么叫做数据建模?从我个人的理解,就是要把你所面对的业务转变成数学问题(或者说数据问题)。也可以用另一句话来代替:就是要定义变量

这是我在工作中遇到的坑,看别人遇到的坑。。。。总结的经验。这里也是今天我分享的最核心的内容:

要做好变量定义,其实要涉及到好几个问题:1.对业务流程的理解 2. 对IT技术的理解 3. 对分析和挖掘方法的理解

1. 是指,如何定义变量,可以使得数据辅助主营业务增收或者降低成本,甚至有增值价值?

2.是指,这些变量是否能够被有效的收集和存储?应该使用什么样的技术?如果达不到则白搭。

3. 数据积累下来了,可以用什么分析和挖掘的方法?(这个后面也会有讨论)

举一个例子:

之前我们为12301全媒体呼叫中心做数据分析,由于没有在一开始就介入到数据建模的工作,导致后面很多问题

12301是国家旅游局的客服中心,承担游客对涉旅企事业单位的投诉、咨询,协助国家旅游局对旅游秩序进行监管。大家可以想象,它的业务模式是什么?要考虑哪些方面的需求?

这里是强调,数据建模时,一定要以业务作为导向,才能定义到合适的变量。一个客服中心,考虑N方需求:用户,企业,客服人员,系统,监管单位。

游客打电话进来,会投诉或者咨询,下一步这个中心就要把这个问题专项被投诉企业或监管部门,这是主营业务。然后还有对投诉工单进行追踪和反馈。

同时,客服中心需要自我管理,也就是要提高工作效率,也就是希望能从数据里看到客服人员的接诉状况

再同时,由于客服中心经常会使用第三方的呼叫中心系统,往往这些系统价格不菲,所以还需要使用数据来评估系统的使用状况。

数据工作者只有在了解了业务模式之后,占多多方的角度上考虑问题,从全局去找一个对所有方都优化的模型,那么工单系统中需要记载的变量就相对容易的浮出来了。

所以,这里暂且不说什么复杂的模型,光是要把实际业务抽取为变量,就需要以业务导向。

以业务为导向,以业务为导向~

当业务跑起来之后,数据以最好的姿势积累了下来之后,你的数据自然会变成价值连城的“大数据”。那么基本流程是这样的:定义变量--设计采集流程--参与系统开发--数据反馈。

数据工作者先进行数据建模,然后设计和参与业务系统的开发,然后从数据角度对业务进行反馈。。。 这样迭代。这一步,我们可以用另外一句话来概括:“先业务数据化,后数据业务化”

前半句我们已经说了,后半句实际上就是将我们的数据进行分析和挖掘,体现其价值。



因为关系比较紧密,我接着说第三个话题。业务数据化中的一些经验性原则:

首先,变量的类型

先看看变量都有哪些类型



这个图不少人应该已经看过。变量大概分为两类:类别型,和数值型。这两类其中又会再各分为两类。

为什么我们要说变量的类型,原因有两个,第一:变量类型会影响数据所携带的信息量;第二:变量类型会影响后续的分析方式。

我再给大家找一个似曾相识的图:



这幅图我不用多解释了,大家有问题可以后面再问。

那么对于变量类型,我的原则是,能够用数值型的就用数值型。原因很简单,数值型的可以做离散化,转换成类别型;反之则不成

所以我倾向于用冗余的方式去做,能用数值型,就用数值型。

好,第二条,变量的度量和粒度

举个栗子更容易说清楚,比如描述地理位置的变量。按照粒度从大到小,可以是 洲-国家-省-市-县等等。但是如果有经纬度,那我一定要经纬度

这个粒度最细。后续数据清洗的时候,我可以轻易的把地理经纬度转换成为洲-国家-省-市-县,当然这步需要借助于一些数据辞典。这个原则呢,也就是要粒度最细,精度最高的方式来采集数据。定义变量。

第三条,变量个数

这里我的原则是,取得的变量最好不相关,也就是都是独立测量的。比如说,如果有某类交易的总额和平均额,那么我取一个就好了。这点比较明显,但是有两个地方可能会有坑

1. 举个例子



那天有工人来我家安马桶测量,需要确定污水口中心到墙面的距离,理论上 R+d=D。

所以测量两个就够了,但是呢,由于污水口的中心点很难确定,通常他们都会把三个值都测量一下。如果发现等式不成立,他们会重新测量。这里就是因为有些变量的值的确定会有不确定因素,所以引入另一个相关的作为校准。

第二个坑:有时候会见到有些朋友会把一堆变量做很多计算后,衍生出很多新的变量,然后一起放到模型里去分析,这个就会出现变量之间的相关关系,也是我们希望避免的。

好,关于数据建模,大致讲这么多。

那会问,第二个坑里 为什么要避免?变量之间的相关关系?

分析数据的时候,自变量太多的话,我们首先要做一下降维处理,不然分析的难度会很大,刚才的衍生变量,实际上认为的造成不必要人为的维度的增加。当然,有些衍生变量与原变量之间是相互独立的。

什么是数据的粒度?举个例子,都是表示地点,江苏就比苏州的粒度要粗。

如果数据收得不太理想您建议该怎么做?我觉得,有条件的话重做。或者在现有数据上清理后处理。

刚才说的温度周期性会有一些启发。但是在工作中发现的总感觉是显然意见的知识?比如我们发现下雨的时候,虽然景区游客少了,但是去的游客往往更文艺一些(我们准备的导览机租的更好)。

时间粒度不同的变量如何分析?比如,分钟级别、小时级别和天级别,甚至到月级别。

原始数据特征之间一定要处理成相互独立的吗?比如用svd降维之后的特征具体含义就没了。



假设数据已经到手,先要“清洗”,清洗主要是处理 缺失值,不一致的取值,以及明显错误的值,这点咱们也不说了。脏活累活。。。。

这是对不参与系统开发的数据者的报应。。。

假设数据到手了。。。

你有一堆变量,可能是来自数据库,也可能是文本文件,excel,。。。 这些也无所谓

我们能做什么分析

第一,数据分析的任务,就是想看一下这么多变量之间是否有关系?

如果你发现木有关系,。。。。那么好了,事情基本就结束了,所有的变量都是相互独立的。。。 不相关的。。。。

然而事情并不会这样子

一般都会有关系

通过相关分析,或者更多的,也是我更推荐的,是用可视化的探索性分析,你会发现很多有趣的关联性

可视化探索分析可以给数据分析人员很多指示性的方向,定性的。

这里也强力推荐,可视化。

可视化

可视化不光是给领导看的,也不光是讲故事的,更多的是分析用的,当我们发现变量间存在相关性的时候,这时候回归基本上可以解决大部分问题。这里的回归,指的是广义的回归。



见图,图来自《R语言实战》

跑完了回归分析,基本上解释、预测、控制,很多工作就可以做了

可以说,大部分情况下,回归都可以胜任了。

我把以回归为代表的模型,称作“统计模型”

很多时候,我们使用统计模型,注重关联性,但是不注重因果

然而统计模型对数据实际上有假设的

举个例子

异常值的判断: 通常一个方法,是用样本均值加减三倍的样本方差

在这之外的数据点,我们认为是异常值(


    关注 大数据分析挖掘


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册