慕课笔记-数据科学导论-第三章数据采集与预处理-大数据来源/采集方法/预处理流程/数据清洗

数据采集与预处理

(1)大数据的来源

信息来源

  • 1.信息管理系统

    • 信息管理系统主要通过用户输入和系统二次加工的方式产生数据,其产生的数据大多数为结构化数据,通常存储在数据库中。
      
  • 2.网络信息系统

    • 在本质上,网络信息系统是信息管理系统的延伸,是专属于某个领域的应用,具备某个特定的目的。
  • 3.物联网系统

    • 物联网是新一代信息技术,其核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络,
  • 4.科学试验系统

数据类型来源

  • 1.传统商业数据

    • 来自企业ERP系统、各种POS终端及网上支付系统等业务系统的数据
    • 传统商业是主要的数据来源
  • 2.互联网数据

    • 具有大量化,多样化,快速化等特点
    • 指网络空间交互过程中产生的大量数据
    • 互联网是大数据信息的主要来源
  • 3.物联网数据

    物联网的定义:通过射频识别(Radio Frequency IDentification,RFID)装置、传感器、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,以进行信息交换和通信,从而实现智慧化识别、定位、跟踪、监控和管理的一种网络体系。物联网数据是除了人和服务器之外,在射频识别、物品、设备、传感器等节点产生的大量数据,包括射频识别装置、音频采集器、视频采集器、传感器、全球定位设备、办公设备、家用设备和生产设备等产生的数据。

    • 主要特点

      • 数据量更大
      • 传输速率更高
      • 更加多样化
      • 对数据真实性要求更高

(2)数据的采集方法

1.系统日志的采集方法

  • 很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Facebook公司的Scribe、Hadoop平台的Chukwa、Cloudera公司的Flume等。这些工具均采用分布式架构,能满足每秒数百兆的日志数据采集和传输需求。

  • Scribe
    在这里插入图片描述

    • Facebook开源日志收集系统,为日志的“分布式收集,统一处理”提供了一个可扩展的、高容错的方案。

    • 架构

    • Scribe Agent

      • Scribe Agent实际上是一个Thrift Client,Scribe内部定义了一个Thrift接口(唯一方法),用户使用该接口向Scribe发送数据。
      • Scribe Agent发送的每条数据记录包含一个种类(Category)和一个信息(Massage)。
    • Scribe

      • 接收Thrift Agent发送的数据,从各种数据源上收集数据,放到一个共享队列,推送到后端的中央存储系统
      • 当中央存储系统出现故障时,Scribe暂时将数据写入本地文件等系统恢复后再次上传
      • 根据Category将不同主题的数据存储到不同目录中,便于分别进行处理
    • 中央存储系统

      • Scribe中的store,当前Scribe支持非常多的store类型,包括文件、Buffer或数据库。
  • Chukwa

    • 一种对大数据量日志类数据的采集、存储、分析和展示的全套解决方案和框架。

    • 在这里插入图片描述

    • 架构

    • 适配器(Chukwa Adapter)

      • 适配器是直接采集数据的接口和工具。
      • 每种类型的数据对应一个Adapter,同时用户也可以自己实现一个Adapter来满足需求。
    • 代理(Chukwa Agent)

      • Agent给Adapter提供各种服务,包括启动和关闭Adapter,将Adapter收集的数据通过HTTP传递给Collector,并定期记录Adapter状态,以便Adapter出现故障后能迅速恢复。
      • 一个Agent可以管理多个Adapter。
    • 收集器(Chukwa Collector)

      • 它负责对多个数据源发来的数据进行合并(防止大量小文件的写入),并定时写入集群。(因为Hadoop集群擅长处理少量的大文件,而对大量小文件的处理则不是它的强项)
    • 多路分配器(Chukwa Demux)

      • 它利用MapReduce对数据进行分类、排序和去重。
    • 存储系统

      • 采用HDFS作为存储系统。HDFS的设计初衷是支持大文件存储和小并发高速写的应用场景,而日志系统的特点恰好相反,它需要支持高并发低速率的写和大量小文件的存储,因此Chukwa框架使用多个部件,使HDFS满足日志系统的需求。
    • 数据展示

      • Chukwa不是一个实时错误监控系统,它分析的数据是分钟级别的,能够展示集群中作业运行的时间、占用的 CPU 及故障节点等整个集群的性能变化,能够帮助集群管理者监控和解决问题。
  • Flume

    • Cloudera公司提供的分布式、可靠和高可用的海量日志采集、聚合和传输的系统。

    • 一个管道式的日志数据处理系统,其中数据流由事件(Event)贯穿始终。Event是Flume的基本数据单位,它包含日志数据并且携带消息头,其中日志数据由字节数组组成,这些Event由外部数据源生成。

    • 架构
      在这里插入图片描述
      运行核心是Agent
      Flume以Agent为最小的独立运行单位,一个Agent就是一个JVM。
      在实际日志系统中,Flume由多个Agent串行或并行组成,完成不同日志数据的分析。
      每个Agent是一个完整的数据收集工具,并包含3个核心组件,一个Agent可以包含多个Source、Channel或Sink。

    • Source

      • Source是数据的收集端,负责将数据采集后进行特殊的格式化,将数据封装到事件(Event)中,然后将事件推入Channel中。
      • Flume提供了很多内置的Source类型,支持Avro、log4j、syslog、UNIX终端输出和http post等不同格式的数据源,可以让应用程序同已有的Source直接打交道。
      • 如果内置的Source无法满足需求,用户可自定义Source。
    • Channel

      • 连接Source和Sink的组件,可以看作一个数据的缓冲区,可以将事件暂存到内存中,也可以持久化存储到本地磁盘上,直到Sink处理完该事件。
      • Channel支持将数据存在内存、JDBC、File等其他持久化存储系统中。
    • Sink

      • Sink从Channel中取出事件,然后将数据发送到别处(可以是文件系统、数据库、HDFS,也可以是其他Agent的Source)。
      • 在日志数据较少时,它可以将数据存储在文件系统中,并且设定一定的时间间隔定时保存数据。

