一、前言

    要应用BigGorilla框架对应数据进行数据的处理与匹配,那么首先要下载Anaconda安装,下载地址:https://www.continuum.io/downloads

  Anaconda是用于辅助程序包和环境管理的框架。您可以访问以下链接

  通过安装最新版的anaconda。可以根据更常使用的python版本下载“Python 3.5”或“Python 2.7”版本。请注意,无论您选择哪个版本,您都仍然可以运行python 2.7和python 3.5。

  具体参见:http://www.cnblogs.com/shaosks/p/7121414.html

  

  二、BigGorilla组件介绍

    1、数据获取和数据抽取

      

      假设我们已经从相关的数据库管理系统中获取一个表格X(id、name、loc),并且已经从一组新闻文章中抽取一个表格Y(id、cname、address、rev)。表格X包含有关公司名称和地址的信息,而表格Y包括每家公司的地址及其季度收入(单位:十亿美元)。

    2、数据清理

      

      我们检测到GE的收入351(表格Y的最后一行)是一个异常值。在仔细检查之后,我们意识到由于抽取错误,这个数值应该是35.1,而不是351。因此,我们将这个数值手动更改为35.1。

      *请注意,一般有很多其他类型的清理操作。

    3、模式匹配

      

      接下来,我们会匹配表格X和Y的模式。我们获取匹配name⬌cname 和loc⬌address。直观地说,这意味着表格X的属性name与表格Y的cname相同,并且表格X的属性loc与表格Y的address相同。

    4、模式合并

      

      基于表格X和Y之间的匹配name⬌cname和loc⬌address,数据科学家可选择将两个模式X(id、name、loc)和Y(id、cname、address、rev)合并为一个模式Z(name、loc、rev)。请注意,合并过程中将忽略id属性,这是数据科学家有意而为的决策

    5、数据匹配

      

      接下来,我们会匹配表格X和Y的元组。这个匹配过程完成以下关联:x1 ≃ y2和x2 ≃ y1。直观地说,第一个匹配x1 ≃ y2表示元组x1和元组y2指的是相同的实际实体(此时,它们是相同的公司Apple Inc.)。

      类似地,元组x2和y1指的是相同的公司IBM Corp。这些匹配存储在表格M中

    6、数据合并

        现在我们决定合并指示相同实体的元组。例如,若要根据匹配name⬌cname和loc⬌address将x2 =(IBM,NY)和y1=(IBM Corp.、CA、25)合并到符合模式Z(name、loc、rev)的一个元组中,

      我们必须决定如何处理冲突值name属性的“IBM”与“IBM Corp.”以及如何处理loc属性的冲突值“NY”与“CA”。      

      对于name,我们可以选择编写一个启发式规则以选择较长的字符串(即这种情况下的“IBM Corp.”),因为较长的字符串更正式,能够提供更多信息。对于loc,我们可以选择编写一个规则,其将始终从第一个表格(即此时的“NY”)中选择,

      因为表格X是高质量组织的关系数据库。当然,还有其他方式可以合并数据。数据科学家通常根据他们在域和源方面的知识,编写启发式规则。

    7、模式映射

      

        用于将表格X和Y中的数据转换到表格Z中的程序叫做模式映射。在此,根据对于X和Y中的元组应该如何合并到Z中的理解,开发模式映射。该程序可以是一个SQL查询,将根据表格X和Y中的元组填充表格Z。它使用表格M确定匹配,

      并使用功能merge_name(.)应用选择之前所述较长字符串的启发式规则。

    注意:

      上述示例经过简化,以说明数据整合的关键步骤。实际上,可能会以不同的顺序执行这些步骤,甚至可能重复其中某些步骤。例如,一旦获取表格Z,数据可能再次进行清理,并与某些其他数据集匹配和合并。

    此外,数据科学家可以选择通过在SQL查询中执行外联结来保留最后一个元组,而不是抛弃有关表格Y中最后一个元组的信息。

    通常而言,很多步骤并没有示例所示的那么琐碎,例如模式匹配/合并和数据匹配/合并。因此,模式映射以及实现所需模式映射的过程并没有上述那么琐碎。为使数据科学家轻松整理数据,使用半自动化工具在每个步骤中为数据科学家提供帮助是非常重要的。

    上面的示例涵盖了数据科学渠道的“数据整理”方面。在不同源的数据整合到一个数据库中之后,数据科学家可以通过分类、集群、异常检测、关联探索和OLAP等技术,对数据进行分析。

