数据仓库与数据挖掘
边学边写,持续更新中
配合目录用
第1章 概论
数据挖掘定义:从大量的数据中发现有用信息的过程。
数据仓库和联机分析处理技术(存储)
数据挖掘:在大量的数据中挖掘感兴趣的知识/规则/规律/模式/约束(分析)
1.1 数据仓库
数据仓库用于决策分析
- 产生
为了进一步挖掘数据资源、为了决策需要
1.2 数据挖掘
过程
- 功能
- 关联分析(描述)
- 聚类分析(描述)
- 分类(预测)
- 孤立点分析(预测)
-
关联分析
关联规则挖掘:反映一个事件和其他事件之间依赖或关联的知识。
广泛用于购物篮或事物数据分析 -
聚类分析
最大化类内的相似性和最小化类间的相似性(无监督的学习方法)
例如:扑克牌划分 -
分类挖掘
反映同类事物共同性质的特征型知识和不同事物之间的差异型特征知识(有监督的学习方法)
通过分析训练集中的数据,为每个类别建立分类分析模型;然后用这个分类分析模型对数据库中的其他记录进行分类。
例如:垃圾邮件识别分类、信用卡的使用
-
聚类和分类区别
聚类是一种无指导的观察式学习,没有预先定义的类;
分类是有指导的示例式学习,有预先定义的类 -
孤立点分析
对差异和极端特例的描述
孤立点:事物偏离常规的异常现象,如标准类外的特例,数据聚类外的离群值等;
异常检测通过构建正常行为模型(称为特征描述),来检测与特征描述严重偏离的新的模式。
例如:信用卡欺诈检测、移动电话欺诈检测、医疗分析(异常)
分析极端数据,保险公司
第2章 数据仓库的基本概念
事务型(操作型)数据处理:数据库
分析型数据处理:数据仓库
知识发现:数据挖掘
2.1 什么是数据仓库
数据仓库是为构建分析型数据处理环境而出现的一种数据存储和组织技术。用来保存从多个数据库或其它信息源选取的数据,并为上层应用提供统一用户接口,完成数据查询和分析。
数据仓库之父: William H.Inmon 1993
数据仓库是一个面向主题的、集成的、随时间而变化的、不容易丢失的数据集合,支持管理部门的决策过程.—W.H.Inmon
- 两个主要作用:
- 存储经过加工处理的决策需要的数据
存储数据的一种形式
加工和集成后的再存储 - 查询和决策分析的依据 。为数据驱动型的决策支持提供数据基础
为数据驱动型的决策支持提供数据基础
- 特征
- 面向主题
- 集成的
- 随时间而变化的(时变的)
- 不容易丢失的(非容失)
1. 面向主题
在较高层次上对分析对象的数据进行一个完整、一致的描述,能完整、统一管理各个分析对象所涉及的企业各项数据以及数据之间的联系
高层次:很高的数据抽象级别,如整个企业、组织
面向主题,是数据仓库显著区别于关系数据库系统的一个特征
因此数据在进入数据仓库之前,必然要经过加工和集成,将原始数据结构做一个从面向应用到面向主题的大转变
2. 集成性
一个数据仓库是通过集成多个异种数据源来构造的
数据仓库中的综合数据不能从原有的数据库系统直接得到,需使用数据清理和数据集成技术对数据进行处理
主要工作:1.统一源数据中所有矛盾之处(命名约定、编码结构、属性度量等)2.进行数据综合和计算
消除冲突
数据的综合和计算
3. 数据不易丢失(稳定的)
尽管数据仓库中的数据来自于操作数据库,但它们却是在物理上分离保存的
只进行两种数据访问:1. 数据的初始装载 2. 查询操作
在某个时间点保持不变
定期加载,加载后的数据极少更新。并不意味着数据仓库中的数据不更新
4. 随时间而变化的(时变的)
数据仓库从历史的角度来提供信息:时间范围比操作数据库系统要长的多
例如:
- 操作数据库系统: 主要保存当前数据;
数据仓库: 从历史的角度提供信息(比如过去 5-10 年)
数据仓库中的每一个关键结构都隐式或显式地包含时间元素,时间维是数据仓库中一个非常重要的维度
2.2 为什么建立数据仓库
事务型处理:管理者 日常管理 数据库
分析型处理:决策者 预处判断分析 数据仓库
区别
环境分离
转同时进行的集成
数据仓库的数据分为四个级别:早期细节级、当前细节级、轻度综合级、高度综合级
数据仓库中的元数据描述了数据的结构、内容、索引、码、数据转换规则、粒度定义等
系统结构
2.3 数据仓库与数据挖掘关系
数据仓库–存储技术
数据挖掘–分析技术
联系
成功的数据挖掘的关键之一是通过访问正确的、完整的和集成的数据,以进行深层次的分析,而这正是数据仓库所能提供的
数据仓库不仅是集成数据的一种方式,而且为数据挖掘提供了一个极佳的操作平台
数据仓库不是数据挖掘的必要条件
数据挖掘不一定必须建立在数据仓库上,数据仓库不是实施数据挖掘的必要条件
2.4 数据立方体
在数据仓库中,数据立方体是n-D的。不只是三维的
多维数据模型为不同角度上的数据建模和观察提供了一个良好的基础
1. 概念分层
在数据仓库中,一个概念分层(concept hierarchy)定义一个映射序列,将低层概念映射到更一般的高层概念
对于一个给定的属性或维,根据不同的用户视图,可能有多个概念层次。例如:
允许我们在各种抽象级审查和处理数据
作用:
- 为不同级别的数据汇总提供了一个良好的基础
- 在多维数据模型中,通过在不同维上定义概念分层,使得用户在不同的维上从不同的层次对数据进行观察成为可能
方体的格
定义:给定一个维的集合,将在不同汇总级别上给出的数据立方体称为方体的格
每个方体的格都在不同的汇总级或不同的数据子集显示数据
顶点方体:0维方体存放最高层的汇总
基本方体:存放最底层汇总的方体
三级模型
- 概念模型
从客观世界到主观认识的映射
首先将现实世界抽象为概念模型,然后再用适合计算机世界的模型和语言来描述 - 逻辑模型
逻辑模型描述了数据仓库主题的逻辑实现. - 物理模型
逻辑模型在数据仓库中的实现,如数据存储结构、存储策略、索引策略、存储分配优化等
1. 概念模型
是数据仓库的数据模型的第一层或最高层
数据仓库用“信息包图”表示概念模型
信息包图:提供了分析人员思维模式的可视化表示
2. 逻辑模型
是数据仓库数据模型的第二层
通常有三种逻辑模型表示法:星型模型、雪花模型、事实星座模型
- 星型模型
事实表在中心,周围围绕地连接着维表
星型模型中,每维只用一个表表示,每个表包含一组属性
这一限制可能造成某些冗余
雪花模型
是星型模型的变种
在雪花模型中,某些维表是规范化的,通过把数据进一步分解到附加表中,以便减少冗余 — 表套表
- 事实星座模型
复杂的应用(如多主题的数据仓库)可能需要多个事实表共享维表
这种模式可以看作星型模式集,因此称为星系模式
3. 物理模型
是逻辑模型在数据仓库中的实现
主要进行:数据存储结构、存储策略、索引策略、存储分配优化等工作
常见存储结构:1. 分布式存储 2. 集中式存储
5. 数据仓库的设计
-
处理类型不同
DB : 操作型数据环境,面向业务
DW: 面向主题的分析型数据环境,面向分析,从基本主题开始,不断发展新主题 -
面向需求不同
DB:业务需求
DW:分析需求 -
设计目标不同
DB:OLTP
DW:OLAP -
数据来源不同
DB:企业的业务流程中产生的数据
DW:系统内部,主要从OLTP系统中获取,经过转换、重组、综合; 同时包括部分外部信息 -
设计方法不同
DB:SDLC – 应用需求驱动
DW:CLDS – 数据驱动(主要)+ 需求驱动
数据驱动是指根据当前数据基础和质量等情况,进行数据源分析
需求驱动是指根据业务方向性需求、业务问题等,确定系统范围和需求框架
第3章
3.1 OLAP概述
E.F.Codd 提出了OLAP概念
多维数据库和多维分析的概念
定义:联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术
OLAP是针对特定问题的联机数据访问和分析处理。使分析人员能迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的
OLAP的目标是满足决策支持或多维环境下特定的查询和报表需求,其技术核心是“维”这一概念,因此OLAP也可以说是多维数据分析工具的集合
数据仓库侧重于存储和管理面向主题的数据;
OLAP则侧重于数据仓库中的数据分析,并将其转换成辅助决策的信息。
- OLAP特性
快速性
可分析性
多维性
信息性
3.2 OLAP的分析方法
切片 切块 旋转 钻取
-
切片
在多维数组的某一维上选定一个维成员,即从n维数组选取n-1维子集.(降维操作)
选择多维数组的一个二维子集 -
切块
定义1:在多维数组的某一维上选定某一区间的维成员,即限制某一维的取值区间
切片是切块的特例,即限制的取值区间只取一个维成员
切块可看作由多个邻接的切片迭合而成
定义2:选定多维数组的一个三维子集 -
钻取
下钻:加深细节
上钻:靠近宏观 -
旋转
改变一个报告或页面显示的内容
3.3 OLAP数据组织
ROLAP:利用关系数据库来存储和管理基本数据和聚合数据,并利用一些中间件来支持缺失数据的处理
具有良好的可扩展性
MOLAP:利用多维数据库来存放和管理基本数据和聚合数据
对预综合的数据进行快速索引
HOLAP:对最常用的维,使用多维数据库存储;对于不常用的维度,采用ROLAP存储;充分利用ROLAP的可伸缩性和MOLAP的快速计算
第5章 数据预处理
-
数据与处理的重要性
- 杂乱性:命名规则不同
- 重复性:同一客观事物在数据库中存在两个以上相同的物理描述
- 不完整性:由于实际系统设计时存在的缺陷以及使用过程中的一些人为因素,数据记录可能会出现数据值的丢失或不确定
- 噪声数据:数据中存在着错误或异常(偏离期望值)
-
数据预处理的常见方法
-
数据清理(清洗) 去掉数据中的噪声,纠正不一致
-
数据集成 将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库
-
数据变换(转换) 将一种格式的数据转换为另一格式的数据(如规范化)
-
数据归约(消减) 通过聚集、删除冗余属性或聚类等方法来压缩数据
-
5.1 数据清洗
- 脏数据的来源:
- 空缺值
- 噪声数据
- 不一致数据
1 .空缺值处理方法
- 忽略该元组 问题:占比很大的空缺值忽略后使得数据挖掘的性能变得非常差
- 人工填写空缺值 问题:对人要求高
- 使用属性的平均值填充空缺值 问题:极端数据无法平均
- 使用与给定元组属同一类的所有样本的平均值 适用于分类数据挖掘
- 使用一个全局变量填充空缺值 最简单方法 问题:当填充的空缺值太多,挖掘程序会出问题 不推荐
- 使用最可能的值填充空缺值 最推荐方法 可以利用回归、贝叶斯计算公式或判定树归纳确定,推断出该条记录特定属性最大可能的取值
2. 噪声数据的处理
-
分箱方法 通过考察“邻居”(即周围的值)来平滑存储数据的值 局部平滑
需要确定方法 如何分箱 如何对
-
分箱步骤
-
排序数据,它们分到等深(等宽)的箱中
1.1 等深分箱 按记录数进行分箱,每箱具有相同的记录数,每箱的记录数称为箱的权重,也称箱子的深度
1.2 等宽分箱 在整个属性值的区间上平均分布,即每个箱的区间范围设定为一个常量,称为箱子的宽度 用的最多 处理极端数值最佳方法
-
然后可以按箱的平均值、按箱中值或者按箱的边界等进行平滑
按箱的平均值平滑:箱中每一个值被箱中的平均值替换
按箱的中值平滑:箱中的每一个值被箱中的中值替换
按箱的边界平滑:箱中的最大和最小值被视为箱边界,箱中的每一个值被最近的边界值替换
-
-
-
聚类 相似或相邻近的数据聚合在一起形成各个聚类集合,而那些位于聚类集合之外的数据对象,被视为孤立点
特点:直接形成簇并对簇进行描述,不需要任何先验知识
通过聚类分析查找孤立点,消除噪声
-
计算机和人工检查结合 计算机检测可疑数据,然后对它们进行人工判断
-
回归 发现两个相关的变量之间的变化模式,利用回归分析方法所获得的拟合函数,帮助平滑数据及除去噪声
3. 不一致数据的处理
- 人工更正
- 利用知识工程工具
- 数据字典
5.2 数据集成和变换
数据集成:将来自多个数据源的数据合并到一起
数据变换:对数据进行规范化操作,将其转换成适合于数据挖掘的形式
1. 数据集成
模式匹配问题 冗余问题 数据值冲突问题
- 模式匹配 整合不同数据源中的元数据,进行实体识别:匹配来自不同数据源的现实世界的实体
- 数据冗余 有些冗余可以被相关分析检测到 还要检查记录行的冗余
- 数据值冲突 产生的原因:表示、比例或编码不同
2. 数据变换
平滑处理:从数据中消除噪声; 分箱
聚集操作:对数据进行综合;
数据规范化:将数据转换到一个较小的范围之内
数据规范化常用方法:将数据按比例缩放至一个小的特定区间
最小-最大规范化;
零-均值规范化(z-score规范化);
小数定标规范化
5.3 数据归约
1. 概念
压缩数据集的规模
数据消减或约简,是在不影响最终挖掘结果的前提下,缩小所挖掘数据的规模。
对归约后的数据集进行挖掘可提高挖掘的效率,并产生相同(或几乎相同)的结果
-
标准
- 用于数据归约的时间 不应当超过或“抵消在归约后的数据集上挖掘节省的时间
- 归约得到的数据比原数据小得多,但可以产生相同或几乎相同的分析结果
-
策略
数据立方体聚集
维归约
数据离散化
2. 数据立方体聚集
略
3. 维归约(重点)
主要用于检测并删除不相关、弱相关或冗余的属性维
最常用的方法:属性子集选择。
目标:寻找出最小的属性子集并确保新数据子集的概率分布尽可能接近原来数据集的概率分布
方法:启发式算法
对于属性子集选择,通常使用压缩搜索空间的启发式算法。它们的策略是做局部最优选择,期望由此导致全局最优解
常用的启发式方法:
- 逐步向前选择 选最好添加
- 逐步向前选择 选最差删除
- 向前选择和向后删除的结合 选最好添加并删除最差的
- 判断树归纳 在判定树的每个节点,算法选择“最好”的属性,将数据划分成类
5.4 数据离散化
1. 概念
-
三种类型的属性值:
标称型(无序) 不可比不可加
序数型(有序) 可比不可加
连续型 可比可加 -
常用的离散化方法
- 分箱:属性的值可以通过将其分配到各分箱中而将其离散化
- 基于熵的离散化:通过信息熵度量,实现离散化
- 通过自然划分分段:3-4-5自然划分分段法
- 聚类:聚类算法可以将数据集划分为若干类或组,每个类构成概念层次树的一个节点;每个类还可以进一步分解为若干子类,从而构成更低水平的层次
1.自然划分分段
思想:将数值区域划分为相对一致的、易于阅读的、看上去更直观或自然的区间
自然划分的3-4-5规则常可以将数值数据划分为相对一致和“自然”的区间。一般的,根据最重要的数字上的值区域,递归的和逐层的将给定的数据区域划分为3、4或5个等宽区间。
步骤:
- 如果一个区间最高有效位上跨越3,6,7或9个不同的值,就将该区间划分为3个等宽子区间;7 (2,3,2)
- 如果一个区间最高有效位上跨越2,4,或8个不同的值,就将该区间划分为4个等宽子区间;
- 如果一个区间最高有效位上跨越1,5,或10个不同的值,就将该区间划分为5个等宽子区间;
将该规则递归的应用于每个子区间,产生给定数值属性的概念分层;
最高有效位:绝对值最大 看是10的几次方
例如; 252 划分为 [0,300]
对于数据集中出现的最大值和最小值的极端分布,为了避免上述方法出现的结果扭曲,可以在顶层分段时,选用一个大部分的概率空间。e.g. 5%-95%
第6章 概念描述
从数据分析角度,两类DM:描述式数据挖掘、预测式数据挖掘
特征化:提供给定数据集的简洁汇总
比较(区分):提供两个或多个数据集的比较描述
6.1 数据概化与基于汇总的特征化
数据概化可以将大量的相关数据从一个较低的概念层次转化到一个比较高的层次
- 方法
数据立方体(或者OLAP方法)
面向属性的归纳方法
- 数据立方体(或者OLAP方法
在数据立方体上进行计算和存储结果
优点:
数据概化的一种有效实现
效率高,能够计算多种不同的度量值
概化和特征分析通过一系列的数据立方体操作完成,如roll-down和roll-up操作
–
数据立方体是数据的多维建模和表示,由维和事实组成
维 — 属性 事实 — 数据
数据立方体聚集定义 — 将n维数据立方体聚集为 n-1 维的数据立方体
–
缺点
维和度量的数据类型有限,数据立方体和OLAP只能处理非数值 类型(离散类型)的维和简单聚集数值类型的度量值
大部分现有商业系统中,只能为非数值类型的维产生概念分层
缺乏智能分析,不能自动确定分析中该使用哪些维,应该概化到哪个层次 - 面向属性的归纳 AOI
基本思想
a. 使用关系数据库查询收集任务相关的数据
b. 属性删除;属性概化
c. 通过合并相等的、概化的广义元组,并累计它们对应的计数值进行聚集操作
d. 通过与用户交互,将广义关系以图表或规则等形式,提交给用户
属性删除:若一个属性(在初始数据集中)有许多不同数值
且1.该属性上没有定义概化操作符 2. 它的较高层概念可用其他属性表示
不重要且可替代
属性概化
若一个属性(在初始数据集中)有许多不同数值,且:在该属性上存在概化操作符,则应当选择该概化操作符
有简称用简称
大量不同值处理:1. 属性概化阈值控制 2. 概化关系阈值控制
属性概化阈值控制:取值范围一般为2到8,可以是指定的也可以是默认的
如果用户感到一个属性概化达到的层次太高,可以加大阈值(属性下钻);反之,可减小阈值(属性上卷)
概化关系阈值控制:控制最后关系/规则的大小
为概化关系设置一个阈值,如果概化关系中不同元组的个数超过该阈值,则应进一步概化;否则,不再概化。
阈值可在数据挖掘系统中预先设定(通常为10~30),或由用户或专家设置、调整
如果用户感到概化的关系太少,可以加大阈值(属性下钻);反之,可减小阈值(属性上卷)
面向属性归纳结果的表示方法
- 表格 2. 组合表 3. 图标等等
t-weight(t-权):规则兴趣度度量指标
6.2 属性相关分析
过滤掉统计上不相关或弱相关的属性,而仅保留对手头挖掘任务最相关的属性
1. 属性相关分析的方法
基本思想:对给定的数据集,计算某种度量,用于量化属性与给定的类或概念间的相关性
常用的度量包括信息增益、GINI索引、不确定性和相关系数等
信息增益法:
ID3算法 决策树
在ID3算法中,决策节点属性的选择运用了信息论中的熵概念作为启发式函数
在这种属性选择方法中,选择具有最大信息增益的属性作为当前划分节点
通过这种方式选择的节点属性可以保证决策树具有最小的分枝数量,使得到的决策树冗余最小
2. 属性相关分析步骤
- 数据收集
- 利用保守的AOI方法进行属性相关分析
- 使用选定的相关分析度量删除不相关和弱相关的属性
- 使用AOI产生概念描述
3. 区分不同的类
- 比较概念描述的步骤
- 数据收集
- 属性相关分析
- 同步概化
- 挖掘结果表示
- 比较概念描述结果的表示
与特征化概念描述类似,比较概念描述也可采用多种形式,如:关系表、组合表、棒图、曲线和规则的形式加以表示
基于规则表示方法
5. 大型数据库中挖掘描述统计度量
关系数据库系统通常提供了5个内置的合计函数:count(), sum(), avg(), max() 和 min()。这些函数可以对数据进行高效运算,仍可用于多维数据的统计度量
除此之外,在许多挖掘任务中,需要了解更多有关数据的中心趋势(central tendency)和数据分布(data dispersion)等数据特点
中心趋势:均值(average)、中位数(median)、模(mode) ;
数据分布:四分位数(quartiles)、方差、标准差等
数据离散度的最常用度量是四分位数和标准差
四分位数;数值序下的数据集合的第k个百分位数是具有如下性质的值x:数据项的百分之k在x上或低于x
中间四分位数区间IQR=Q3-Q1
识别孤立点:落在至少高于第三个四分位数或低于第一个四分位数1.5*IQR处的值