2.网页数据的采集方法

  • 网络大数据有许多不同于自然科学数据的特点,包括多源异构、交互性、时效性、社会性、突发性和高噪声等,不但非结构化数据多,而且数据的实时性强。大量数据都是随机动态产生的。

  • 一般通过网络爬虫来实现

  • 网络爬虫采集和处理数据的3个重要模块

    • 采集模块

    • 数据处理模块

    • 数据模块

      • 经过处理的数据可以分为3类。第一类是SiteURL,即需要抓取数据的网站URL信息;第二类是SpiderURL,即已经抓取过数据的网页URL;第三类是Content,即经过抽取的网页内容。
  • 爬虫的基本工作流程

    • (1)从 SiteURL 中抽取一个或多个目标链接写入 URL 队列,作为爬虫爬取信息的起点。
    • (2)爬虫的网页分析模块从URL队列中读取链接。
    • (3)从Internet中获取该链接的网页信息。
    • (4)从网页内容中抽取所需属性的内容值。
    • (5)将获取的网页内容值写入数据库的Content,并将此URL存入SpiderURL。
    • (6)从当前网页中抽取新的网页链接。
    • (7)从数据库中读取已经爬取过内容的网页地址,即SpiderURL中的链接地址。
    • (8)将抽取出的URL和已经抓取过的URL进行比较,以过滤URL。
    • (9)如果该网页地址没有被抓取过,则将该地址写入SiteURL;如果该地址已经被抓取过,则放弃存储此网页链接。
    • 在这里插入图片描述
  • 爬虫的网页抓取策略

    • 在这里插入图片描述

    • 深度优先策略

    • 宽度优先策略

    • 反向链接数策略

      • 反向链接数是一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。

3.其他数据的采集方法

  • 对企业生产经营数据或学科研究数据等保密性要求较高的数据,可以通过与企业或研究机构合作,使用特定系统接口等相关方式采集。
  • 尽管大数据技术层面的应用可以无限广阔,但由于受到数据采集的限制,能够用于商业应用、服务于人们的数据要远远小于理论上大数据能够采集和处理的数据。因此,解决大数据的隐私问题是数据采集技术的重要目标之一。

(3)数据预处理流程

影响数据质量的因素

  • 1.大数据处理环节对数据质量的影响

    • 数据采集阶段

      • 数据来源
      • 数据录入
    • 数据整合阶段

      • 数据集成错误
    • 数据分析阶段

      • 建模
    • 数据可视化阶段

      • 数据表达质量不高
  • 2.评估数据质量的标准

    • 准确性

    • 完整性

    • 一致性

      • 关联数据之间的逻辑关系是否正确和完整
    • 及时性

    • 可信性

      • 数据来源的权威性
      • 数据的规范性
      • 数据产生的时间
    • 可解释性

数据预处理的目的

  • 数据预处理是一个广泛的领域,总体目标是为进行后续的数据挖掘工作提供可靠和高质量的数据,减少数据集规模,提高数据抽象程度和数据挖掘效率。
  • 在实际操作中,应根据数据的具体情况选择合适的预处理方法
  • 数据预处理的主要任务包括数据清洗、数据集成、数据变换、数据归约等。

