前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向产品经理的数据预处理

面向产品经理的数据预处理

作者头像
用户1682855
发布2018-06-08 11:28:34
5590
发布2018-06-08 11:28:34
举报
文章被收录于专栏:前沿技墅前沿技墅
本文作者 李鑫

于中国科学技术大学获计算机科学博士学位,悉尼科技大学访问学者,大数据分析与应用安徽省重点实验室研究员,中国互联网协会青年专家。现任科大讯飞研究院研究主管,先后负责大数据与人工智能技术在教育、脑科学等领域落地的业务,在国际知名学术会议与期刊发表论文近30篇。

数据分析和挖掘领域有一句话叫作“Rubbish In,Rubbish Out”。意思是,对于算法和模型来说,如果输入的数据是低质量的,输出的结果质量也高不到哪里去。因此,对数据进行预先处理十分重要。

数据预处理中的“预”表示预先、预备、预热,指明了处理的时机,表明要从技术上为接下来的工作做些准备,也使整个团队在思想上经过了kick-off(项目开机仪式)之后能够重视起来。预处理的内容也包罗万象,大致说来包括清洗、集成、变换与规约。下面一起来看。

  • 淘洗数据沙砾(数据清洗)

大部分数据就像砂砾一样,要从中找到金粒一般有价值的数据,才能够做出卓越的数据产品。在海量数据中,许多数据是有缺陷的。这样的缺陷主要体现在数据项有缺失值,数据值出现异常,数据之间没有归一化从而不具有可比性等。

  • 缺失值

对于很多产品中并非必填的用户信息来说,由于填与不填获得的产品与服务前后差异不大,因此用户往往会忽略填写,甚至进行一些恶作剧,产生异常值,造成数据缺失。对待数据缺失要分三步走,分别是定、删、补。

定就是要定性与定量了解数据的情况。对于已经收集回来并存储在数据库中的数据,了解数据库中哪些字段有缺失,缺失比例如何,这是一种定量的了解。明确有缺失数据的字段重要性如何,这是一种定性的描述。定量的描述相对容易进行,定性的描述则需要与业务场景相结合。

缺失的数据项就像是后进的士兵,要么丢弃,要么拉他一把。删字段便是丢弃的策略。如果一个字段对于后续的业务没有太多的帮助,便可以直接删除。有的时候,即便一个数据项目对业务很有帮助,但若难以直接或通过间接方式补齐,也只能作罢。

对于数据补充来说,有三个方式。一是业务知识/经验填充。例如,我们可以根据学生6~7岁上学这一常识对相应年级学生的年龄缺失情况进行补全。二是使用均值、中位数、众数进行填充和补全。以均值为例,我们可以使用全体用户的收入均值来补全那些尚未填写收入的数据。三是使用其他渠道补充。很多数据包含一些隐性的意义,例如手机号可以反映用户的归属地。

  • 异常值

收集到的数据来自于采集,旦通常很难保证所有采集到的数据都是统一的。这种不统一性会为数据处理带来冲突,进而产生异常值。从整体上来说,数据出现异常主要体现在四个方面,分别是格式、字符、合理性与一致性。

格式不统一包括时间日期、数值以及其他一些固定格式的差异。例如,可能会出现多种日期表示格式——

“2017-3-14”“2017/3/14”以及“14/Mar/2017”

遇到这样的情况就要使用统一的方式来进行规整,如使用UNIX时间戳。

以姓名为例来说明字符不统一。有的时候可能有半角空格与全角空格的区别,有时由于用户填写错误或者后台处理程序读取与编写的错误,使得姓名、年龄、手机号码等位置错乱,这也势必使数据分析多了一层障碍。

很多时候数据并没有缺失或异常,但却由于不符合常理而被审查清洗。例如,年龄填写200,手机号码填写13000000000等。一般情况下,产品经理可以对数据进行一些常识性的推理,但在具体的业务场景下,还应该尽可能地给出更多检验其是否合理的约束条件。

在一些情况下,不同字段间的数据有相互印证的可能,这便是一致性的体现。譬如年龄或出生年月数据与身份证号,就可以相互对照检查数据正误。

  • 归一化

这里说的“归一”来自于英文normalization,本质是指将多个有量纲的数变成一个没有量纲的数。换言之,就是把绝对的数量改变成相对的数量。

怎么理解绝对变相对,有量纲变无量纲呢?假设一个班里有三名同学,身高分别是100cm、90cm与95cm,这里的量纲指的就是单位,即厘米(cm)。当需要变为无量纲的情况时,就可以将上述三位同学的身高数据转化成1.0、0.9与0.95。经过这样的变换,我们可能并不清楚这些数值的意义,但却能很清晰知道它们的相对大小和比例关系。

