玩转人工智能(11)大数据的ETL和人工智能的EDA
1、Extract-Transform-Load的缩写,数据抽取(Extract)、转换(Transform)、装载(Load)的过程。
Extract
设计原则
为提高ETL效率,数据在进入ETL系统后的EXF文件都将转换为Flat Text文件格式
从ETL程序设计的灵活性和整体结构的一致性考虑,尽量采用Pull的方式,减少对源系统的影响和对其他开发队伍的依赖,并减少网络压力
由于Batch Windows的限制,如果日源数据量大于5GB则必须考虑采用Push的方式以提高传送速度,如,可以由源系统将数据转换为Flat Text文件后,由ETL程序采用FTP的方式进行传送
EXF的文件格式接近数据源的数据结构定义
在Extract过程中过滤数据仓库不需要的数据记录和字段
Push和Pull
Push
在源系统上根据定义的数据格式将每日增量数据生成数据文件,再通过FTP或文件拷贝的方式传送给ETL程序处理。
Pull
由ETL程序通过DRDA或ODBC等数据库协议直接访问源数据库获取所需数据进行处理。
Transform
EXF (Extracted Format)
由数据源Extract产生的文件,文件结构与Source相似,经过过滤,部分字段被忽略。
CIF (Common Interface Format)
CIF是ETL经过C/S/S过程产生的中间数据文件。
PLF (Pre-Load Format)
经过数据转换,用于直接加载到数据仓库的文本文件,其数据结构与数据仓库中的表定义一致。
Load
将数据缓冲区的数据直接加载到数据库对应表中,如果是全量方式则采用LOAD方式,如果是增量则根据业务规则MERGE进数据库。
2、数据科学流程EDA
探索性数据分析(Exploratory Data Analysis)
EDA主要工作:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数据进行总结等。“探索性”指分析者对待解问题的理解会随着研究的深入不断变化。
基本步骤:
- A. 检查数据
- B. 使用表述统计量和图表对数据进行描述
- C. 考察变量之间的关系
- D. 检验特征分布
- E. 其他
A 检查数据
-是否有缺失值?
-是否有异样值?
-是否有重复值?
-样本是否均衡?
-是否需要抽样?
-变量是否需要转换?
-是否需要增加系的特征?
例:
数据类型:数值型(包括整数,浮点数),类别型(字符串等),文本型,时间序列等。
注:主要考虑数值型(定量数据)和类别型(定性数据);数值型又可以分为连续型和离散型。
B 数据描述
describe() 生成描述性统计数据:总结数据分布的集中趋势,分散和形状,不包括NaN值。
help(pandas.DataFrame.describe) 查看关于Pandas数据框的describe()函数的使用说明。
例:
利用描述性统计得到一个频数分布表:.describe()
count 观测值的数量=shape[0]
mean 平均值
std 标准差
min 最小值
25% 1/4中位数
50% 1/2中位数
75% 3/4中位数
max 最大值
利用箱线图将频数分布表可视化:.boxplot()
boxes = iris.boxplot(return_type='axes')
特征去重复统计:.unique()
去除一维数组或列表中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表。
C 特征相关性
共生矩阵/交叉表 crosstab() :用于统计分组频率的特殊透视表。
发现:长度,宽度与特征值的比较几乎同时发生,即要么同时大于均值,要么同时小于均值。
假设特征petal_length,petal_width相关,对其进行图像化显示
说明:
kind 种类:scatter 散点图
x X轴:petal_width
y Y轴:petal_length
c 颜色:blue
edgecolors 边缘颜色:white
结果:
补充kind:str
'line' 折线图
'bar' 条形图
'barth' 横向条形图
'hist' 柱状图
'box' 箱线图
'kde' 对柱状图形添加Kernel概率密度线
'density' same as 'kde'
'area' 不了解此图
'pie' 饼图
'scatter' 散点图,需要传入columns方向的索引
'hexbin' 不了解此图
D 特征分布
使用直方图近似表示特征的概率分布:
EDA总结:
- pandas读取数据集,显示前5行确认是否加载正确
必要时对列名重命名
- 查看数据整体情况
行列数 data.shape
数据类型 data.dtypes
同时查看这两项 data.info()
查看连续变量的描述统计量 data.describe()
- 处理缺失值,异常值,重复值问题
各列分别有多少个缺失值 data.apply(lambda x:sum(x.isnull()),axis=0)
各行分别有多少个缺失值 data.apply(lambda x:sum(x.isnull()),axis=1)
总共有多少行有缺失值 len(data.apply(lambda x:sum(x.isnull()),axis=1).nonzero()[0])
删除重复值 data.drop_duplicates(0
- 分析特征之间相关性
- 检验数据分布
如图所示为EDA的基本流程
数据加载和数据预处理:
(1)利用Pandas库进行数据加载和预处理:处理问题数据,日期格式解析,NaN值的处理,分组和聚类,排序和索引,文本数据的编码,词频统计等;
(2)利用Numpy库进行数据处理:数组的创建,矩阵运算,数组切片,堆叠等。
数据分析:
(1)数据的探索性分析;
(2)高维数据的维数约减;
(3)异常数据的检测和处理;
(4)算法验证和参数优化及特征选择。
机器学习:
(1)基本的机器学习方法;
(2)机器学习方法的组合;
(3)大数据的处理和深度学习。
数据可视化:
(1)Matplotlib画图;
(2)交互式可视化;
(3)高级数据学习表示。
玩转人工智能(11)大数据的ETL和人工智能的EDA相关推荐
- 【大数据AI人工智能】大数据、云计算和人工智能:未来最热门专业的要点和技能要求
[大数据&AI人工智能]大数据.云计算和人工智能:未来最热门专业的要点和技能要求 文章目录 [大数据&AI人工智能]大数据.云计算和人工智能:未来最热门专业的要点和技能要求 I. 大数 ...
- a人工智能b大数据c云计算_ABC = 人工智能 + 大数据 + 云计算
小伙伴们,ABC 又有新含义了,你造么? 它不是字母表,不是歪果仁,不是美国广播公司,也不是中国农业银行,它是继BATH.996之后新鲜出炉的又一互联网新名词!!! 它是如今互联网最炙手可热的高科技: ...
- 人工智能与大数据行业的兴起,主要产生了哪些新的职位?
近年来,伴随人工智能.电子竞技等新兴产业的发展,新职业也层出不穷.既有现在流行的人工智能.大数据等技术人员:也有不常听说的农业经理人.数字化管理师等等,主要造就了以下几个新的职位: 1.人工智能工程技 ...
- 浅析人工智能,大数据
人工智能发展到了什么阶段? 人工智能的发展从开始到现在,经历了三个阶段,第一个阶段我们叫做计算智能,这个阶段要解决的事情,叫做能存会算.第二个阶段是感知智能,这个阶段是能听会说,能看会认.第三个阶段往 ...
- 大学计算机专业毕业之后,从事人工智能或大数据,继续考研还是参加工作?
计算机专业要比其他专业毕来的要强一点,考研了之后肯定更强,不过要看你考研,选择什么专业,毕业之后,看你是走哪个方向,软件方面少不了程序. 根据个人经验,从事人工智能或大数据行业,会好一点,因为这一行业 ...
- 《人工智能与大数据技术导论》适合用来深度了解AI和BD技术
#好书推荐##好书速递##好书奇遇季#<人工智能与大数据技术导论>京东当当天猫都有发售. 本书已被几十所高等院校.研究生院选为教材,适合好学的开发人员用来深度了解AI和BD技术. 2017 ...
- 人工智能和大数据技术,在内容安全领域,主要的应用场景是什么?
在中国政策下,互联网得利者如何进行内容安全管理.短信,文章,直播视频充斥着内容安全风险,提供的内容安全的核心能力,适用的核心场景,具体如下: 场景一:UGC内容智能审核 UGC内容主要分为几个场景.一 ...
- 人工智能、大数据、和数据科学领域,常用的十大类算法
AI正在改变我们的职业.我们的工作方式和我们的企业文化.AI让我们得以专注于那些真正关键的技术,让人力资源得以充分发挥他们的长处.但在工作场景中应用AI确实会让事情变得复杂,因为有各种不同层级的算法可 ...
- FMI2017——让人工智能与大数据为时代赋能
2017年8月5日,由飞马网主办的"FMI人工智能&大数据高峰论坛"在北京国家会议中心召开.大会围绕着"大数据"和"人工智能"两大主 ...
最新文章
- Docker架构:安装与基本命令
- VC6.0编写BHO 提示unresolved external symbol _main
- Cloud for Customer里点了Opportunity ID的超链接到进入overview page,背后发生了什么事?
- 将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的空间。表中不允许又重复的数据
- Android(java)学习笔记27:TextView属性大全
- ubuntupython连接数据库_Ubuntu中python的mysql操作
- java ipmitool_ipmitool使用手册
- 计算机专业英语mooc,专业英语(软件)-中国大学mooc-题库零氪
- 如何选择数据可视化工具?
- Android学习小Demo(9)一个To Do List的实现
- c语言编程字符串_C编程中的字符串
- Tomcat 7 Connector 精读(2) 协议处理器 Http11Protocol(待续)
- android studio进行增删改查代码_使用C#进行数据库增删改查(二)
- UG NX 12 重复命令
- jupyter中subplots_adjust()调整子图大小无效、子图溢出和日期标签遮挡坐标轴刻度的问题解决
- 基于物联网技术的校园智慧消防管理平台-Susie 周
- 【高级UI】【026】手动为RecyclerView添加橡皮筋拉伸回弹效果
- Linux终端和Line discipline图解
- 【转自牛客网】C++类职位校招
- 喜报携手钉钉构建统一移动报销与沟通协同平台