一、为什么要做数据采集?
为什么要做数据采集呢?其实道理很简单,就是巧妇难为无米之炊。
通俗来讲就是有什么样的食材,我们才能炒出什么样的菜。比如说如果我们只有土豆茄子的话,那么无论如何也是做不出红烧肉的。
而整个数据处理的这个流程中也是面临同样的问题——采集的数据决定了我们数据分析挖掘的上限。举个例子,当我们想了解APP的终端用户他在使用什么样的手机,就需要去采集终端用户所用设备的机型参数。
比如说设备的品牌设备的型号,包括设备的操作系统等等,当我们拿到这样的数据以后我们才能够去计算终端用户的这种品牌分布设备分布,从而了解用户的这种设备的使用情况。
二、数据的采集源及采集方式
说到数据采集,我们第一个想到的问题自然是,从哪儿采?也就是我们的采集源是什么?
在当今的大数据时代,数据的来采集源往往是高度多样化的,而不同的数据源也往往需要不同的采集手段来进行针对性的采集。
一般来讲,数据源包括但不限于如下几类:
首先就是端上数据,即一个服务的客户端或者服务器端产生的数据,例如我们的用户点了哪些页面或内容这样的数据。
这类数据往往需要我们埋点进行采集。那这里就又涉及到了一个埋点的概念,埋点指的是,我们针对用户特定的行为进行跟踪与捕捉的过程,这些捕捉到的行为经统计后常常会用于后续的对产品的迭代与优化。
做埋点可以使用当前市面上现成的第三方服务,也可以自己做建设或开发。对于中小企业来说使用这种第三方的SDK服务性价比更高。
第二类常见的数据源,就是开放数据。开放数据指的是开放给所有人的数据,比如网页的内容数据,或者特定行业的公开数据。这类数据往往需要使用爬虫技术来采集。
那什么是爬虫技术呢?爬虫技术是一种可以使得开发者自动化地,系统化地收集Web端数据的技术。爬虫技术也是当下比较火的topic之一,有兴趣的同学可以自行去对其进行进一步的了解。
第三类是其他平台的数据
比如说开发者想拿到自己微信公众号的数据,这个数据其实是存在微信那里的。
这个时候,我们可以通过微信提供的规范API接口服务来调取自身的这个公众号的数据。
第四类是物理数据
物理数据指的是用户在物理世界中所产生的数据,例如用户刷脸购物的日志数据,用户的步数数据等。这类数据的采集往往要通过传感器来进行AIDC采集。
这里,AIDC采集的全称为自动识别和数据捕获,指的是一种自动识别和收集数据对象,然后将其存储在计算机中的方法。例如,射频识别,条形码磁条扫描,GPS传感器等都属于用于识别与捕获物理数据的方法。
第五类是主观性数据
比如通过用户调研或是访谈的方式,收集用户的态度或是意愿,也算是一种传统数据的采集方式。
最后一种就是数据库的数据比如说对于一些知识库啊,可能自己建设的话费时费力。如果有一些现成的方式的话就可以直接通过购买的方式来拿到相应的这个知识库的数据。
解决了从哪儿采及怎么采的问题,接下来我们所面临的是对采集的数据进行分类整理。
三、采集的数据类型划分
通常情况下,我们所采集到的数据可以被分为三种类型,即非结构化数据,结构化数据,以及半结构化数据。
首先,无法定义结构的数据称为非结构化数据。处理和管理非结构化数据是相对来说困难的。常见的非结构化数据为文本信息,图像信息,视频信息以及声音信息等等,他们的结构都千变万化,不能用一个二维表来描述。
另一方面,结构化数据往往被称为行数据,是由二维表结构来逻辑表达和实现的数据,其严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。比如说大学生的选课系统中,学生,课程,选课,导师等等数据都可以抽象为结构化数据。
除了结构化和非结构化数据之外,我们往往还需要对于半结构化数据进行采集。
半结构化数据和前面介绍的两种类型的数据都不一样,它是结构化的数据,但是结构变化很大。
那么什么叫结构变化很大呢?结构变化很大即是在半结构化数据中,同一类的不同实体数据的结构可能会有一定程度的不同,即不同实体所具有的属性会有一定程度的不同,而同时,对于这些实体来说,不同的属性之间的顺序是并不重要的。一个经典的半结构化数据的例子即为简历信息,每一份简历都遵循着简历这个大类所存在物理意义,即Highlight我们迄今为止在所在领域的成就。所以我们的简历中很有可能会有教育背景、工作经验以及姓名+联系方式等等。
然而在这个大前提下,每一份简历所具有的属性都不尽相同:有的人会在简历中加入志愿者经历,有的人会加入自己的所掌握的技能,有的人会加入自己的获奖经历等等。这就是我们刚刚所说的数据的结构变化很大的一个体现 。
话说回来,半结构化数据往往以XML或者JSON等方式出现,具体的细节大家可以进一步去了解XML和JSON的特性,在此就不再赘述啦。
那我们刚刚讲的非结构数据,结构化数据,以及半结构化数据可以看作是对数据的High-level的分类。然而,根据数据所产生的领域的不同,或者是数据的应用方式不一样,我们可以进一步将数据分为更为细粒度的类型。
接下来,我们会向大家介绍六种不同的数据类型,注意,这里把它们放在一起讲并不是因为它们是平行的,而是它们确实都是从某个维度上对数据的独特的描述。当然了,还有很多其他的数据分类,在这里我们只将一些相对常见的类型。
首先是人口统计学数据,例如性别、年龄等等,这类数据一般可以用来对用户进行建模时使用。例如,在用户兴趣建模中,不同年龄层的用户可能会喜欢不同的内容。
而后是用户搜索数据,也就是用户在搜索引擎中产生的数据。这些可以帮助我们更好地定位用户的喜好和方向,从而产出更加精准的用户画像,以更好地服务用户。
接下来的天气数据是一类非常易于采集的数据,其用途也非常广泛。例如,餐饮业在不同的天气可能会有不同的营业额,对营业额的建模时,可以加入天气数据来提升模型的效果。
而位置数据,则是利用GPS所产生的,用户的地理位置数据。位置数据和人口统计学数据类似,都可以用来对用户进行建模,例如,我们可以结合人口统计数据以及位置数据来构建更加精准地用户画像。
关联数据是一种比较有意思的数据,如万维网创始人Berners-Lee所说,关联数据是可以将不同的数据源相关联起来的数据。
那我们最后一种要介绍的数据类型,有一个很有意思的名字,叫做数据废气。
数据废弃一般指伴随用户的某些活动而产生的一系列数据,例如用户访问过的网页站点数据、点击过的按钮/内容等等,这类数据由于是活动的副产品,在早期是被当作无用的数据而丢弃的,数据废气的名字也就随之而来啦。
这些数据往往可以用来对用户的兴趣进行建模,例如Netflix、Youtube在线实时推荐服务背后,重要的一环就是利用用户在他们的App端或者网页端观影所产生的数据废气来对用户的兴趣进行建模。
以上,我们已经回顾了数据采集的过程中及数据的使用场景,希望看完本文后,大家能对户数据采集中的细节和概念,有一个更加清晰的认识!
也欢迎访问友盟学院,以视频的方式更直观的了解及学习大数据领域相关知识内容。友盟学院 - 深度解析数据采集与清洗那些事儿at.umtrack.com
更多数据采集相关干货,还可以看看这些问答。↓↓↓
❤看后三件事❤
如果你觉得这篇文章对你挺有启发,希望你可以帮我三个小忙:
1、关注 @友盟全域数据 让我们成为长期关系;
2、点赞,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-);
3、评论,让我第一时间了解你的真实想法;
感谢你的支持!