除了去量纲,进行归一化还有一个好处,就是避免极值问题。例如一个统计指标是10,而另一个是100 000,如果要在同一个图标上进行展示,则几乎看不到10这个数据,因为已经被10 000倍的比例所稀释了。而如果进行归一化,就可以缩小这样的比例差距。我们可以采用log运算进行非线性归一化,就变成了——

log(10)=1<log(100 000)=5

这样两个数在图标上就可以等量齐观地进行展示了。

  • 聚细沙成佛塔(数据集成)

在大数据时代,我们时常听到如打通数据孤岛、链接数据块、横向贯穿数据烟囱等概念。这些概念虽略有差异,但其都包含同样的含义,即数据分散不如数据汇聚在一起时价值高。要想把不同孤岛数据汇聚在一起,就必须解决数据的聚变现象,而发生数据聚变的情况有两种,一是指向同一实体,二是出现冗余。

  • 实体识别

实体就是名词,人名、地名、物名都是实体。在计算机领域进行实体识别是一项复杂的工作,我们需要清楚在数据清洗的过程中应如何对待实体。大致说来,在数据清洗的时候需要把两个原本不是同一内容的实体区别开,也需要把原本是同一内容的实体整合起来。

有的实体有着相同的名称但意义却不同。例如苹果既可以代表手机也可以代表水果。再比如张亮是一个很常见的名字,但是它表示不同的实体。

有的实体可以用多种名称表示,但意义相同。例如“李白”和“诗仙”指的是同一个人,我们要将这些称谓与之真实姓名对应起来。

用于描述同一个实体的属性有的时候可能会出现单位不统一的情况,也需要统一起来,计算机在进行处理的时候是没有量纲的,如1200cm与1.2m,要么统一量纲,要么进行归一化。

  • 冗余性识别

在数据极度丰富的时代,数据量过大已经是被公认的事实。产生数据冗余性大致有两个原因,一个是无意中存多了,一个是故意存多了。

对于无意存多了,举个最简单的例子。在 2016 年下半年的统计数据中,QQ和微信都声称自己的月活用户有8亿多,但这里面必然有重合的,还有一个人有多个账号的情况。

还有一种情况就是故意存多了,主要是为了防止灾害而做的备份。将数据放在一个机器上不安全,为防止被黑客黑,被自然灾害弄垮等,于是要复制多份。这些数据放在一起的时候,也要注意去重备份数据。

要想解决数据冗余性,可以从两个方面下手,一个是解决字段冗余,另外一个是解决样本冗余。字段冗余就是指另外一个字段可以从某个字段中推导出来,比如年龄这个字段就可以由身份证或者出生年月这个字段推导出来。而样本冗余就是上述的数据冗余,这个时候需要做的就是识别相同的实体并加以合并。

  • 换个姿势再来一次(数据变换)

从砂砾中淘出来的金子往往都是碎金,熔合成金块后也并不能如我们的意。只有经过锤炼,才能够将其变为配件、饰品等出入商场柜台的商品。对于数据变换来说,主要有两点,一是离散化,二是属性构造。

  • 离散化

离散化就是将数据变为离散的状态。离散化共有四种形式,分别是简单离散、分桶后平滑、聚类离散、回归平滑。

例如将年龄段分成幼儿、青年、中年与老年,这就是简单离散。即通过定义一些划分规则,将原来连续的数据划分成不同的类别,从而将数据离散化。

所谓分桶就是先根据数据的情况设置一些阈值,如收入有1k,2k,3k,...,10k,我们就可以划分出——

桶1(1k~3k),桶2(3k~5k),桶3(5k~7k),桶4(7k~9k),桶5(9k+)

这样原来的十个收入数据就会落到5个桶中,在每个桶中可以分别使用落入该桶中所有收入的平均数、中位数以及边界值来替代桶中所有的数值,这三种方式分别称为平均平滑、中值平滑以及边界值平滑。

所谓聚类离散就是把相同、相似以及相近的数据进行聚合。采用的是聚类的算法,对每一个聚类的簇进行命名后就是离散的结果。

回归平滑是指,对两个有相关性的变量进行拟合,用拟合线上的数值代替原来的数值,本质上是进行数据噪声的处理。直观上来讲,这和数据离散没有关系,但是进行回归平滑后的数据已经具备了线性条件,因而可以使用非常明确的边界值对其进行划分。

  • 属性构造

