[Note]数据
关于数据
释义
数据是符号的集合,是表达客观事物的未加工的原始素材。可以看成是数据对象及其属性大的集合。
数据分类
从关系模型角度可以分为实体和关系,关系和实体可以包含属性,属性分为离散属性和连续属性。
数据集
数据集是数据的实例。常见的数据集分为
- 数据纪录集
- 数据矩阵
- 文档向量
- 事务处理数据
- 图数据集
- 有序数据集——具有某种顺序的数据集
- 常见如空间数据、时间数据、时空数据、顺序数据等
另一种分类是考察数据模型的结构。分为
- 结构化数据(如RDBMS储存的数据)
- 非结构化数据(如文本、视频、图像等)
- 半结构化数据(如XML、维基百科等)
数据获取和预处理
数据获取
大数据时代数据开始变得廉价,数据的获取途径多种多样。传统数据获取以文件的输入/输出为主。在移动互联网时代以基于网络的多源数据交换为主流。数据获取的挑战主要有数据格式变换和异构异质数据的获取协议两部分。
在科研领域有数据获取协议(Data Access Protocol)作为一种通用的数据获取标准。在互联网上很多企业及机构也会共享免费数据。
数据预处理
常见的数据元操作
- 合并
- 采样
- 降维
- 特征子集选择——可达到降维的效果,但不改变数据的属性结构
- 特征生成——在原始数据集上构建新的能反映数据集重要信息的属性
- 离散化与二值化——其中将数据区间映射到[0,1]区间的方法称为归一化
- 属性变换——将某个属性的所有可能取值映射到另一个空间 ,如指数变化、取绝对值。其中标准化和归一化为两类特殊的属性变化。
数据组织和管理
由于错误、无关的信息的产生和引入,数据需要控制来进行后续的分析。 数据管理包括对数据进行有效的收集、存储、处理和应用的过程。
数据清洗与精简
数据质量问题包括:噪声和离群值、数值缺失、数值重复等。解决方法为数据清洗。 在数据清洗中,可视化是一种有效的展示和交互手段。
数据精简可用于提升大规模数据查询和管理的交互性。分析和推理只需要定性的结果,采用近似解可提高对大数据的精简效率。
数据整合与集成
来自不同数据源的数据具有高度异构的特点,即不同的数据模型、不同的数据类型、不同的命名方法、不同的数据单元、以及不同的质量等。
对异构数据的处理,首先需要数据整合,即将不同的数据源进行采集、清洗、精简和转换后统一融合在一个数据集合中,并提供同一的数据视图的数据集成方式。
数据整合有两种方法
- 物化式:查询之前,涉及的数据块移动到统一物理位置。
- 虚拟式:不同的数据源上增加转换策略,构建一个虚拟层,来提供统一的数据访问接口。常使用到中间件技术,定义虚拟数据层之上数据映射关系,同时将不同的数据源在语义上进行融合。
交互分析和可视数据要求数据整合采用集中式、虚拟式的模式。
解决方案1
- 采用工具或中间件对数据源包装和联合数据库
- 提供通用模型用于交换异构数据和实现物理层的透明,同时处理异构性,保存数据源的自主性及保证可扩展性
解决方案2(更优)
- 基于计算查询理念的语义整合,利用应用领域的概念视图而不是数据源的普通描述来提供概念数据的透明性
数据库
数据库是数据的集合,并包含对数据的相关组织和操作。数据库管理系统通常包括数据库模型设计、数据分析支持、并发和容错、速度和存储容量。
数据模型包括基于对象的E-R和基于记录的关系逻辑模型。
- 关系型数据库(RDBMS)
- 数据结构和数据内容分离,具有ACID事务性。
- Cons
- 交互式可视化应用通常将数据保存在内存从而保证足够的性能
- SQL支持存储导向而不是语义导向的数据
- 关系型数据库采用触发器机制实现,难以满足实时性的需求
- Cons
- NoSQL数据库
- 支持灵活的数据模型
- 高扩展性,高可用性
- BASE(basic availability, soft state, eventual consistency)
- 根据数据结构的不同,分为:文档数据库(CouchDB, MongoDB)、网络数据库(Neo4j)、键值数据库(Dynamo, memcashed, Redis)、列数据库(HBase)
数据仓库
“数据仓库是指面向主题的、集成的、与时间相关的、主要用于存储的数据集合,支持管理部门的决策过程。”
特点
- 特定的应用方向
- 集成多个异构数据源的数据
- 时变性
- 非易失性(相对稳定性),数据只进行刷新,不进行更新处理
- 数据源于外部,并开放给外部应用
- 基本架构师数据流入/流出的过程,分为三层:源数据、数据仓库、数据应用
- 流水线称为ETL, 即
- 抽取(Extract)
- 转化(Transfer), 数据变换操作,主要有清理、重构、标准化等
- 装载(Load),将数据按一定存储格式储存
- 要求每个组建可重用,支持并行操作,提高处理效率
不同于一般数据库的特点
- 数据仓库围绕某个应用目标
- 可以不断更新和增长
- 为复杂的决策支持查询进行了大量的优化
- 结构化或非结构化数据都能被处理,并提供两种数据的整合功能
数据分析与挖掘
数据分析
- 定义:指有组织有目的的采集、分析、概括和总结数据,从中提取有用的信息形成结论的过程
- 从统计应用上分为
- 描述性统计分析
- “描述统计是将研究中所得的数据加以整理、归类、简化或绘制成图表,以此描述和归纳数据的特征及变量之间的关系的一种最基本的统计方法。描述统计主要涉及数据的集中趋势、离散程度和相关强度,最常用的指标有平均数()、标准差(σx)、相关系数(r)等。”
- 探索式数据分析,强调从数据中找出之前未发现的特征和信息
- 验证性数据分析,强调通过数据分析验证或证伪已提出的假说
- 描述性统计分析
探索式数据分析 vs 传统统计分析
- 前者:关注数据本身,包括结构、离群值、异常值、数据导出的模型
- 后者:关注模型,即估计模型的参数,从模型生成预测值
探索式数据分析 vs 统计分析 vs 贝叶斯分析流程
- 前:问题—数据—分析—模型—结论
- 中:问题—数据—模型—分析—结论
- 后:问题—数据—模型—先验分布—结论
探索式数据分析 vs 数据挖掘
- 前者:将聚类和异常检测看成探索式过程
- 后者:关注模型的选择和参数的调节
联机分析处理(OLAP)
表单转换为多维数组的步骤
- 确定作为多维数组索引项的属性集合,必须具有离散值
- 确定作为多维数组数据项的熟悉,通常为一个数值
由于数据立方的高维度和大尺度,联机分析处理的挑战时设计高度交互的方法。
- 方案一:预计算并存储不同层级的聚合值,以便减小数据尺度
- 方案二:根据系统的可用性,将任意时刻处理对象限制于部分数据维度
基本操作
- 切片和切块,均等价于在整个数组中选择子集
- 切片:一个或多个维度上具有给定的属性值的数据项
- 切块:从数据立方中选择属性值位于某个给定范围的数据子集
- 汇总和钻取:具有层次结构的属性值通常嵌套成一个树状或网状结构。通过向上汇总和向下钻取的方法获取数据在不同层次属性的数据值
数据挖掘
数据挖掘是指设定特定的算法,从大量的数据集中去探索发现知识或者模式的理论和方法。
数据挖掘任务:
- 预测性方法:基于某些变量预测其他变量的预测值
- 分类
- 回归
- 偏差检测
- 描述性方法:以人类可以理解的模式描述数据
- 聚类
- 概念描述
- 关联规则挖掘
- 序列模式挖掘
参考资料
本文为”陈为 沈则潜 陶煜波. (2013). 数据可视化. 电子工业出版社.”第三章《数据》笔记