我所理解的数据分析

(本文成文于2015年8月3日)

"大数据"已经成了一个风口,几乎所有人都在谈论它。但真正理解其核心概念的人屈指可数,我也在其边缘徘徊。但起码我知道:

数据很重要,没有数据,一切大数据都是耍流氓;

比数据更重要的是结构,杂乱的数据几乎不可能由人来手工处理。而送入强大的机器算法之前,必须将数据结构化。2014/7=15这到底是时间还是个算式!难道是输入错了?

比结构更重要的是模式,你能否在这些数据里发现有趣的规律和真正重要的问题呢?我为什么要分析这些数据呢?仅仅是为了得到好看的图表,还是想尽可能便宜的买到最合适的房子?

比模式更重要的是洞见,你真的理解模式和问题之间的关系了吗?为什么在数据统计后,发现北京二手房交易中,将近一半的房子都在六层?

比洞见更重要的是执行。信息之所以重要,是因为它提供了更好解决问题的手段。如果不去解决问题,前面的一切就是自娱自乐。

可见,数据分析本身构成了一个长长的链条。前三步,需要计算机的支持。后两步,则需要人的极大参与。问题最重要的知道问题何在,并拥有渴望解决问题的“心”。常常有那些捧着大量重要数据的人,口口声声的说要分析数据获得洞见,但他们不用心,最后一无所成。

我们的目标就是希望能够尽量提高数据分析的效率,让整个数据分析流程尽可能自动化,让人真正用心去解决后两步的问题。人只要提供数据源,我们就能猜出他感兴趣的模式,让他产生洞见了。目前的工作就是尝试解决前两步,也就是如何获取数据,和如何结构化数据。因为据统计,前两步就占用了数据分析90%甚至更多的时间。

第一步我将其看成买菜。数据的一大重要来源,就是网页。所有博客的列表,各类理财网站的页面,政府新闻的发布时间,二手房的价格变化。而目前开发的爬虫算法,就在尝试去全自动地获取网页中的关键数据。它能从网页中通过概率模型和样式信息,直接找到最重要的数据区域,通过树结构的对比,自动提取关键数据;通过对数据结构的分析,判断数据类型并添加标签。 只要给定一个网页,算法就能在短短几分钟之内,发现该网站与该网页相似的所有网页,同时将其直接转换为能够达到直接存入数据库的高质量的数据表格。 举个例子,从链家的二手房页面发现数据,到采集其全网的数据,仅仅使用了不到5分钟,手工配置的工作量基本为0。

第二个工作,则是将复杂非结构化数据转换为结构化数据。在行业中这个步骤叫做ETL(数据清洗)。我把它形象的看成洗菜。这个问题的核心在于两个步骤,识别数据的类型是什么,同时将其转换为计算机能处理的形式。看看下面这些数据:

  • 27个亿
  • 15亿
  • 192.168.1.2
  • 80公分以上
  • 80~200
  • 20英镑
  • 30万美金
  • 10000

  • 小于400
  • 430721198808****X
  • 2013.12.13-2015.7.5
  • 北京市东城区沙滩后街59号13排
  • 西安市莲湖区桃园一坊简易2号楼12号

看到上面这些字段,你大概就能知道它们是什么意思,它们需要如何被处理,但这对于一般的计算机程序来说,处理起来却异常的困难。你会发现里面有普通的数字,IP地址,时间范围,价格,居住地址。你会知道,时间范围可以分割为from和to两个部分,而进一步,能分割为年月日等更细致的属性;遇到价格,首先会关心它的单位,如果遇到英镑,我会考虑将其统一转换为美金汇率,进行统一比较,而价格可能是整个表格中最重要的一列。遇到地址,我会按照省市,地区街道的形式进行分割。

考察整个过程,我们识别其类型,将会把它转换为一颗信息树。树中代表的节点的不同层次,能提供不同层次的细节。 为什么要这么做呢?因为在第三步中我们需要模式,模式的发现取决于观察的维度。简单说,可能在”省市“层面上无法发现的模式,却在”街道“层面看到。也许所有的项目启动时间看起来都毫无规律,但大部分都是在春天启动的。而将数据转换为树结构,就提供了关键的”上钻“和”下探“的可能性,而这些,则是数据挖掘中最核心的概念。我们提供了一架强大的显微镜,能自动和充分的分析数据的内部结构。

第二步也进展很顺利,强大的机器学习算法可通过易于理解的DSL(领域脚本语言)进行描述,使得分析的准确率达到90%以上。这项工作的本质在于用数据去解析数据,用模式去分析模式,用算法去选择算法,站在更高的视角去分析元问题。顿时一切就变得更加有意思起来。我们实际上在”编译“自然语言,去了解其真实的含义。

这些工作的意义,其领域远远不止数据分析这一项。简历信息抽取便是典型的例子,海量的简历需要去人工的筛选,或者采用简单粗暴的关键词匹配。有了这项技术之后,简历中纷繁的信息就会自动归档,几分钟即可分析数万份简历,即使有一些错误,也可以通过问题日志交给人工处理,大大提升了时间效率。

目前,我在进一步地优化整个匹配的性能和速度,这需要大量模式识别和编译原理的知识。之所以到现在还没有去做第三步,是因为第三步可能是更基本也更纯粹的问题,我在三年前花了很长时间也没有得到太好的成果。我们先把战线缩短,将精力主要用于前两项吧。即使这样,这件事也是非常有趣而精彩的。它带来的改变,也许远不止减少数据分析师90%工作量那么简单。

posted @ 2016-04-27 09:34  FerventDesert  阅读(1965)  评论(1编辑  收藏  举报