属性构造是非常抽象的词汇。除了属性,相信你还听说过字段、特征,它们其实是同一个意思。假设 Excel表格中存储的是一个学校的学生信息,那么字段(属性、特征)就是姓名、年龄、身高、家庭住址等。

构造属性简单说来有两种方法,即特征工程和随意构造后筛选。

工程实施过程中需要人的参与,而且严重依赖人的参与,通过属性与属性的连接,构造新的属性,这就是特征工程。譬如已经有属性“长”与“宽”,我们就可以构造属性“面积”。

随意构造与人工构造的区别是,人工构造的属性往往是有意义的,但随意构造的属性往往没有意义。那么构造了这么多的属性,怎么判断该使用哪个属性不该使用哪个属性呢?可以用到XGBoost工具来进行筛选。(大家可以自学,此处不再展开)

  • 少即是美(数据规约)

“山不在高,有仙则名;水不在深,有龙则灵”,数据不在多,有价值就行。大数据时代,我们忧愁的不是数据太少,而是太多。数据规约提供了一种针对数据过多的解决方案。

  • 特征规约

规约有限制的意思,限制有减少范围的意思。因而我们可以认为特征规约就是减少特征。进行特征规约有两种形式,一种称为立方体规约,另外一种称为维度规约。

我们听说过正方体,正方体是一个三维的立方体,意味着特征只有三种,如区域、学生数、产品类型。而对于多维的立方体,则有多个特征。进行立方体规约,就是将N维的立方体变成N-1维的立方体。

以三维立方体(中间的数据是学生数)来说,我们把区域、学生年级、产品类型变化为区域、学生年级,实际上就是统计了每个区域各个年级内使用所有产品的学生数。根据累计统计的目的不同,我们可以减少不同的维度,例如为了统计每个区域内使用各个产品的学生数目,就应该减少学生年级这个维度,进而变为区域、产品类型。

维度规约就是去除与业务分析无关的属性。例如我们要分析和学生学业有关的影响因素,维度中如果有老师的身高这类因素,便可以去除。还可以根据属性的重要程度来评估是否需要去除,凡是不重要的属性都可以尝试去除。

  • 样本规约

一张表格的自我修养应该包括“行”的修养与“列”的修养。如果说特征规约是列的修养,那么样本的规约就是行的修养。因为特征决定了列数,而样本数量则决定了行数。进行样本规约的过程应该做到不丢失信息,且不影响分析结果。样本规约总共有三种类型,分别是去除冗余、抽样与压缩编码。

在样本中必然会有相同数据存放两遍的情况,这时候,如果不是为了数据分析的必要而做的冗余存储,那么就需要去掉冗余的部分,保证相同的数据仅保留一份在数据库中。这种做法便称为去除冗余,这样能够减少样本的数目。

所谓抽样,就是不选取所有的样本数据,而是从中抽出一些样本。抽样又有多种方式,包括有放回抽样、不放回抽样、分层抽样、聚类抽样等。

上述减少数据量的过程本质上是减少了数据的样本数,而压缩编码是将数据进行压缩后再存储,例如采用01的稀疏编码表示。这个技巧太过技术化,产品经理不需要掌握,感兴趣的朋友可以自学。

———

本文节选自新书《数据产品经理必修课:从零经验到令人惊艳》,从数据和产品经理的双重视角详细讲述了数据产品经理所需的各种能力,既有理论,也能落地。安徽省计算机学会理事长陈恩红、思科大中华区副总裁方剑斌、《人人都是产品经理》作者苏杰,联合力荐!

本书导读文章《当产品经理遇见数据思维》在“前沿技墅”发布之后,一石激起千层浪,朋友圈瞬间霸屏,后台询问正式出版时间的留言更是此起彼伏。直到此刻,如释重负,下方阅读原文将为翘首已久的读者开启预售通道——何不亲手摘下“艳”星的面纱,让这部注定成为数据产品领域里程碑的作品,一步步向你靠近……

  • 内容简介:当产品经理遇上大数据时代,数据产品经理应运而生。新时代的新岗位自然也有新要求。数据思维、数据预处理、数据统计、数据挖掘、数据可视化等是产品经理的必备技能。懂产品、懂运营、懂市场、懂表达、懂管理则是数据分析师的技能外延。本书正是为有志于从事数据产品岗位的人士提供掌握上述技能的必修课。让我们通过本书,在大数据的浪潮中乘科技与人文的扁舟,驶过数据产品经理的港湾,驶向数据科学家的彼岸。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前沿技墅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档