Python数据整合与数据准备-BigGorilla应用的更多相关文章

  1. Python数据整合与数据准备-BigGorilla介绍

    参考文档:http://www.biggorilla.org/zh-hans/walkt/ 一.前言 “根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工 ...

  2. Python数据整合与数据准备-BigGorilla实例应用

    参考文档:http://www.biggorilla.org/walkt/ 一.BigGorilla应用主要步骤 如下图: 二.实例应用 1.数据获取 urllib是非常受欢迎的用于在网络上读取数据的 ...

  3. PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  4. Python 进程之间共享数据

    最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享  在mp库当中,跨进程对象共享有三种方式,第一种 ...

  5. Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?

    不多说,直接上干货! 在数据仓库领域里,的一个重要概念就是数据整合(data intergration).数据整合它就是把不同数据库中的数据整合到一起,对外提供统一的数据视图. 数据整合最典型的案例就 ...

  6. Python数学建模-02.数据导入

    数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...

  7. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  8. Python下载Yahoo!Finance数据

    Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.

  9. 用IBM WebSphere DataStage进行数据整合: 第 1 部分

    转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...

随机推荐

  1. linux下面某些常用命令的用法【转】

    转自:http://blog.csdn.net/luo3532869/article/details/7584290 ls 命令用于常看目录,用法:ls [选项][目录或文件]例:使用ls命令显示/h ...

  2. SpringMVC与Spring的父子容器关系

    问题: 在整合框架的时候有人也许会产生一个问题:能不能只配置一个扫描包加载实现类的扫描驱动,即在根目录下扫描所有的注解(@Controller.@Service.@Repository.@Compne ...

  3. bootstrapValidator关于verbose需要优化的地方

    开发中需要用到bootstrapValidator的配置verbose:false,达到当前验证不通过不往下在验证的效果 问题: 当前字段需要remote验证时,此配置无效,原因在于remote是异步 ...

  4. Pycharm上python和unittest两种姿势傻傻分不清楚【转载】

    前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittes ...

  5. Java语言中的协变和逆变(zz)

    转载声明: 本文转载至:http://swiftlet.net/archives/1950 协变和逆变指的是宽类型和窄类型在某种情况下的替换或交换的特性.简单的说,协变就是用一个窄类型替代宽类型,而逆 ...

  6. 火狐firefox插件配合scrapy,注意tbody会导致empty

    有2个常有插件,一个是xpath checker,一个是firepath(配合firebug) xpath checker是个好东西,不仅可以分析,还可以验证自己抽取的xpath是否正确 但xpath ...

  7. Linux下Tomcat安装配置

    买了台阿里云服务器,因为配置比较低,所以用Linux系统,这里记录一下我在Linux系统中Tomcat的安装配置. 前提JDK已经安装好. 安装 首先在/usr/local/下建立一个tomcat的文 ...

  8. vim 代码片段:通过vundle插件管理器安装ultisnips |centos6.5|vim7.2

    背景:中午醒来,饭都没吃,突然想到要给vim增加个代码片段的功能,因为昨天使用了gedit的代码片段,感觉不错.为什么不直接使用gedit呢?因为我相信把时间投入到vim是不会错的,精通vim就好了. ...

  9. (12)python 标准库

    模块 如果模块和自己写的程序不在同一个目录,可以通过sys.path.append(路径)把程序引入 import sys sys.path.append('C:/abc')#注意 \ 的方向 意思是 ...

  10. CSU 1330 字符识别? 【找规律】

    你的任务是写一个程序进行字符识别.别担心,你只需要识别1, 2, 3,如下: .*.  ***  *** .*.  ..*  ..* .*.  ***  *** .*.  *..  ..* .*.  ...