我所理解的数据分析
(本文成文于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%工作量那么简单。
相关文章
- 大数据分析服务器硬件配置如何选择
- APP运营怎么利用留存率等数据分析用户减少的原因?
- 数据准备在大数据分析中地位有多重要
- 小白学数据分析--聚类分析理论之K-means理论篇
- HR数据分析常用的50个公式
- 零售数据分析:如何对产品价格分组
- 大数据分析之—基于模型的复杂数据多维聚类分析
- 快速入门 Python 数据分析实用指南
- Spark高效数据分析03、Spark SQL
- ython数据分析入门:一篇文章教你理解数分常用图~
- Python数据分析+可视化:分析猛男童年的玩具,并可视化展示商品数据(含完整源代码)
- 【华为云技术分享】解析:物联网数据分析服务如何做?
- 图文详解 DBMS 数据库管理系统三层架构体系(三级模式)《ClickHouse 实战:企业级大数据分析引擎》...
- DBMS 数据库管理系统的三级模式架构《ClickHouse 实战:企业级大数据分析引擎》...
- 数据分析前景怎么样?好不好?
- SQL数据分析概览——Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto+druid
- 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
- Python典型数据分析流程——纯理论(深入理解的看)
- wireshark数据分析与取证capture.pcapng
- 网络空间安全江苏省赛数据分析与取证 -attack.pacapng