数据预处理的流程

  • 在这里插入图片描述

  • 概括

    • 数据清洗可以用来清除数据中的噪声,纠正不一致的数据。数据集成先将数据由多个数据源合并成一个一致的数据,然后进行存储。
    • 数据变换可以用来把数据压缩到较小的区间,如0.0~1.0。数据归约可以通过聚集、删除冗余属性或抽样来降低数据的规模。这可以提高涉及距离度量的挖掘算法的准确率和效率。在数据预处理的实际应用过程中,上述步骤有时并不是完全分开的,可以一起使用。
      
  • 数据清洗

    • 现实世界的数据一般是不完整、有噪声和不一致的。特别是在数据量特别大的情况下

    • 数据清洗任务通过填写空缺值,消除噪声数据,识别或删除孤立点,并解决不一致性来“清洗”数据,从而改善数据质量,提高数据挖掘的精度和性能。

    • 处理空缺值的基本方法

      • ① 忽略元组。
      • ② 人工填写空缺值。
      • ③ 用全局常量替换空缺值。
      • ④ 用属性的中心度量(如均值或中位数)填充空缺值。
      • ⑤ 使用与给定元组属同一类的所有样本的属性的中心度量填充。
      • ⑥ 使用最可能的值填充缺失值,可以用回归、贝叶斯或决策树等方法来确定缺失值。
    • 消除噪声数据

      • 噪声数据是一个测量变量中的随机错误或偏差,包括错误的值或偏离期望的孤立点值。

      • 出现噪声数据的原因可能有数据收集工具的问题、数据输入错误、数据传输错误、技术的限制或命名规则不一致。

      • 针对这些原因,我们通常采用分箱法、回归法、聚类法等数据平滑方法来消除噪声数据。

        • ① 分箱法。通过考察数据的“近邻”即周围的值来光滑有序数据值。这些有序数据值被分布到一些“桶”或箱中。由于分箱法考察近邻的值,因此它进行的是局部的光滑。
        • ② 回归法。回归法即采用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的最佳直线,使一个属性能够预测另一个。多元线性回归是线性回归的扩展,它涉及多个属性,并将数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,能够帮助消除噪声。
        • ③ 聚类法。它将类似的值组织成群或簇,将落在簇集合之外的点视为离群点。一般这种离群点是异常数据,最终会影响整体数据的分析结果,因此对离群点的操作是删除。
  • 数据集成

    • 有时我们分析数据时会使用来自多个数据源的数据,数据集成是将多个数据源中的数据整合到一个一致的数据存储(如数据仓库)中,由于数据源存在多样性,因此需要解决可能出现的各种集成问题。

    • 集成过程中的三类主要问题

      • 实体识别问题

        • 在数据集成时,来自多个信息源的现实世界的等价实体如何才能“匹配”?这就涉及实体识别问题。
        • 通常,可以根据数据库或者数据仓库中的元数据来区分模式集成中的错误。每个属性的元数据包括名称、含义、数据类型和属性的允许取值范围,以及处理空白、零或NULL值的空值规则
      • 冗余问题

        • 集成多个数据源时,冗余数据经常会出现,常见的是冗余属性。如果一个属性可以由另外一个表导出,则它是冗余属性,例如,“年薪”可以由“月薪”计算出来,则“年薪”就被视为冗余属性。另外,冗余数据还包括同一属性多次出现、同一属性命名不一致等情况。
          
        • 有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据,度量一个属性能在多大程度上蕴含另一个属性。
          
      • 数值冲突的检测与处理

        • 对现实世界的统一实体,来自不同数据源的属性值可能是不同的。这可能是因为数据的表示、比例或编码、数据类型、单位、字段长度不同。
          
  • 数据变换

    • 在数据预处理阶段,数据被变换或统一,使挖掘过程可能更有效,挖掘的模式可能更容易理解。

    • 数据变换策略

      • (1)光滑:去掉数据中的噪声。光滑方法包括分箱法、聚类法和回归法。
      • (2)属性构造(或特征构造):可以由给定的属性构造新的属性并添加到属性集中,以利于挖掘。
      • (3)聚集:对数据进行汇总和集中。例如,可以聚集日销售数据,计算月和年销售量。通常,这一步用来为多个抽象层的数据分析构造数据立方体。
      • (4)离散化:数值属性(如年龄)的原始值用区间标签(如0~10、11~20等)或概念标签(如youth、adult、senior)替换。这些标签可以递归地组织成更高层概念,使数值属性的概念分层。
      • (5)规范化:把属性数据按比例缩放,使之落入一个特定的小区间,如−1.0~1.0或0.0~1.0。
  • 数据归约

    • 数据归约技术可以用来得到数据集的归约表示,归约后的数据集比原数据集小得多,但仍近似地保持原数据的完整性。

    • 数据归约策略

      • (1)数据立方体聚集

      • (2)属性子集选择

        • 属性子集选择通过删除不相关或冗余的属性(或维)减少数据量。属性子集选择的目标是找出最小属性集,使数据类的概率分布尽可能地接近使用所有属性的原分布。在缩小的属性集上挖掘还有其他优点:减少了出现在发现模式上的属性数目,使模式更易于理解。
      • (3)数据压缩

        • 利用数据编码或数据转换将原来的数据集合压缩为一个较小规模的数据集合。
        • 无损压缩:可以不丢失任何信息地还原压缩数据,如字符串压缩,压缩格式为 ZIP或RAR。
        • 有损压缩:只能重新构造原数据的近似表示,如音频/视频压缩。
      • (4)数值归约

        • 数值归约是通过选择替代的、较小的数据表示形式来减少数据量。
        • 有参方法:通常使用一个参数模型来评估数据。该方法只需要存储参数,而不需要实际数据,能大大减少数据量,但只对数值型数据有效。
        • 无参方法:需要存放实际数据,如使用直方图、聚类、抽样的技术来实现。

XMind: ZEN - Trial Version

发布了12 篇原创文章 · 获赞 3 · 访问量 769

猜你喜欢

转载自blog.csdn.net/weixin_45761327/article/details/104632463