大数据时代空间数据挖掘的认识及其思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据时代空间数据挖掘的认识及其思考相关的知识,希望对你有一定的参考价值。
引言空间数据挖掘(Spatial Data Mining,SDM)即找出开始并不知道但是却隐藏在空间数据中潜在的、有价值的规则的过程。具体来说,空间数
参考技术A 引言空间数据挖掘(Spatial Data Mining,SDM)即找出开始并不知道但是却隐藏在空间数据中潜在的、有价值的规则的过程。具体来说,空间数据挖掘就是在海量空间数据集中,结合确定集、模糊集、仿生学等理论,利用人工智能、模式识别等科学技术,提取出令人相信的、潜在有用的知识,发现空间数据集背后隐藏的规律、联系,为空间决策提供理论技术上的依据[1]。
1.空间数据挖掘的一般步骤
空间数据挖掘系统大致可以分为以下步骤:
(1)空间数据准备:选择合适的多种数据来源,包括地图数据、影像数据、地形数据、属性数据等。
(2)空间数据预处理和特征提取:数据预处理目的是去除数据中的噪声,包括对数据的清洗、数据的转换、数据的集成等。特征提取是剔除掉冗余或不相关的特征并将特征转化为适合数据挖掘的新特征。
(3)空间数据挖掘和知识评估:采用空间数据挖掘技术对空间数据进行分析处理和预测,从而发现数据背后的某种联系。然后结合具体的领域知识进行评估,看是否达到预期效果。
2.空间数据挖掘的方法研究
空间数据挖掘是一门综合型的交叉学科,结合了计算机科学、统计学、地理学等领域的很多特性,产生了大量处理空间数据的挖掘方法。
2.1 空间关联规则
关联规则挖掘是寻找数据项之间的联系,表达式形式是X→Y,其中X与Y是两种不相交的数据项集,即X∩Y=?覫。KOPERSKI K等人将关联规则与空间数据库相结合,提出了空间关联规则挖掘[2]。空间关联规则将数据项替换为了空间谓词,一般表达形式如下:
A1∧A2∧…∧An→B1∧B2∧…∧Bm(3)
令A=(A1,A2,…,An),B=(B1,B2,…,Bm),A和B分别表示Ai和Bj的谓词集合,A和B可以是空间谓词或非空间谓词,但是必须至少包含一个空间谓词且A∩B=?覫。SHEKHAR S和HUANG Y针对空间关联规则的特点提出了把关联规则的思想泛化成空间索引点集的空间同位规则的概念,在不违背空间相关性的同时用邻域替换掉了事务[3]。时空关联不仅涉及事件在空间中的关联,还考虑了空间位置和时间序列因素。国内的柴思跃、苏奋振和周成虎提出了基于周期表的时空关联规则挖掘方法[4]。
2.2 空间聚类
空间聚类分析是普通聚类分析的扩展,不能完全按照处理普通数据的聚类分析方法来处理空间数据。由于存在地理学第一定律,即空间对象之间都存在一定的相关性,因此在空间聚类分析中,对于簇内的定义,要考虑空间自相关这一因素。通过对空间数据进行自相关分析,可判断对象之间是否存在空间相关性,从而可合理判断出对象是否可以分为一簇。
基本的聚类挖掘算法有:
(1)划分聚类算法:存在n个数据对象,对于给定k个分组(k≤n),将n个对象通过基于一定目标划分规则,不停迭代、优化,直到将这n个对象分配到k个分组中,使得每组内部对象相似度大于组之间相似度。
(2)层次聚类算法:通过将数据不停地拆分与重组,最终把数据转为一棵符合一定标准的具有层次结构的聚类树。
(3)密度聚类算法:用低密度的区域对数据对象进行分割,最终将数据对象聚类成为若干高密度的区域。
(4)图聚类算法:用空间结点表示每个数据对象,然后基于一定标准形成若干子图,最后把所有子图聚类成一个包含所有空间对象的整图,子图则代表一个个空间簇。
(5)网格聚类算法:把空间区域分割成具有多重分辨率的和有网格结构特性的若干网格单元,在网格单元上对数据进行聚类。
(6)模型聚类算法:借助一定的数学模型,使用最佳拟合数据的数学模型来对数据进行聚类,每一个簇用一个概率分布表示。
仅采用一种算法通常无法达到令人满意的预期结果,王家耀、张雪萍、周海燕将遗传算法与K-均值算法结合提出了用于空间聚类分析的遗传K-均值算法[5]。现实空间环境中,存在很多像道路、桥梁、河流的障碍物,张雪萍、杨腾飞等人把K-Medoids算法与量子粒子群算法结合进行带有空间障碍约束的聚类分析[6]。
2.3 空间分类
分类,简单地说是通过学习得到一定的分类模型,然后把数据对象按照分类模型划分至预先给定类的过程。空间分类时,不仅考虑数据对象的非空间属性,还要顾及邻近对象的非空间属性对其类别的影响,是一种监督式的分析方法。
空间分类挖掘方法有统计方法、机器学习的方法和神经网络方法等。贝叶斯分类器是基于统计学的方法,利用数据对象的先验概率和贝叶斯公式计算出其后验概率,选择较大后验概率的类作为该对象映射的类别。决策树分类器是机器学习的方法,采取从上到下的贪心策略,比较决策树内部节点的属性值来往下建立决策树的各分支,每个叶节点代表满足某个条件的属性值,从根节点到叶节点的路径表示一条合适的规则。支持向量机也是机器学习的方法,思路是使用非线性映射把训练数据集映射到较高维,然后寻找出最大边缘超平面,将数据对象分类。神经网络是一种模拟人神经的网络,由一组连接的输入和输出单元组成,赋予各个连接相应的权值,通过调节各连接的权值使得数据对象得到正确分类。
针对融入空间自相关性的空间分类挖掘,SHEKHAR S等人使用空间自回归模型和基于贝叶斯的马可夫随机场进行空间分类挖掘[7],汪闽、骆剑承、周成虎等人将高斯马尔可夫随机场与支持向量机结合并将其用于遥感图像的信息提取[8]。
2.4 其他空间挖掘方法
空间数据挖掘的方法多种多样,其他还包括:空间分析的方法,即利用GIS的方法、技术和理论对空间数据进行加工处理,从而找出未知有用的信息模式;基于模糊集、粗糙集和云理论的方法可用来分析具有不确定性的空间数据;可视化方法是对空间数据对象的视觉表示,通过一定技术用图像的形式表达要分析的空间数据,从而得到其隐含的信息;国内张自嘉、岳邦珊、潘琦等人将蚁群算法与自适应滤波的模糊聚类算法相结合用以对图像进行分割[9]。
3.结论
空间数据挖掘作为数据挖掘的延伸,有很好的传统数据挖掘方法理论的基础,虽然取得了很大进步,然而其理论和方法仍需进一步的深入研究。伴随着大数据时代,面对越来越多的空间数据,提升数据挖掘的准确度和精度是一个有待研究的问题。同时现在流行的空间数据挖掘算法的时间复杂度仍停留在O(nlog(n))~O(n3)之间,处理大量的异构数据,数据挖掘算法的效率也需要进一步提高。数据挖掘在云环境下已经得到很好的应用[10],对于处理空间数据的空间云计算是有待学者们研究的方向。大多数空间数据挖掘算法没有考虑含有障碍约束的情况,如何解决现实中障碍约束问题值得探讨。带有时间属性的空间数据呈现出了一种动态、可变的空间现象,时空数据挖掘将是未来研究的重点。
由于数据挖掘涉及多种学科,其基本理论与方法也已经比较成熟,针对空间数据挖掘,如何合理地利用和拓展这些理论方法以实现对空间数据的挖掘仍将是研究人员们需要长期努力的方向。
参考文献
[1] 李德仁,王树良,李德毅.空间数据挖掘理论与应用(第2版)[M].北京:科学出版社,2013.
[2] KOPERSKI K, HAN J W. Discovery of spatial association rules in geographic information databases[C]. Procedings of the 4th International Symposium on Advances in Spatial Databases, 1995: 47-66.
[3] SHEKHAR S, HUANG Y. Discovering spatial co-location patterns: a summary of results[C]. Procedings of the 7th International Symposium on Advances in Spatial and Temporal Databases, 2001:236-256.
[4] 柴思跃,苏奋振,周成虎.基于周期表的时空关联规则挖掘方法与实验[J].地球信息科学学报,2011,13(4):455-464.
[5] 王家耀,张雪萍,周海燕.一个用于空间聚类分析的遗传K-均值算法[J].计算机工程,2006,32(3):188-190.
[6] Zhang Xueping, Du Haohua, Yang Tengfei, et al. A novel spatial clustering with obstacles constraints based on PNPSO and K-medoids[C]. Advances in Swarm Intelligence, Lecture Notes in Computer Science (LNCS), 2010: 476-483.
[7] SHEKHAR S, SCHRATER P R, VATSAVAI R R, et al.Spatial contextual classification and prediction models for mining geospatial data[J]. IEEE Transactions on Multimedia, 2002, 4(2):174-187.
[8] 汪闽,骆剑承,周成虎,等.结合高斯马尔可夫随机场纹理模型与支撑向量机在高分辨率遥感图像上提取道路网[J].遥感学报,2005,9(3):271-275.
[9] 张自嘉,岳邦珊,潘琦,等.基于蚁群和自适应滤波的模糊聚类图像分割[J].电子技术应用,2015,41(4):144-147.
[10] 石杰.云计算环境下的数据挖掘应用[J].微型机与应用,2015,34(5):13-15.
来源 | AET电子技术应用
后Hadoop时代的大数据技术思考:数据即服务
1. Hadoop 的神话正在破灭
IBM leads BigInsights for Hadoop out behind barn. Shots heard
IBM has announced the retirement of the basic plan for its data analytics software platform, BigInsights for Hadoop.
The basic plan of the service will be retired in a month, on December 7 of this year.
“IBM把BigInsights for Hadoop牵到牧棚后面,只听一声枪响…”
这个是前不久英国知名媒体The Register对IBM 产品BigInsights产品下线的报道。
BigInsights 是IBM在Apache Hadoop上增加了不少IBM分析技术能力后形成的一个大数据分析产品。 在面临近乎2年的前途未卜的窘境之后,IBM终于决定将其关闭。
无独有偶,前不久Gartner的一篇文章也指出 “70%以上的Hadoop部署未能天线的业务价值…”
Hadoop大数据是怎么了呢?
我们从DBMS数据库管理系统的角度,来剖析下常见产品的能力:RDBMS,MPP,Hadoop,NoSQL以及NewSQL。 这几类产品对数据处理的能力各有什么样的特点?
2. 常见几种数据技术比较
我们首先试图对大数据这个被第一滥用的名词来统一一下概念。按照Gartner的说法,大数据具备以下几个特征(3个V):
- Volume: 数据量够大
- Velocity: 数据访问并发够高,够实时
- Variety: 数据的类型多
从另一方面讲,大数据也是数据,对常规数据的管理离不开我们熟悉的ACID事务性来保证对数据操作时候的原子性,一致性,隔离性和持久性。有了这个几个衡量标准以后,我们可以来对上述几个产品列表比较一下。
在这里根据4个维度给几种流行的数据库管理技术打分,以5分制为例,5分即最高分,表明具备最佳能力。1分为最低分,表明相对而言能力最弱。其实最近已经有类似于TiDB或者CockroachDB的NewSQL产品出现,但是数据库软件是最为复杂的软件之一, 因为它要满足各种应用的使用场景。如果历史是面镜子,那么最少还要3年左右这些NewSQL的表现才能被足够的评测。所以这里我们暂时略过。
下面我们来解读一下各种数据库的得分原因。
3. 关系型数据库
RDBMS全称关系型数据库(Relational Database Management System)是历史最悠久的数据库类型。关系型数据库以Oracle,SQLServer,MySQL,PostgreSQL等为代表,是我们最熟悉的数据库。特点是:
- 单机架构限制,处理数据量有限, 通常在小几个TB以下(得分2)
- 受事务之累,并发不高,但是通常是毫秒级响应(得分3)
- 严谨的关系模型,无法处理非结构化数据(得分1)
- 事务性强,无与伦比(得分5)
4. MPP 数仓
MPP,全称Massive Parallel Processing数据库,通常被用来实现企业的数据仓库和ODS等需求。MPP的产生主要是用来解决关系型数据库的数据量管理能力的问题。MPP数据库通过把数据进行分区分片,并分布到各个横向扩展节点,并由调度节点进行统一管理计算。每一次你执行查询的时候,该查询会被分解为多个子查询并交付给每一个计算节点去做并行的查询。这个架构可以通过增加节点的方式来扩展容量。数据在MPP系统里是分片的(Sharded), 每个节点会存取自己本地的一部分数据。这个较之共享存储(如Oracle RAC)方案来说又有不少性能上的优势。因此大部分MPP系统,如Teradata,Greenplum,Vertica等都采用了这种shared nothing及DAS 直挂存储的架构。一般来说MPP系统都具备完备且成熟的SQL优化器,支持主流的SQL标准,包括地理分析,全文检索以及数据挖掘功能。除了GP之外,几乎所有的MPP系统都是闭源系统,并且一般都是和昂贵、复杂这些词联系在一起的。
图片来源: Gregory Kesden
MPP理论上是可以无限横向扩展的,但是实际上由于控制节点或协调节点的原因,往往很难超出一百左右的节点数量。所以VOLUME得分为4分而不是满分。MPP系统上主要运行的是分析型的应用场景,并发数往往较低,是为多节点并行分析能力而不是高并发能力优化的,因此VELOCITY上得分为2分。MPP大致也是基于关系模型的,对非结构化数据的处理上和RDBMS基本一样无能为力,因此得分为1。
5. Hadoop
下一个出场的是Hadoop,按时间顺序来排的话。 Apache Hadoop是2007年发布的开源软件。Hadoop是基于Google 公开的MapReduce和HDFS技术研发而成的。它的最伟大之处就是让企业能够以非常廉价的x86服务器把大量的数据管理起来。在那之前,机构需要购买机器昂贵的企业级存储设备来管理海量数据。就从这一点上,Hadoop技术已经为企业带来了很大的价值。这个确实是Hadoop的强处所在。然而,Hadoop的弱点也是一箩筐:安全,数据管理,查询速度,复杂等等。10年的发展,很多这些地方都已经有了比较不错的解决,唯有这个数据查询速度依然是很多Hadoop部署的痛中之痛。这个性能低下的原因,是和HDFS,Hadoop用来存储文件的机制,HDFS,分不开的。HDFS不支持索引,举个例子来说,你想要在词典里找一个不认识的生僻词的发音和释义,为了找到这个生僻词,你可能需要翻遍整本词典,因为你无法使用拼音来检索。在HDFS里面找内容都是通过扫描(SCAN)的方式,也即是从头读到尾来找到你想要的数据。可以想象这种操作的性能如何。
Hadoop的打分情况:
- 基于x86廉价服务器及低端存储海量扩展,轻松支持 TB/PB级数据量,VOLUME得分5分
- HDFS文件存储系统对所有格式的数据照单全收,在VARIETY上面也尽得高分5分。
- 性能方面Hadoop毫不客气的占了倒数第一,但是并发接入能力还是okay,所以给2分
- ACID事务性更是八杆子打不着,得1分。
6. NoSQL数据库
NoSQL数据库是一个争议颇多的话题。首先是NoSQL阵营参差不齐,有以Redis为代表的KeyValue类型,专长于极短响应时间及很高的单机并发能力,适合于缓存、用户会话等场景。 有以宽表列族为模型的HBase、Cassandra,对IoT海量数据持续写入场景有不错支持,但是使用起来比较不友好。有以图关系模型的Neo4J,专注于复杂关系搜索。ElasticSearch 则以搜索起家,在奠定了搜索市场后也视图小觑数据库的大蛋糕。而具有JSON文档模型的MongoDB可以说是NoSQL里面的不折不扣的龙头老大。JSON像XML一样富有表达性,同时又不像XML那样繁琐,用过的程序员基本都说好。由于各种NoSQL数据库差异太大,很难拿出一个抽象模型来代表NoSQL,我们下面就用DBEngines上面持续多年排名NoSQL第一的MongoDB来说事。
MongoDB 在很多方面和Hadoop有相似之处:都是基于x86的分布式数据库,都是schema-on-read,支持结构化和非结构化数据类型等等。以至于很多人都以为MongoDB就是和Hadoop一样用来做大数据分析场景。事实上MongoDB的一贯定位都是OLTP数据库,以联机交易为主要适用场景,如IoT,CMS,Customer data,以及Mobile/Web等低延迟交互式应用。MongoDB的扩展能力可以支持PB级别的数据量(百度云)以及每秒百万+的混合读写并发处理能力(Adobe)。 正因为如此它在VOLUME、VELOCITY、及VARIETY上面都获得了较高的得分(分别为4,5,5分)。它的短板就是事务性,ACID四项中,Atomicity 目前可以支持文档级别的的原子性。一个文档可以很复杂,但是针对单个文档内所有写操作,包括子文档,可以享受原子性的保证。MongoDB不支持多文档或者多集合之间的原子性,但是由于文档模型下多表操作已经转换成为单表操作,所以对多表原子性的需求已经大大降低。Consistency一致性方面,MongoDB默认只使用主节点做读和写来保证数据的读写一致性。Isolation 上MongoDB支持到了第二级别:提交读(Read Committed)。 Durability持久性反而是MongoDB的强项,一份数据会被准实时的同步到其他节点上,从而很大限度上保证了数据的不丢失性。所以在事务上给了MongoDB 2分。
7. Hadoop:局限于大数据分析场景
如果我们用一个雷达图来表示各类数据库的能力,我们可以直观的看到各种技术的覆盖面。面积越大,则表示可以适用的场景越多。
我们发现Hadoop其实覆盖的面积并不是最大的,虽然大家之前都被教育过这个庞大的生态系统可以包治百病。现在我们可以开始理解一些为什么Gartner会说有70% Hadoop用户感觉到并没有获得期望价值。Hadoop其实擅长的就是对海量数据的离线分析(Offline Analytical),HDFS这个文件系统的设计就决定了这一点。这种技术特性适合用来做趋势分析,用户行为挖掘,机器学习,风险控制,历史数据留存等一系列分析场景,用来辅助商业决策。
但是企业今天对数据的需求,何止是分析型一种?
8. NoSQL: 操作型大数据之首选
我们说大数据的价值体现方式有不仅仅是分析型,还有一种同样重要的就是在线操作型(Online Operational)。 在线操作型(Online Operational)数据场景则是我们耳熟能详的企业机构日常生产的交易数据,如用户,表单,订单,库存,客服,营销等。这些数据使用的特点就是交互型,低响应延迟。原来这些系统数据各自为营的时候普通关系型数据库可以处理,但是在大数据时代当我们需要把这些操作型数据,甚至包括5年内所有数据都要提供出来供用户快速访问的时候,或者当传统大型企业突然要面向数百上千万最终用户的移动APP访问需求的时候(如银行业,航空业等),这些就需要一个在线大数据解决方案来实现了。 而Hadoop大生态系统号称是大数据问题大包大揽, 但是动到交互式查询或者更新的时候就捉襟见肘了。Hive, Hbas, Impala等一系列解决方案也都未能有效解决对数据活用的迫切需求。
操作型大数据的两大关键技术需求:数据量大,响应迅速及时。
从这两个维度可以看出,以MongoDB或者HBase之类的 NoSQL更加适合用来做操作型大数据平台的场景。
9. MongoDB vs. HBase
事实上HBase正式作为一个NoSQL通常是Hadoop生态系统里用来支持操作型大数据的实时读写需求的。可惜HBase 是个扶不起的刘阿斗,跟着Hadoop的大旗沾了不少光,用起来问题一堆:
- 原生不支持二级索引,只能通过主键访问。社区实现的二级索引功能支持和数据更新有时延,导致头疼的一致性问题
- 宽表模型概念拗考,难于理解并且要求实现建模,不够灵活
- 数据类型低级,只支持比特流,开发很不友好
- 支持程序语言种类少(Java,Thrift, RESTful API)
- 集群结构复杂,有8种不同类型节点
- 无一致性快照功能
- 需要定时compact,对持续读写场景影响很大
因为这些原因,HBase只能在真的是超级大量数据的场景下才值得去忍受着种种不便去使用。
和HBase相比,MongoDB也有一些自己的不足:
- 多表事务还在研发中,导致对原子性要求较高需要回滚的时候只能通过变通手段来实现,增加了开发复杂度(所有NoSQL基本都不支持事务)
- 常为读性能优化而鼓励冗余,但是又不提供这些冗余数据变化时候的自动同步
但是MongoDB在取悦开发者,提高开发效率上可是做的淋漓尽致:
- 支持数十种程序语言
- 有最大的开发社区
- JSON文档模型是个程序员都懂,API式管理数据库,非常自然
- 支持二级索引,关系型数据库的复杂查询基本都能支持
- MEAN stack,全JS开发
- 无须ORM,减少服务层和持久化层的摩擦
- 动态模型,无须显式建模,适合快速开发
- 傻瓜式水平扩展
正是这些原因,DBTA 2017年的“读者最喜欢的数据库”里面,MongoDB傲视群雄,夺得了桂冠。
10. 后Hadoop时代: 数据即服务
今天的企业在其数字化转型、双模IT及企业上云策略下,纷纷在重新审视企业的平台级数据库产品策略。企业已经大手笔投入了大量的资源构建基于Hadoop的数据湖,但是由于Hadoop本身特性所限,很多部署变成了 “数据垃圾堆”(Data Dump),空有数据,但无法实现价值。企业真正需要的是一套在线操作型大数据解决方案可以满足:
- 汇聚来自各个独立隔离系统的客户、行销、生产等数据,提供360度统一视图
- 海量的性能扩展来应付日益增加的数据量及业务需求
- 提供秒级数据API 服务来驱动实时面板和快速应用开发
- 大规模减少ETL流程,降低成本
这种方案应该充分企业已经投入的Hadoop体系架构,但是在此之上铺设一个以低延迟高并发支持灵活API为特色的DaaS(Data as a Service)数据即服务层。
数据即服务就是一种操作型大数据平台的具体体现。这种基于MongoDB的架构的优势在于:
除上述之外,基于分片机制的自动扩容的机制更可以支持数以百TB级的业务数据量;异构数据库实时同步工具可以把来自于数十个业务系统库内的数据同步到数据服务层,并提供秒级的数据一致;在同步过程中实现数据模型转换,快速搭建服务;批量方式或者连接器方式直接接受来自Hadoop集群的分析结果,如个性化标签及推荐信息等,提高Hadoop的可操作性 等等优势。
RBS银行在2015年就开始实施了这样的DaaS架构,短短两年时间,RBS声称已经获得了以下的价值:
- 降低的成本:数百万欧元的Coherence及Oracle商业授权的节省
- 简化的技术栈:一套方案已经支持了数十个数据应用
- 开发加速:新应用上线时间从12个月到数个星期
与此类似的成功案例还有巴克莱银行,Vodafone电信公司等,均是在其数字化转型中经过审慎评估,选择了操作性强,易用性高,分布式能力可靠的MongoDB作为其新一代数据服务平台。
11. 结语
每一种技术都有它的应用场景,在这篇文章里我们想要讨论的是一种操作型大数据解决方案,所以我们花了不少笔墨在NoSQL并认为MongoDB是一个非常不错的选择。NewSQL或许会是一个潜在的选择,如果不是因为现在它还没发展成熟。况且,NewSQL对半结构化、非结构化数据的需求支持估计也还是无法很好满足, 所以我们拭目以待。
最后,在做一个大型决策的时候,我们要充分考虑到企业对技术能力的需求,把需求列出来,然后对照数据产品各自的长短板,有理论有方法的进行选型,并对最后2-3个选择进行POC验证,最终确定合适的方案。
声明作者为MongoDB从业人员,虽然文章尽可能从技术的角度探讨问题,难免有偏颇之处欢迎反馈。
作者:唐建法,MongoDB官方首席架构师,Mongoing中文社区联合发起人。
附:Mongoing中文社区将在2018.01.07在北京举办MongoDB年终盛典。邀请了来自于官方技术大牛WiredTiger引擎作者Michael Cahill 及国内外著名嘉宾,点击此处报名可获限量免费门票。
PS:最后给大家推荐一个数据库在线峰会,嘉宾来自阿里巴巴、腾讯、微博、网易等多家企业的数据库专家及高校研究学者,将围绕Kubernetes、MySQL、PostgreSQL、Redis等热点数据库技术展开。峰会详情页:http://edu.csdn.net/huiyiCourse/series_detail/74
以上是关于大数据时代空间数据挖掘的认识及其思考的主要内容,如果未能解决你的问题,请参考以下文章