分享

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

 CharlseShan 2016-05-23

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

5.抽样和数据量


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

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

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

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

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

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

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

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

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

教科书上的练习过于纸上谈兵,现实中很少有干干净净的数据摆在你面前让你用各种算法去做;实际上数据清洗会占到真正工作的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语言实战》

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

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

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

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

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

举个例子

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

在这之外的数据点,我们认为是异常值(<1%的概率会出现的值)

这里有个假设,那么就是你认为样本数据是正态分布的。

然而未必

另一个例子,比如说我们在做天文观测的时候,要计算落在CCD上的光子的个数

计数的变量,大多数情况下,并非正态分布,而是泊松分布,那么异常值就不可以用刚才说的方法来做

比如,网页的点击数,等等

当然,有泊松回归可以解决类似问题

在回归的过程中,会有对变量进行幂次变化的交互过程,

比如 y=x^a

如果前辈有人已经产生了这样的模型,通常我们会拿来用,但是通过拟合的方式,来确定参数a

使用这种模型,我称之为经验模型

第三种模型,因为我是物理出身的,往往觉得会是究极一些,就是物理模型

虽然一般来说用不上吧

实际上在大数据行业的现阶段,重关联,不重因果,也就是往往会用统计模型去研究大数据中的价值

一方面是因为,统计模型够用了,还有很多价值没有被挖掘;

另一方面是,如此大量的数据,使用物理模型去研究,计算量过于昂贵

然后物理模型非常有用,可以帮我们来判断什么样的分析方式更合适

举个例子

价格

物价也好,股价也好,现在都有比较成熟的物理模型验证了,价格是对数正态分布;

比如人的满意度,也并非线性的,也是对数形式的

也就是说,你如果想让另一个人对你的满意度提高1倍,你对他的好大概要提高10倍,也就是一个量级。。。。

追妹子的同学注意了,物理模型教你控制成本。

当然了,实际上

物理模型在历史上的建立,也是从统计模型到经验模型,逐步建立的。。。

好,关于这个话题呢,我们总结一下,就是拿到数据之后分析和挖掘的方向

最主要的任务,就是要探究变量之间的关系

不管是数据分析也好,还是数据挖掘的各种算法也好


5个话题

抽样和数据量

这点刚才有位同学提到过,如何检验数据质量

这里面就是抽样科学研究的问题

好的抽样,是指样本相对于总体,有代表性,样本足够大

有代表性,可以通过检查样本变量的分布,是否与总体分布一致来确认

样本是否够大,除了经验性的认为,多一个变量,就多30条记录以外,还有一个办法叫做功效分析

功效分析研究四个因素的关系,这是基于数据分析的思想(假设检验)

四个因素分别是:显著水平α,功效(1-第二类错误的概率),样本大小,和效应值

在抽样之前可以做一下这类分析,来确定这次分析是否值得。

具体内容呢,由于时间关系,大家可以参考有关资料

当然,现在大数据的一个思想,是说我要全部

所有的数据都因为采集成本低而都可以纳入囊中

那么就是另一个问题了,有了大数据平台的支持,与刚才我们说的小样本数据分析会有些不同。

但是数据工作者大多数时候,还是会遇到小样本问题

这些工作如何做,大家确实需要好好研读一下统计分析建模、概率论等书籍

今天我主要讲以上5点内容

综合起来呢,数据工作者如果想获得高质量的数据,数据建模是最重要的,而好的建模是建立在对业务的理解和抽象基础上的。



问答专区:

梁嘉骏 
统计模型确实是关联关系而不是因果关系,但是物理模型也未必是因果关系吧?老师能提供一些使用物理模型估计的关键词,工具吗?想了解一下物理模型在知识发现的应用

Guo PC 
@梁嘉骏 所谓因果,应该是指时空上的先后关系和必然性联系

Guo PC 
物理模型有时候确实可以解释这些问题

Guo PC 
当然,所有的模型都是错的,但是有时候他们是有用的”[坏笑]

刘娟
是不是以后会往研究人的情感方向发展呢

Guo PC
@张虎 MATLABRPython

张虎 
@讲师-郭鹏程?这三个你比较倾向哪个?

Guo PC
@刘娟 同意,现在很多也在研究用户行为的,关键是要等获取用户的情感数据,视频网站可以通过鼠标的轨迹来间接测量,前一阵那个云视链不是号称观察用户的眼珠子来获取用户的情感数据吗?[表情]

Guo PC 
@张虎 我最早用MATLAB,后来用R,现在网Python转,R最容易学,Python的好处是还可以直接做系统开发。。。

歪歪
在传统行业,比较关注设备健康状态,传统的方式是三个月六个月甚至是三年对设备进行专业的检查测试;同时这些设备也会有其他监测手段对某些参数进行监测,一般是一天一次;另外,与其可能相关的有天气、设备运行数据,频次在分钟级别。我们希望能从这些不同时间粒度的数据中找到与设备健康状态相关的关系,但变量颗粒的问题很是困扰

Guo PC 
@歪歪 这个我乍一看,先想到的是把粒度都归集到天,检查测试数据可以用插值的方式估计到每天,分钟级数据可以求平均到每天

Guo PC 
这个还要分钟级数据是否有比较大的日内变化

歪歪 
郭老师,有的,分钟级别的数据是电力负荷数据,有高峰和低谷的

Guo PC 
@歪歪 如果是稳定的周期型的日内变化,我感觉也可以平均,或者取代表值

Guo PC 
如峰值、中值、最小值等等

Tyntyn 
就是我现在用现实调查的数据很难做出什么结果,有没有什么研究理论一块的路子可以介绍着走一走呢?

Guo PC
有本书,叫做 市场调查 基于R语言

Guo PC 
周庭锐老师写的

Guo PC 
如果是市场调查的话,好像不太适合


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多