1.3 物联网大数据
随着物联网、云计算、互联网、社交媒体等技术的飞速发展,在智慧农业、精准农业、医疗、传感器、用户数据、互联网和金融公司交易等遍布全球的各个领域都出现了大规模的数据增长,我们每天都处在数据的环境中,大量数据实时地影响我们的工作、生活乃至社会发展。大数据是继高性能计算机、互联网、网格计算、云计算之后的又一被大众所关注的技术术语。全球知名咨询公司麦肯锡提出大数据时代已经到来,称:“数据已经无孔不入地渗透到各个行业和领域,成为重要的生产因素。对于海量数据的挖掘与运用,预示着新的生产率增长和消费者盈余浪潮的到来。”大数据的涌现,不仅影响人们的生活方式、工作方式、企业的运作模式,甚至还引起科学研究模式的根本性改变。据国际数据资讯(IDC)公司监测,全球数据量大约每两年翻一番,预计到2020年,全球将拥有35ZB的数据量。
大数据,是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用等。
大数据的采集是指利用多个数据库来接收发自客户端(Web、App 或者传感器形式等)的数据,通过这些数据进行简单的查询和处理工作。在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来访问和操作,比如火车票售票网站和淘宝网,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量负载均衡的数据库来支撑。
虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群中,并且可以在导入的基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm对数据进行流式计算,来满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。
统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行分析和分类汇总等,以满足大多数常见的分析和需求。在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。该操作涉及的数据量大,其对系统资源,特别是I/O有极大的占用。
与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据基础上进行基于各种算法的计算,从而起到预测的效果,实现一些高级别数据分析的需求。比较典型的算法有用于聚类的 k-means、用于统计学的支持向量机和用于分类的朴素贝叶斯分类器等,主要使用的工具有 Hadoop的Mahout等。
大数据需要特殊的技术,以有效地处理数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。IBM提出大数据具有Volume(体量大)、Velocity(高速性)、Variety(多样性)、Value(价值密度低)、Veracity(真实性)的 5V 特点。数据体量巨大,各种传感器、互联网、物联网源源不断地产生大量的数据,大数据一般指的是 PB 以上的数据。大数据的高速性体现在要求处理速度快,数据处理遵循“1秒定律”,实时分析而非批量式分析,对数据的分析处理立竿见影,而非事后见效,从各种类型的数据中快速获得高价值的信息。大数据类型多样,数据类型不仅有文本形式,还包括图片、视频、音频、传感器信息等类型的数据,非结构化、半结构化的数据超大规模增长,占到了数据量的80%~90%,比结构化数据增长快10~50倍。据IDC的调查报告显示:企业中80%的数据都是非结构化数据,这些数据每年都按指数增长60%。但大数据的价值密度低,以视频为例,一小时的视频,在监控过程中,有用的数据仅仅只有一两秒。从大数据中挖掘有效的信息就好比沙里淘金,是从海量数据中挖掘稀疏且珍贵的信息,如何通过强大的机器算法更迅速地完成数据的价值“提纯”是目前大数据亟待解决的难题。真实性是大数据的核心思想之一,数据的真实性是基础,也是保障,数据的真实性和质量是获得真知和思路的重要因素,是制定成功决策坚实的基础,而准确源自于对全部数据的处理分析。
大数据分析普遍存在的方法理论如下。
(1)可视化分析。大数据分析的使用者从普通用户到大数据分析专家,他们对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观地呈现大数据特点,同时非常容易被读者接受,就如同看图说话一样简单明了。
(2)数据挖掘算法。大数据分析的理论核心是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学地呈现出数据本身具备的特点,利用各种统计方法进行深入研究,挖掘出大数据背后潜在的价值。
(3)预测性分析。大数据分析最重要的应用领域之一就是预测性分析,通过对大数据分析挖掘,建立预测模型,对未来发展的态势进行预测。
(4)语义引擎。非结构化数据的多元化给数据分析带来新的挑战,需要人工智能从数据中主动地提取信息,系统分析,提炼数据。
(5)数据质量和数据管理。数据质量和数据管理与大数据分析密切相关,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,是保证分析结果的真实性和价值性的前提。
物联网的迅速崛起及传感网的快速发展成为大数据的又一推动力,带有处理功能的传感器设备广泛地应用于社会的各个角落,通过这些设备来对整个社会的运转进行监控。智慧农业、精准农业、农业物联网、智能交通、智能医疗、智能家居等都有着无数的传感器,随时测量和传递着有关位置、温度、湿度、气压、降雨量、土壤养分含量、运动、震动乃至空气中化学物质的变化,产生了海量的数据信息,这些都是大数据的重要来源。大数据是数字化趋势下的必然产物,需要大规模数据处理机制。
大数据所隐含的巨大的经济、社会、科研价值,在各行各业都引起了高度重视。大数据由于其本身所隐含或附带的价值,被类比为新时代的黄金、石油,甚至被视为一种新的经济元素,该元素处于与资本、劳动力并列的地位。对大数据进行合理的分析和管理,必将推动企业的发展和科学的进步,也会为社会提供更多的利益和创新性成果。
大数据的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。数据爆炸导致的结果是可使用的数据激增,如何对数据进行更精准的处理、整合和分析,从大量数据中发现新价值、创造新价值,推动社会、科学、商业的发展是大数据的市场趋势。换句话说,如果把大数据比作一种产业,那么实现这种产业盈利的关键环节在于提高对数据的“加工能力”,通过“加工”,最终实现数据的“增值”。
从某种程度上说,大数据是关于数据分析的前沿技术。换句话说,大数据技术就是从种类繁多的数据中,快速获得有价值信息的一种能力。大数据的目的是把数据转化为知识(Big Data to Knowledge),探索数据的产生机制,进行预测和制定政策。在数据大爆炸的时代,我们要做的是把众多的数据去冗分类,实现由厚变薄,最终把数据去粗存精。大数据为人们带来了大机遇,同时也对有效管理和利用大数据提出了新的挑战,主要表现为数据体量巨大、数据类型多、模型复杂。大数据如此重要,以至于当前对大数据的获取、储存、搜索、共享、分析,乃至可视化呈现,都成为了重要的研究课题。
随着农业信息化的快速发展及国家对物联网在农业应用的重视,在农业领域出现了大量的农业大数据。农业大数据涉及耕地、育种、播种、植保、施肥、收获、储运乃至农产品加工、销售等各个环节。大量的遥感数据、生物试验数据、农业基因组数据是农业大数据的重要来源。
农业物联网技术的蓬勃发展使得农业大数据的来源更侧重于传感器数据。农业生产经营活动每天都会产生大量的农业大数据,实时监测农作物生长环境状况;安放的一系列湿度、光照、土壤营养成分、温度等传感器产生了大量数据流;农业物联网中传感器采集的监测畜禽生长的小气候状况、温度、湿度、光照、各种有害气体浓度等数据流,也是农业大数据的主要来源。
大数据的形式有静态数据和数据流(也称之为流数据)两类。数据流是实时、快速、连续、无限的以流的形式出现的数据集合。数据流(data stream)概念的使用最早源于通信领域,指的是将传输中的信息通过使用数字编码信号序列的形式来表示。数据流并非大数据时代的产物,数据流最早由Henzinger在1998年提出,Henzinger将数据流定义为“数据流是数据的一个有序序列,该序列的读取只能按照事先规定好的顺序,且只能被读取一次”。
数据流包括广义数据流和狭义数据流两种存在方式。狭义数据流指的是那些数据量无限增长、数据变化更新较快的数据集合。狭义数据流的代表有传感器网络所产生的数据流、路由器处理的数据包等。数据流被源源不断地持续产生,而且这种数据流与时间紧密相关,因此有明显的时效性。广义数据流则是如金融交易数据、网络流量、科学观测数据等超大规模的数据集合。存取这种超大规模的数据集合中的所有数据是不可行的,只能进行线性扫描。
数据流的产生是细节数据与复杂分析这两个因素共同作用的结果。数据流是与时间序列紧密相关的一系列数据的集合,该数据除非特意保存,否则只能顺序读取一次,不具有再现性。数据流到达的次序和速度无法控制。理论上来讲,数据流的数据量是无限大的,其取值也可能是无限的,数据将持续到达,到达速度快,规模较大。因此,系统想要保存全部数据是不现实的。
在实际应用中,对某些超大型的静态数据集,为了降低算法的处理代价,要求处理算法只能进行一次线性扫描,这种情形下算法的输入也可看作一种数据流。人们对于静态数据采用批处理的方式,数据流则采用流处理的方式。流处理无须先存储,可以直接进行数据计算,对数据的实时性要求很严格,但对数据的精确度要求稍微宽松。在某些情形下,数据流的价值会随着时间的流逝而降低,譬如天气预报、精准农业的作物生长环境状况监测、智能农业中畜禽养殖舍内的环境状况,在这些情形下,时间就是效益,因此,这些情形下的数据流对实时性要求较高。在这些流处理中,数据延迟较短,实时性较强,数据的精确程度较低。
目前很多地方的农业生产大多依靠的是经验,缺乏相关数据量化支撑,导致农业生产经营活动发展缓慢。对这些农业中采集到的数据流进行预处理、集成、挖掘和分析,将会大大促进农业生产的发展。
对农业领域数据流研究的重要意义在于,通过对农业领域产生的数据流的研究,可对农作物病虫害、天气状况异常、畜禽舍环境异常状况等进行预测,从而及时防范,为政府决策、农民增收提供新方法、新思路。对农业领域产生的数据流研究,改变了传统的农业监测预警方式,可对灾害提前预警,有利于人们提前发现异常,对各种灾害防患于未然,减少损失,促进增产、增收。通过对农业领域产生的数据流进行挖掘,有利于相关部门及时发布预警信息,提高应急能力,规避风险,推动经济的发展和社会的进步,从某种程度上推动了农业信息化的发展。因此,研究数据流处理的关键技术势在必行。
1.3.1 大数据国内外研究热点
早在2000年,对于数据流进行的挖掘已经作为数据库领域及数据挖掘的顶级会议的热点研究方向,例如,数据管理国际会议 SIGMOD、超大型数据库 VLDB、知识发现与数据挖掘特殊兴趣组SIGKDD、国际开放与远程教育协会ICDE等每年都有关于数据流挖掘的相关专题。数据的价值会随着时间的流逝而降低,在远小于数据流的整体规模的内存中实现对代表数据流的概要数据结构的维护是数据流挖掘的核心技术。人们在概要数据结构的基础上进行聚类、关联规则挖掘、分类等,将各类数据流挖掘算法用于实际应用,解决具体问题。
数据流的处理环节包括数据流的采集、数据流的预处理、数据流的集成、数据流的建模、数据流的存储等。数据流挖掘是指在数据流上通过采用相关知识,发现并提取出潜在有用信息的过程。现有数据流挖掘研究的内容有数据流概要结构、数据流模型、数据流挖掘算法、数据流挖掘关联系统等。目前数据流挖掘的研究成果被广泛应用于传感器网络、天气变化、电信数据、网络日志、股票交易等领域。
1.数据流模型
目前,在数据流模型的研究领域中,人们根据不同的需要设计了不同的处理算法来满足实际需求。数据流模型可按照元素的选取时间、数据描述现象来进行划分。按照元素的选取时间,数据流模型主要包括快照模型、界标窗口模型、滑动窗口模型、衰减窗口模型。
快照模型是指数据流处理窗口的开始时间和结束时间均为固定值。界标窗口模型是指数据流处理窗口的开始时间为固定值,而结束时间为变化值。滑动窗口模型是指数据流处理窗口的开始时间和结束时间均为变化值。随着新数据的到达,滑动窗口不断向前滑动,窗口中存在插入和删除操作。衰减窗口模型是指数据流处理窗口的范围从初始时间到当前时间,其思想是认为数据流具有历史遗忘性,即随着时间的流逝,最先到达的数据元组的重要性较小,后到达的数据元组的重要性较高,体现在数据元组上是采用某种随时间衰减的函数,对离现在较近的数据元组赋予较大权重,对离现在较久远的数据元组赋予较小权重。由于数据不断到达,因此在衰减窗口中存在插入操作。
按照数据流中的数据元组所描述的现象可分为时序模型、现金登记模型、十字转门模型。时序模型是指数据流中的数据按照到达的时间进行更新,如股票数据流等产生的都是时序数据,该模型视数据流中的每个数据项为一个独立的对象,常常用于数据流的聚类与分类。现金登记模型是指数据流中的数据项递增,如手机号通话时长等,该模型常用于频繁模式挖掘。十字转门模型是指数据流中数据项可以递增,也可以递减,该模型适用于数据流的数据项同时存在的插入和删除情况。
2.概要数据结构
对于扫描过的数据流无法在内存中全部保存这一情况,系统为避免磁盘存取的开销,采用在内存中维护一个概要数据结构。目前概要数据结构的主要方法包括哈希方法、直立方图方法、小波变化方法、随机抽样法等。
哈希方法通常采用定义一组哈希函数的方式,实现数据从一个范围映射到另一个范围。数据流应用中常用FM方法、Sketch方法、Bloom Filter方法来生成概要数据结构。
直立方图方法是常用的概要数据结构表示方法,可表达数据的分布状况。常用的直立方图有根据数值的范围将其分割成近似相等的部分,在高度上各个桶比较平均的等宽直方图;也有使得每个桶的变化的不一致性最小,较好地表达数据分布的V-优化直方图。
小波变化方法与傅里叶变化方法类似,将输入的信号变换成一系列的小波参数,使得几个参数拥有大部分的能量,是一种广泛应用的数字信号处理技术。小波变化的方法可被广泛应用于对高维数据的降维处理、估算任一元素的数值、所有元素之和等。
随机抽样法是通过从数据集中抽取能够代表数据流基本特征的小部分样本,然后根据抽取的样本,获得近似的查询结果。按照各元素抽取的概率不同,可分为偏倚抽样、均匀抽样。偏倚抽样是指各元素被抽取到样本的概率可能不同;均匀抽样是指各元素被抽取到样本的概率相同。
3.频繁项挖掘
频繁项挖掘是数据流挖掘的一个重要研究内容,人们希望从数据流中挖掘出那些频率超过一定阈值的数据项。频繁项应用广泛,例如序列模式、关联规则、多维模式、相关性、最大模式等。由于频繁项挖掘是连接操作集合,传统静态频繁项挖掘算法,必须获取过去和将来的数据,但这些算法不能进行增量式更新,因此,传统的算法不适用于数据流中的频繁项挖掘。与静态数据集挖掘相比,数据流处理情况复杂,数据流中的频繁项不是静态的,而是随着时间的变化而变化的,非频繁项可能转换成频繁项,这就要求存储结构需要能够动态调整以适应数据流的变化。由于数据流的快速性、连续性及数据流随时间的变化而变化,处理不及时就会引起堵塞,对于频繁项的挖掘的关键问题是如何区别过时的数据项,以及新到达的数据流中有价值的数据项。目前已有一些关于数据流上的频繁项的挖掘算法,例如 Lossy Counting算法、Sticky Sampling算法等。
4.多数据流挖掘
多数据流关联分析目前主要采用计算机多数据流的主分量、数据流之间的关联系数、多数据流聚类三种方法。
主分量计算是通过对多数据流组成的矩阵求解其特征根和特征向量,最后表示出数据流之间的关联。对m条数据流采用主成分分析的方法,将其转化为小于数据流数目的n个隐含变量来进行表示。
关联度计算是通过计算多数据流中每对数据流间的关联系数,找出具有较高关联的数据流对。对于那些数据流数目较多的情形,想通过线性计算的方式得到每对数据流之间的关联系数是不可能的。StatStream 系统采用滑动窗口模型,将数据流划分为基本窗口,保存窗口内的数据的离散傅里叶变换系数,对那些满足一定条件的数据流对计算关联系数,通过离散傅里叶变换,推导出傅里叶变换系数与数据流对之间的关联系数与距离的关系。该系统没有对存在滞后关联情况的数据流对做太多讨论,而BRAID方法采用界标模型,对滞后关联的情况进行了讨论。
多数据流聚类通过对多条数据流进行聚类分析,发现相似的数据流。
5.数据流演化分析
数据流演化分析是指以文字或图片的形式,将数据流形成过程中,内部隐含的类模式的变化情况进行展示,并对相关结果进行分析的一个过程。数据流聚类中的数据流的演化分析是区别于静态数据聚类的特征之一,其分析的对象是经数据挖掘技术处理得到的中间结果。由于数据流是一系列的时间序列,随着时间的变化而相应地发生动态变化,对应的聚类模型也会实时变化,通过聚类使用户知道发生了事件,以便用户及时调整决策。通过对当前数据流变化情况的分析,实时准确地为用户决策提供科学依据。例如在畜禽养殖环境的监控中,新聚类的出现可能意味着环境异常,用户获取这一变化有利于及时采取相关措施,进行相应的调控。在网络监控数据流中,新聚类的出现有可能是因网络攻击的发生导致网络流量产生异常。因此,在算法设计时,充分考虑挖掘数据流内部隐含的模式在形成过程中的变化,并对其结果进行相应的分析至关重要。数据流的聚类演化分析主要包括创建新类、类内元素过期、旧类消失、数据变化从而引起类的属性与位置变化等类的漂移。
6.高维数据流聚类
目前大多数的聚类算法主要是针对低维属性设计的,一旦属性的维度超过十,甚至达到上百或是上千时,传统的算法不能进行有效处理。这是因为属性维度增加时,通常仅有几个维度是与某一类相关的,那些不相关的维度数据会形成大量的噪声,甚至造成某些类被隐藏。高维数据的数据量往往达到GB级别乃至TB级别,庞大的数据规模对数据挖掘的质量和效率都提出了新的要求。此外,随着属性维的增加,数据变得异常稀疏,在这种情况下,传统的距离度量方法失效,因此,高维数据流聚类问题充满挑战性。
现有的高维数据流聚类算法的研究思路主要包括遵循投影聚类技术、基于网格和密度的聚类技术、基于双层结构的聚类技术。
聚类模式发现难度较大,且不一定具有现实意义,采用在投影子空间中寻找聚类,是近年来高维聚类领域广泛采用的研究方法。根据聚类搜索策略的不同,子空间聚类方法可分为自顶向下的搜索策略和自底向上的搜索策略两大类。基于网格和密度的聚类采用网格划分技术,将网格内数据点数作为网格密度,根据密度阈值从而判断网格的稠密与否,将稠密的类形成新簇。该算法只与密度阈值及网格划分的数量有关,不受数据规模的影响。基于双层结构的聚类技术分为在线微簇聚类和离线宏聚类,其中在线微簇聚类将网格信息以快照方式存储,实现了数据流的降维;离线宏聚类依据用户指定时间跨度对网格形成微簇来聚类,提高了在线处理速度。
高维数据流聚类的研究处在起步阶段,仍面临诸多有待突破的问题,例如基于网格和密度的聚类需要输入较多的聚类参数;怎样构造有效的距离度量函数,适应数据流的增量处理、减量遗忘;投影聚类后如何获得精确的子空间概要信息等。
1.3.2 国内外相关文献研究
国内,金澈清等对国内外关于数据流的核心概要结构的生成与研究成果进行了综述,并对比了界标模型、滑动窗口模型中各种方法的优缺点。李建中等采用多元回归模型,研究了基于滑动窗口的未来数据流预测聚集查询处理方法,为了降低预测的误差,设计了自适应调整模型。实验结果表明,该预测模型更适合处理具有线性关系的数据流。张冬冬等研究了对数据流历史数据的存储管理和聚集查询处理,通过对最近产生的历史数据实施多层递阶抽样存储,在内存中建立HDS-Tree索引,减轻外存空间的存储负担,实现了数据流历史数据的存储与分析。彭商濂等指出在很多应用中历史数据流所含信息丰富,不能在一次扫描后丢弃,研究了在实时-历史数据流上同时进行事件的检测和查询,用时空关系和时态关系管理滑动窗口内产生的模式匹配结果,但未考虑多个用户同时查询、数据乱序的情形。张建朋等设计了一种可处理离群点,并能通过微簇衰减密度实时检测数据流变化的加权近邻传播聚类算法,但该算法不适用于分布式环境。陈安龙等提出了一种面向多数据流环境的数据流压缩算法,该方法采用小波技术,利用了多数据流之间的耦合特征。庄雪吟等通过分布式流水线计算,设计了一种实时流数据处理框架,可应用于物联网的复杂装备状态监测的数据流处理,但在实际应用中仍有很多方面有待提高。秦首科等针对滑动窗口上的数据流突变监测,提出了基于分段分形模型的突变检测算法,降低了检测处理时间的复杂度,但检测窗口的最适合大小还有待进一步研究。毛国君等将异常检测与误用检测结合,提出一种基于多维数据流挖掘的网络入侵检测模型。刘三民等用支持向量机作为模型分类训练器,利用增量学习原理,设计了一个基于样本不确定性的增量式数据流分类模型,但存在效率不高,分类受噪声影响等问题。王涛等采用时空滑动窗口模型进行动态挖掘,综合运用聚类分析、主成分分析、多元线性回归方程,提出了一种数据流挖掘算法。罗元建等提出了一种基于有限状态机,面向RFID流数据进行清理与过滤的方法,该方法能清理系统内部冗余标签数据,有效过滤系统外标签数据,并筛选有效标签数据,降低误读、漏读带来的风险。焉晓贞等运用卡尔曼滤波实现无线传感数据流估计模型的动态调整,用多元回归降低数据流估计算法的复杂度。张昕等提出了一种改进的字典树结构,对数据流中的频繁模式进行了挖掘。屠莉等采用链表队列,提出一种基于滑动窗口的流数据频繁项挖掘算法,通过参数的变化可以获得不同的流数据频繁项挖掘算法。李国徽等针对用户对新数据流的内容比旧数据流感兴趣,研究了任意大小的滑动窗口的数据流的频繁项的算法,使用了衰减模型及滑动窗口树来降低时空复杂度。刘学军等根据数据流的特点,研究了一种新方法,利用分段、逐段挖掘滑动窗口中的频繁闭合模式。汤克明等通过建立三个概要表,选取概率值最高的前k项元组集合,提出了一种基于滑动窗口的不确定数据流查询算法。杨宁等提出了一种多数据流上的谱聚类算法,解决了从多数据流中挖掘演化事件的难题。亓开元等提出一种基于大规模历史数据及高速数据流的实时处理方法。
国外,Hoang研究了在滑动窗口上对Top-k频繁项的挖掘;Massawe等提出了一种针对RFID数据流中的自适应数据清洗方案;Kawashima等研究了面向不确定数据流的概要数据结构;Ntoutsi 等研究了面向高维数据流的基于密度的投影聚类;Gulisano等设计了一个弹性的可扩展的数据流处理框架;Dewan等按照数据流漂移概念采用投票方式,建立了一种分类模型;Humphries等研究了一个小到中等规模的现场用户的数据流查询处理系统,该系统采用模块化设计,有一个自主管理的缓冲区,提出了数据半自主丢弃的策略;Works等研究了一个自适应多路数据流系统的索引策略,该策略不仅改变了多查询获取方式,而且在维护和存储上也是轻量级的。Pita等设计了一种专用于堤岸监测传感器网络系统的数据流存储和分析的模型,从数据处理性能和数据存储的角度展开研究,对数据流中的各种信号进行了相关设计。Alzghoul 等设计了一种基于数据流预测的故障检测系统,研究表明数据流预测能减少分布式数据流处理系统的通信资源的能耗。Zaman 等研究了从数据流中去除噪声点的算法,该算法能从有用的数据流中鉴别出噪声点,并显著地降低网络监测数据流的规模和维度。Bifet 等在数据流学习窗口中引入了概率自适应学习窗口,实现了基于概率窗口的数据流分类。Domingos 等针对数据流概念漂移及数据量产生一个模型,提出了一个包含三个步骤的数据流挖掘框架。通过一定数量的训练,推导出上界数据挖掘算法;根据训练数据的功能,推导出精度损失的数据模型;依据精度限制,降低时间复杂性。Domingos 等提出快速决策树算法,构造了一棵动态决策树,通过增枝或剪枝策略来保证获取数据流的最新信息,从而实现了对数据流的挖掘分类。Palpanas等针对数据流中的数据的重要性随时间而衰减的特性,提出了衰减函数,该函数能处理用户定义的数据。Bulut等基于小波的树形结构具体设计了有遗忘特性的数据流概要结构,只需动态维护数据流上的小波系数,但缺点是数据衰减的速度不可控。Aggarwal 等对于离现在久远的数据用粗粒度进行处理,建立了金字塔时间窗口,利用倾斜窗口来保存数据流的概要信息,对数据流的分类进行处理。Dass 等研究了实时数据流的挖掘算法,该算法能自适应调整窗口大小固定的批处理数据流的大小,适应潜在分布可能会改变的数据流,改变了先前数据流的挖掘算法要求数据量固定的制约。Kopelowitz等考虑了数据流的多项式及指数级的衰减函数,提出一个时间复杂度为O(log2N)的新算法,一个近似多项式衰减的匹配下界,探讨了算法和近似允许的附加误差界。Cormode等研究了数据流上的时间衰减函数,对数据的新旧赋予不同的权值,给出了一个确定性算法逼近当下的衰减函数的聚集,如滑动窗口上的多项式衰减,并对按序到达的数据与过期到达的数据进行了比较,结果表明该算法取得了较好的效果。
国内外学者对数据流的研究,从时间角度来讲,主要是研究历史数据流、当前数据流和未来数据流;从数据处理环节来讲,主要是研究数据流的预处理、数据流的集成、数据流分析等;从技术角度来讲,主要是研究数据流的聚类、分类、查询、存储、预测;从维度角度来讲,主要是研究一维数据流和多维数据流;从数据流挖掘对象来讲,主要是研究频繁项、概要数据结构、噪声点;从数据流研究对象来讲,主要是研究单数据流、多数据流。
数据流处理的应用场景较多,以智慧农业、精准农业为代表的农业应用,产生的农业大数据主要是数据流。流处理中,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来。因此,不再进行数据流的存储,而是当流动的数据到来后在内存中直接进行数据的实时计算。
农业领域中的数据流来源众多,形式多样,处理复杂,单一的计算模式很难满足不同的计算需求,因此,如何根据数据流的不同数据特征和计算特征,从多样性的计算问题和实际需求中提炼并建立出高层抽象或模型,是目前数据流研究亟待解决的问题。
对于实际采集到的数据流,不同用户会有着不同的需求,本书依托养猪场智慧农业平台的研究与示范项目,从实际需求出发,针对数据流预处理阶段的数据流的聚类方法、数据流集成过程的追溯方法、数据流分析过程的实时预测方法进行了相关阐述,并在最后设计了一个面向养殖环境的猪舍集数据流采集与预测为一体的自动化控制系统。