zoukankan      html  css  js  c++  java
  • 图解物联网---物联网与数据分析

      从工业角度而言,给工厂中的生产流水线和流通的产品打上电子标签,就能够对其进行高效管理。此外,只要给产品的各个部位植入传感器,产品出库后通过这些传感器获取产品的运行情况,就能够自动记录人们使用这些产品所进行的活动。更有一些高级的传感器,其具备如下机制:预知故障,或者通知人们应该在什么时候进行维护。

     1、分析的种类

    如果不谈传感器数据的类别,只按分析目的来区分,分析大体上可分为3 种:基于采集的“可视化”分析,基于统计分析和机器学习等高级分析技术的“发现”分析和“预测”分析(图6.2)。

    •  可视化分析

      可视化分析指的是对积累的数据进行加工,根据需求通过采集和图表形式把数据的内容加工成人眼能看懂的形式。可视化分析和很多人经历过的那些处理一样,都是用电子制表软件计算数据,并将其做成图表,好让数值一目了然。换成物联网就是把存在数据库里面的传感器数据取出来,用电子制表软件按时间顺序读取并制成图表。

    • 发现分析

      发现分析就是在可视化所使用的采集分析的基础上,再通过统计分析和机器学习等高级的方法来发现数据的趋势、规律和结构等。通过此方法能从数据中提取出那些人类无法从图表中看出的、隐藏在数据中的规律和趋势。打个比方,假设物联网用到了很多种类的传感器,在这种情况下,人类很难发现这些不同种类的传感器数据之间存在的关联性,但是通过发现分析就能够找出这些关联性。

    • 预测分析

      预测分析即从过去积累的数据中找出数据固有的趋势和规律,以掌握今后可能会发生的状况,知晓未来。对过去积累的数据进行分析后,一旦获取新的数据集,就能够推测出这些数据表现了怎样的状况。
      下面一起来理解一下这3 种分析的内容以及相关的知识。

    2、采集分析

      采集分析就是把数据加工,以人类能够直观理解的形式来表现数据。采集分析是最简单的一种分析方法,但其顺序和之后要讲的高级的分析方法是共通的,一般情况下都需要进行如图6.3 所示的处理流程。

    •  数据采集

      数据采集就是采集用来分析的数据,并将这些数据以文件的形式保存到数据库,或是先在内存上展开,再把数据保存在用于处理数据的环境之中。因为大多数情况下,分析对象都是那些过去积累的旧数据,所以这里需要利用数据库来保存采集到的数据。如果数据量很庞大,也会利用Hadoop 等基础架构来存储数据。
      首先根据需求利用SQL 或搜索工具来获取这些数据,再将这些数据读取到电子制表软件中,将其转化成CSVA 格式,最后用R 语言等统计分析软件进行处理。

    • 预处理

       预处理,就是把“数据采集”采集到的数据中没用的多余数据剪切掉。除此之外还包括对数据实施一些处理,将其加工成有意义的数据,有时预处理还会创造出对象数据(如连接多个数据等)(图6.4)。

       如果要分析的数据是传感器数据,那么就会有海量的传感器数据需要分析,因为物联网服务在源源不断地送来传感器数据。然而,在大多数情况下我们想利用的只是其中极少的一部分数据。因此在已经确定数据用途的前提下,可以在采集的同时一并进行预处理,这样就可以减少数据库中存储的无用数据的数量,节约数据使用量。不过处理完的数据很难再还原成原始数据,所以不确定某些数据对分析是否有帮助时,就必须慎重判断是否应该对其执行预处理。

      由此,为了在数据产生时能马上对其进行处理,并实时获取处理完毕的数据,就需要像CEP 这样的用于数据处理的基础技术。

    • 采集

      采集指的是以数值数据为基础,计算如总数、平均值、方差、分位点(包含中位数)等统计数值。

      多数情况下,当数据被以表形式存储在数据库中时,人们会采用SQL 来执行这些处理。SQL 里含有计算平均值和总数的命令。虽然也可以生成一个程序来进行采集处理,不过对大多数程序员来说执行采集这件事本身就不怎么困难。但是,在用程序计算的时候有可能因为编程问题,或是语言特有的规格问题而导致计算误差,所以希望大家利用统计分析软件R 语言以及其他语言提供的数值计算库来进行计算。

    •  以制图举例

       统计结果的表示方法多种多样,有单纯用表形式来表示的,也有用平均值或方差这样的指标来表示的,通常可以利用如图6.6 所示的这些图表来表示数据。

     

    •  网络图

      如图6.8 所示,网络图是一张由一个个节点(树节)和连接节点的路径(树枝)构成的图。

      近年来出现了Cytoscape 和Gephi 这样易于使用的工具,这些工具的出现促进了网络图的普及与应用。网络图的普遍应用实现了SNS 等社交媒体上用户之间的联系状况,顾客和销售代表的交涉状况,以及公司商品之间存在的捆绑销售关系的可视化。它能有效表明数据之间存在的联系。

    •  地理图

      随着工具和服务的发展,迅速得到应用普及的除了网络图之外还有地理图。

      如今这些用于可视化的工具也在逐步普及。今后随着传感器数据的多样化,人们将会追求更高级的可视化技术,好更直观地捕捉传感器所采集到的数据。另外,就像为了“发现”而分析一样,使用高级分析方法之前,还有一个步骤,那就是利用可视化获取数据的质量和大体倾向。对于高级分析来说,这是一个不可或缺的基础

       高级分析围绕统计分析和机器学习,准备了形形色色的分析方法和算法。大家需要解决像下面这样的问题:用哪种方法进行分析,为了分析要创造出什么样的数据。因此我们就需要跟进行可视化时一样,事先进行采集分析,掌握数据的大体倾向。

      如果能够理解数据的特征,实际上也就意味着能够利用分析方法来获取高级的知识。

    3、高级分析的基础

      机器学习可以说是高级分析的典型代表。机器学习领域汇集了众多技术,这些技术用于让计算机基于大量数据来学习数据的倾向并作出某些判断。机器学习的算法可以根据输入的数据类型分为“监督学习”和“非监督学习”两种。

    • 监督学习和非监督学习

      当用机器学习的算法让计算机学习数据倾向时,算法会根据用于学习的数据中是否含有“正确答案”的数据而有所不同。打个比方,假设现在要从传感器数据来判断分析设备的故障情况和建筑物的损坏情况等异常状况。如果采用监督学习的算法,就需要输入过去实际发生异常状况时的数据,即需要明确地输入“异常”的数据。说白了,算法要学习“正确答案”和“不正确答案”之间存在的差异。

      相对而言,非监督学习不区分输入的数据是否存在异常,也就是说,非监督学习算法会学习数据整体的倾向,在整体中找出倾向不同的数据,将其判断为“异常值”。

     分析方法的种类

      那么在理解了监督学习和非监督学习的基础上,接下来就以聚类和类别分类等为切入点来了解一下这些分析方法。
      根据其用法,分析方法可以分为几种。其中,图6.12 所示的3 种方法的使用频率特别高,接下来将详细讲解这3 种方法。

    •  聚类分析

      聚类分析,其目的是基于样本(样本数据)具有的特征,把相似的样本分成多个组(聚类)。具体的聚类算法包括K-means 算法、自组织映射、层次聚类等。这些方法能够根据数据的特征找到并整合具有同样特征的数据。

      假设为了基于某学校班级的期末考试结果来制定今后的教育方针,需要把学生们按各自擅长的领域分成几个聚类。在此假设把数学和语文的得分视为学生的特征,把学生分成两个聚类。这时候数学和语文的分数就成了表示学生特征的数值。这里用某些数值来表示了某种数据的特征,这些数值就叫作特征量。如果将K-means 算法这样的分类算法用于这些特征量,就能根据这些特征量来把学生分成不同的聚类,如图6.13 所示。

       K-means 算法就是针对数据的分布来事先指定要把数据分成多少个块,即分成多少个聚类,由此来机械性地生成数据块的一种算法。

      拿这个示例来看,数据被分成了几个数学分数较高的理科学生的群(理科聚类),以及语文分数较高的文科学生的群(文科聚类)。聚类的数量是可以随便定的,如果分成3 个聚类,那么还能够像图6.14 这样,新生成一个含有均衡型学生的聚类。

      为了用平面坐标表示,这次的示例只取了数学和语文两个科目作为特征,除此之外再增加自然科学和社会等特征时,也是采用同样的分类方法。不过如果胡乱增加一堆特征,就不容易分析算出的组具有什么样的含义了。而且聚类数也一样,聚类数过多,组和组之间倾向的差距就会相应地变小,同样很难看出组的特征。

       下面再来看一个聚类的示例,这次是把聚类应用到设备数据的分析中的情况。假设我们要给使用自己公司的应用程序的用户发送宣传邮件(图6.15)。

    •  类别分类

      类别分类分析的目的在于把数据分成两组或者更多组。

      靠人来搜集非娱乐博客的文章,同样也可以分析出这些文章中出现的词语的种类和频率等信息,将这些信息作为“非娱乐种类”的数据让类别分类的算法学习。

    •  维度压缩

      维度压缩也叫“维度约简”或“降维”,即对于大型数据中的大量数据,尽全力留下其中的重要信息并压缩冗余的信息,借此来缩小数据量的分析方法。维度压缩包括主成分分析、因子分析、多维尺度法等。

       问卷数据偶尔会重复问相同的问题。例如在做一个关于购买意向的调查时,分5 次进行问卷调查,如果问题中包含“重视价格”和“喜欢折扣”这两项,那么这两项的答案很可能都指的是同一个方向,如果对这两个相似问题分别保留答案,那么不止数据量会增加,在之后的分析过程中变量还会增多,这样一来就可能加深理解上的难度

    • 执行分析的环境

      分析手法在大多数情况下都是用编程语言的库,以及专用的分析工具来执行的(图6.18)。

       说到编程语言,近来Python 和R 语言尤其引人注目。这两种语言包含很多有关分析的库,用很简单的描述就能执行很多分析。

     4、用分析算法来发现和预测

      可视化分析是通过采集分析来理解数据具有的倾向,分析结果呈现为统计量和图表的形式,数据被视为无机的数值。也可以说它是一种从高处俯视数据,捕捉数据表面倾向的分析。

    • 通过检测发现因果关系

      假如我们想知道造成机器故障的原因所在,就需要将传感器采集到的数据加以灵活应用,如机器运转时的温度、压力、振动等。

       此外,通过灵活应用这些统计方法和统计知识,就能比采集分析更能发现复杂的倾向,这正是发现分析的特点所在。

    4、预测

      发现分析的目的是从数据中找出复杂的倾向和因果关系,并将其转化成人类的知识。相对地,预测分析则是基于找出的规律和构造来推测今后会发生的事。

      预测分析并没有特定的方法,既有像回归分析这样预测数量的分析,也有像类别分类这样,在给出了未知样本的情况下进行分类的分析。特别是机器学习使用的方法都是一些在基于过去的数据进行学习的基础上,来预测和判断新数据的方法,所以一般来说,这些方法不仅能发现知识,还能进行预测。

    • 回归分析

      这里先举一个回归分析的例子,假设存在某个变量y,用变量x 能将y 表示为“y = a×x + b”这样的等式,如果能根据实际测量数据求出等式中的系数,那么在给出新的x 值时就能够预测y 的值,这就是回归分析。在此我们把像y 这样作为预测对象的变量称为因变量,像x 这样用于预测y 的变量称为自变量。

    •  通过回归分析校准传感器

      回归分析还被用于传感器校准,不管多么均一地制造传感器,在制造过程中总是会发生个体上的差异,测定值也就会包含误差。含有误差的实际的测量值和想测量的真实数值之间存在着一定的关系,而校准就是一项导出两者间关系的操作。

    •  基于各种各样的因素来预测交通量

      说到以预测为目的来分析,那肯定要举交通量预测这个例子(图6.22)。通过传感器来持续数月地采集某条道路每天和每个时间段的交通量,再基于星期、时间段、天气等因素来分析今后的交通量,从而实现对道路拥堵信息的预测。同理,我们还能够对家庭和办公室大楼的用电量进行预测。

     5、数据分析的基础架构

      首先把数据分析的基础架构分为4 项来看,这4 项分别是采集、积累、加工、分析。

    •  采集

      在采集要分析的数据时,采集对象的性质决定了需要哪种基础架构。举个例子,如果采集对象已经存储在数据库上,那么只要使用SQL单独提取所需数据即可。

      如果采集对象是服务器或设备输出的日志数据,且已经积累了海量日志文件,那么就需要用到多种功能,例如只采集需要的日志数据的功能,只从日志提取需要的部分的功能,把结果输出到操作环境中的功能等。

    • 积累

      在数据积累中,虽然有些把数据作为文本文件来保存的,但大多数情况下,为了方便地管理和提取数据,一般都会采用数据库来积累数据。虽然笼统地称为数据库,但除了用传统的表格形式来保存数据的关系数据库以外,还出现了各种各样的数据库,例如键值存储数据库、分布式文档存储数据库、能保存要素和关系信息的图形数据库(图6.23)。

    •  加工

      在加工过程中,需要根据各自的分析目的,从已积累的通用数据中提取出所需数据,去除那些额外和缺损的数据,除了对数据施加必要的运算等处理以外,还需要一个基础架构,以生成汇集分析用数据的数据集。对于小型数据,可以用电子制表软件和程序来进行加工,但在处理像传感器数据这样的大型数据时,就需要根据数据性质来准备一个可扩展的基础架构。

    • 分析

      用于执行分析的环境包括前面介绍过的统计分析语言和数据挖掘工具。要进行这些分析,就需要具备用于计算的庞大的内存和运算能力。但在经过预处理阶段加工后,数据量就会被削减,很多分析的尺寸甚至能达到用普通的桌面工具也能处理的程度。

  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/liujunjun/p/13792253.html
Copyright © 2011-2022 走看看