数据仓库与数据挖掘
第一章:数据仓库和数据挖掘概述
1.1 数据仓库的产生
- 数据仓库与数据挖掘:
- 数据仓库和联机分析处理技术(存储)。
- 数据挖掘:在大量的数据中心挖掘感兴趣的知识、规则、规律、模式、约束(分析)。
- 数据仓库用于决策分析:
- 数据仓库:是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,并不是‘大型数据库’。
- 数据仓库与数据库的区别:
数据库 | 数据仓库 |
事务处理 | 决策分析 |
保持事务处理的当前状态 | 保存过去和当前的数据 |
大量数据库的集成 |
1.2 数据挖掘的基本概念
- 数据挖掘定义:
- 数据挖掘是从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则。
- 几层含义:
- 数据:真实、大量、含噪声。
- 发现的是用户感兴趣的知识。
- 发现的知识:可接受、可理解、可运用。
- 不要求发现全部的知识,仅对特定的问题。
- 数据挖掘的一个过程
- 数据挖掘的功能:
- 关联分析(描述)
- 反映一个事件和其他事件之间依赖或关联的知识。
- 广泛用于:购物篮、事务数据分析。
- 聚类分析(描述)
- 最大化类内的相似性和最小化类间的相似性(无监督的学习方法)
- 找出数据集中的共性与差异,将具有共性的对象聚合在相应的类中。
- 分类挖掘(预测)
- 分类:同类事物共同性质的特征型知识,不同事物之间的差异型特征知识。(有监督的学习方法)
- 类别:特征联系,决策树
- 过程:分析训练集中数据,为每个类别建立分类分析模型;用这个分类分析模型对DB中的其他记录进行分类。
- 聚类与分类的区别:
- 孤立点分析
- 对差异和极端特例的描述。
- 孤立点:事物偏离常规的异常现象。
- 没有孤立点分析算法。
- 异常检测:通过构建,来检测与特征描述的新的模式。
聚类 | 分类 | |
监督(指导)与否 | 无指导学习(没有预先定义的类) | 有指导学习(有预先定义的类) |
是否建立模型或训练 | 否,是发现空间实体的属性间的函数关系 | 是,具有预测功能 |
第二章:数据仓库的基本概念
2.1 什么是数据仓库(Data Warehouse)
1.数据仓库是什么
- DW是为构建环境而出现的一种数据存储和组织技术。用来保存从多个数据库或其它信息源选取的数据,并为上层应用提供统一用户接口,完成数据查询和分析。
- 数据仓库之父:William H.Inmon
- 定义:
- DW是一个功能的DB,与操作数据库不同,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。
- DW是面数据集合,支持管理部门的决策过程。
- DW作用:
- DW关键特征:
- 向主题的
- 给出DW中数据组织的基本原则,DW中所有数据都是围绕某一主题组织、展开的。
- 主题:一个主题对应一个宏观的领域:例如:客户、产品、交易、账目等
- 在数据进入DW之前,要经过加工、集成,使其从面向应用到面向主题。
- 集成性
- 一个DW是通过集成多个数据源来构造的。
- 需要使用数据清洗、数据继承来处理数据。
- 两个工作;
- 统一源数据中所有矛盾之处(命名等)
- 进行数据综合和计算:在抽取数据时、进入DW后都可。
- 数据不易丢失(稳定性)
- DW中数据与DB数据是物理隔离的。
- 操作数据库的更新操作不会出现在DW环境下。
- 只进行两种数据访问:数据的初始装载、查询操作。
- 操作型数据库与数据仓库区别
- 操作型数据库:、数据进行变化,不是按照一定周期进行修改。
- 数据仓库:、DW中数据不更新。
- 随时间变化(时变的)
- DW是从的角度来提供信息:时间范围比操作数数据库长。
- DB:主要保存当前数据。
- DW:从的角度考虑。
- DW中的每一个关键结构都隐式或显式地包含。
2.为什么要建立数据仓库
- 事务型处理(DB):
- 日常事务处理。
- 处理
- 分析型处理(DW):
- 用于管理员的。
- 处理
3. 数据仓库与数据挖掘的关系
- 区别:
- 数据仓库:存储技术,提供对不同决策的数据和信息。
- 数据挖掘:分析技术,从数据中挖掘信息。
- 联系:
- 成功的数据挖掘:通过访问,进行深层次的分析。
- 数据仓库并不是数据挖掘的必要条件:
- DM不一定建立在DW之上,DW不是实施DM的必要条件。
- 在开发DW过程中所进行的数据集成、清洗、准备,才使得DW对DM有重要的价值。
2.2 数据立方体
1. 概念分层(单个维)
- 定义:定义一个映射序列,将低层概念映射到更一般的高层概念中。
- 比如:在城市->省份->国家->州,维度中,我们可以从中选取一个维度进行考查。
2. 方体的格(维的集合)
- 定义:给定一个,将在不同汇总级别上给出的数据立方体。
- 0维方体:存放最高层的汇总,。
- 最底层汇总:
2.3 数据仓库的三级模型
1.概念模型:
- 首先将现实世界抽象为概念模型、然后再用计算机世界的模型和语言描述。
- 数据仓库的第一层、最高层
- 数据仓库用表示概念模型。
- 信息包图:
eg:确定维度、级别(类别、概念分层、将维度细分)、度量(指标与事实)。
2.逻辑模型:
- 数据仓库第二层
- 三种表示:星型、雪花模型、事实星座模型。
- 几个基本概念:
- 维:视角、观点;eg:时间维度、产地维度。
- 维表:每一维都有一个表与之对应。
- 事实:数字度量。
- 事实表:事实的名称或度量、以及每个相关维表的关键字。
- 星型模型
事实表在中心,周围围绕地连接维表。
每维只用一个表表示,每个表包含一组属性。会有数据冗余。
- 雪花模型
相当于增加了外键,维护表与表的关系,减少了冗余。
- 事实星座模型
- 对主题的数据仓库,需要多个事实表共享维表。
3.物理模型:
- 定义:是逻辑模型在数据仓库中的实现。
- 主要进行:数据存储结构、存储策略、索引策略、存储分配优化。
- 两种常见的存储结构:
- 分布式存储
- 物理上分布、逻辑上统一。
- 集中式存储
- 通过FC(光纤通信)交换机来直接访问所有数据,而不需要其它节点。
2.4 DW的设计
- 数据仓库设计与数据库设计的区别(** )
DB | DW | |
设计目标 | (事务处理的性能)OLTP、多并发、高效增删改查 | 建立DSS,全局分析环境,快速分析查询 |
数据来源 | 企业业务流程中数据 | 从OLTP中挖掘的数据,还有外部信息 |
设计方法 | 应用需求驱动 | 数据驱动+需求驱动 |
处理类型 | 操作型数据环境、面向业务 | 面向主题,面向分析 |
面向需求 | 确定的应用需求,较确定的数据流 | 不确定的业务, |
- DW设计的原则
- 以数据驱动为中心,数据驱动和需求驱动相结合
- 数据驱动:根据当前数据基础和质量进行数据源分析
- 需求驱动:根据业务方向需求进行调整。
引言
- 建立数据仓库的目的,是要为决策提供必要的支持。
3.1 OLAP概述
1. OLAP的基本概念
- E.F.Codd提出了多维数据库和多维分析的概念,即OLAP
- 定义:联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。
- 核心技术是维,OLAP是多维数据分析工具的集合。
- 维度例子:
- 一个电子公司的销售的三个方面(维)分析:
- 时间:度量为:年、季度、月、旬、天。
- 地区:度量为:地区、国家、省、市。
- 产品:度量为:类别、型号。
2. 几个关系?
- OLAP与DW
- 数据仓库:侧重于存储和管理面向主题的数据。
- OLAP:侧重于数据仓库中的数据分析,并将其转换成辅助决策的信息。
- 多维数据分析,这与数据仓库的多维数据组织管理相互结合、相互补充。
- 使得DW能快速分析查询,从而能有效的联机分析。
- OLAP(联机处理分析)与OLTP()
- OLTP:关系型数据库的主要应用,增删改查。事务型
- OLAP:数据仓库的主要应用,分析与决策,并提供查询结果。分析型
- OLAP的数据来自于OLTP数据库
3. OLAP的特性
- 快速性:在5s内对用户大大部分分析要求作出反应。
- 可分析性:能处理任何逻辑分析和系统分析。
- 多维性:关键属性,提供数据的多维视图和分析
- 信息性:应能及时获取信息,管理大容量信息。
3.2 OLAP的分析方法
1.相关概念
- 维:观察数据的特定角度。
- 维层次:将维度进行层次划分。
- 时间维:日期、月份、季度、年
- 维成员:维上的取值。必须包含当前维上的所有信息。
- 时间维:某年某月某日。2021年不是维成员。
- 多维数组:维和变量的组合。
- (维1,维2,…变量)
- (时间,地区,产品,销售额)
- 数据单元:多维数组的取值。
- (2000年1月,上海,PC机,10000元)
2. 切片
- 广义:某一维上一个维成员。降1维
- 狭义:选取一个二维子集。降n-2维
3. 切块
- 广义:在某一维上选定某一区间的维成员,没有降维
- 比如考察2021年1月到2021年6月的信息。
- 狭义:选取一个三维子集。降n-3维
4. 旋转
5. 钻取(某个维的层次性)
- 下钻:
- 增加新维
- 上钻:
- 减少维度
3.3 OLAP的数据组织
(Relational OLAP)ROLAP:
- 利用关系数据库存储、管理、聚合数据。
- 良好扩展性,可以简单增加新维
- 星型模型
- 响应时间长。
(Multidimensional )MOLAP:
- 多维数据库
- 预综合的数据快速索引。
- 响应速度快。
- 增加新的维度,需要重新建立数据库。
(Hybrid OLAP)HOLAP:
- 常用维:多维数据库存储。
- 不常用的维:用ROLAP存储。
第四章:数据挖掘的基本概念
4.1 什么是数据挖掘
- 定义:从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则。
- 数据预处理的重要性
- 杂乱性:如命名规则。
- 重复性:同一客观事再
- 不完整性:
- 噪声数据:数据中存在错误或异常的现象。
- 数据预处理的常见方法
- 数据清洗:去掉数据中的噪声,纠正不一致。
- 数据集成:将多个数据源合成一致的数据存储。
- 数据变换(转换):对数据的格式进行转换,如数据的归一化处理。
- 数据归约(消减):通过聚集、删除冗余属性、局类等方法,来实现数据的压缩。
5.1 数据清洗
1.空缺值
- 忽略该元组:
- 其中一条记录中有属性值被遗漏
- 缺少类标号
- 但是,当某一类属性的空缺值占百分比很大,若直接忽略,则会使挖掘性能变得非常差。
- eg:Y:N=1:1,忽略后会变成Y:N=3:1
- 人工填写空缺值
- 使用属性的平均值来填充空缺值
- 使用与给定元组属同一类的平均值来代替
- 使用一个全局变量填充空缺值(不推荐)
- 使用最可能的值填充空缺值
- 回归、贝叶斯、判定树归纳确定
2.噪声数据
分箱的步骤:
- 先,将其分到等深(等宽)的箱中
- 按箱的(在出现极端数据的情况下,不能用均值处理)、、边界(用左右边界进行替换)进行平滑
等深分箱(分块)
- 按记录数进行分箱,每x个数会被一个箱子
等宽分箱
每一个箱子的宽度,x称为箱子的宽度。
更好找出极端数据
- 聚类方法
- 相似、向邻近的数据集合在一起形成各个聚类集合。
- 特点:直接形成一簇,不需要先验知识。
- 查找孤立点,消除噪声
- 线性回归
- 通过回归方程获得拟合函数
- 人机结合共同检测
3.不一致数据
- 人工更正
- 利用知识工程工具
- 属性之间的函数依赖关系
- 数据字典
5.2数据集成和变换
- 数据集成:将来自多个数据源的数据合并到一起
- 数据变换:对数据进行规范化操作,将其转换成适合于数据挖掘的形式。
1.数据集成
- 需要统一原始数据中的所有矛盾之处
- 同名异义、异名同义、单位不不统一、字长不一致。
- 需要注意的问题:
- 模式匹配
- 整合不同数据源中的元数据。
- 进行
- 借助于数据字典、元数据
- 数据冗余
- 计算相关分析检测:
- 若有高的相关系数,则可以去除掉。
- 数据值冲突
- 产生原因:表示、比例、编码不同
- 比如:单位不统一、成绩的百分之和五分值。
- 常用方法:
- 平滑处理:消除噪声
- 分箱
- 聚集操作:对数据进行综合
- 函数:avg(),count(),min(),max()…
- 数据规范化:将数据转换到一个较小的范围内,两个数据相差比较大。
- 最小-最大规范化
- 将原始属性映射到区间[new_min,new_max]
- 公式:
- z-score规范化
- 根据均值、标准差进行计算
- 常用于:最大值、最小值未知
- 小数定标规范化
- 找到绝对值的最大值,然后除以,然后每个数都除以
5.3数据规约
1. 数据规约的标准:
- 时间:原始数据集挖掘时间:t,数据规约时间:t0,挖掘后时间t’,满足:
- 性能:归约后得到的数据比原数据小的多,并可以产生相同或差不多的结果。
2. 策略:
- 数据立方体聚集:
* - :
- 主要检测并删除不相关、弱相关或冗余的属性维
- 方法:
- 目标:寻找出最小的属性子集,并确保新数据子集的概率分布尽可能接近原来的数据集的概率分布。
- 找出’好的’子集
- :选择原属性集中最好的属性,并将它添加到该集合中。
- :由整个属性集开始,每一步都删除现在属性集中最坏的属性。
- :每一步选择一个最好的属性,并在剩余属性中删除一个最坏的属性。
- :出现在判定树中的属性形成规约后的属性子集。
1.三种类型的属性值
- 标称型(名称、名义):数值来自于无序集合,不需要离散化,如性别、地名、人名。
- 不可比、不可加
- 序数型:来自于有序集合,不需要离散化,如等级
- 可比、不可加
- 连续型:实数值,需要离散化,如温度、体重、考试成绩。
- 可比、可加
2.离散化技术
- 将连续取值的属性划分为若干区间
- 常见的方法:
分箱:分箱后,利用均值、中位数替换每个箱中的值代替
基于熵的离散化:
- 信息增益:
- 降低多少不确定性
- 步骤:
如:1、2、3、4、5、6
对于每个相邻切不相同的两个数,我们进行划分成两部分,二值离散化。
对于每一次划分,我们会得到两个数据子集,并计算每个数据子集的熵的大小,然后求其期望,最后得到整体的熵。
时才为最优的。
:
思想:将[787.23,999.23]更改成[700,1000]这种类型。
最高有效位:,n为最高有效位。
划分的步骤:
- 找到最高有效位,然后min的向下取整,max的向上取整。
- 找到权值划分了多少个数值,然后将其划分为x个等宽子区间。
- 3规则:3,6,7(2+3+2),9
- 4规则:2,4,8
- 5规则:1,5,10
当出现极端数据情况,可以选择大部分数据所在的区间(5%~95%)进行345规则,极端数据进行取整,左区间取min,右区间取max。
:(待补)
聚类
引言:
- 概念描述:特征化和比较(描述式DM)
- 描述性数据挖掘
- 更一般的(而不是较低层的)抽象层描述数据。
- 概念指的是:一类数据的集合,eg:研究生、大客户。
- 用以产生数据的特征化和比较描述:
- 特征化:提供给定数据集的简洁汇总(一个数据集)。
- 比较(区分):提供两个或多个数据集的比较描述,其中一个为主数据集,其他数据集与其进行对比分析。
- 关联规则(预测式DM)
- 分类/预测(预测式DM)
- 聚类分析(预测式DM)
- 其他数据挖掘任务
- DM的分类:
- 描述式DM:以简洁、概要的方式描述数据、提供数据的有趣的一般性质。
- 预测式DM:分析数据,建立模型,试图预测新数据集的行为。
6.1数据概化与基于汇总的特征化
1. 数据概化
- 以更一般的(而不是较低的) 抽象层描述数据。
- 将大量的相关数据从一个较低的概念层次转化到一个比较高的层次。
- 例如:把location维度上将地区概化为城市,甚至是省份
- 方法
- 数据立方体(或OLAP)方法
- 面向属性的归纳方法
2. 数据立方体(OLAP)方法
- 在数据立方体上进行计算和存储结果
- 优点:
- 数据概化的一种有效实现。
- 能计算多种不同的度量值。(count、ave、sum、min、max)
- 概化与特征分析通过一系列的数据立方体操作完成,上钻、下钻操作。
- 限制:
* 只能为 非数值类型(离散的)维产生的概念分层。
* 非数值类型:名义型、序数型(属于离散化的属性)。
* 缺乏智能分析,不能自动确定分析中该使用哪些维,概化到哪个层次。
3. 面向属性归纳(AOI)(重点)
- 前提:有大量不同的取值
- 可处理连续性数据,比数据立方体更加智能
- 基本思想:
- 首先使用DB 收集任务相关的数据。
- 对每个属性的不同值的个数进行概化(属性删除、属性概化)。
- 通过合并相等的、概化的广义元组,并累计他们对应的计数值进行聚集。(计算出count值)
- 将广义关系以图、规则形式提交给用户。
- 属性删除(重点)
- 一个属性有许多不同数值:且
- 该属性没有定义概化操作符(没有概念分层)。
- 一个属性拥有许多不同的数值,却没有定义对他的泛化操作。
- 或较高层概念可以用其他属性表示。
- eg:出生日期:birth_date:1995-1-1,出生日期是年龄的更高层次,可以将其表现,所以可以将birth_date删除。
- 属性概化(重点)
- 若一个属性有许多不同数值,且:在该属性上存在概化操作符(有概念分层),则应当选择该概化操作符,并逐层进行概化。
- 概化操作符:层次性,比如birth_day:年月日。
4. 特征化(面向属性归纳)
- 两种方法:
- 属性概化阈值控制:(控制属性取值个数)
- 取值范围:[2-8]
- 属性的不同值个数大于属性概化阈值,则应当删除或概化。
- 概化层次太高,可加大阈值(属性下钻);反之,减小阈值(属性上卷)。
- 概化关系阈值控制:(控制最后的广义元组数量)
- 控制最后关系、规则的大小。(最后生成广义元组)
- 设置阈值:[10-30]
- 概化关系中不同元组的个数超过属性概化阈值,则概化。
- 概化关系太少,可加大阈值(属性下钻);反之,减小阈值(属性上卷)。
- 概化到最高层(最底层)也不满足,则需要将其删除。
4. 面向属性归纳结果的表示?
t-权:
定量描述规则:
比如:目标集合为电脑,则是要查看电脑在各个地域的销售情况。
6.2属性相关分析(重点)
- 在处理数据中,包含很多与挖掘任务不相关或弱相关的属性,引入属性相关分析。
- 如果某个属性可以很好区分该类与其他类,则该属性是任务高度相关的。
- 在同一维内,不同层的概念也可能具有不相同的分类能力。
- birth_data维度,birth_day和birth_month看上去与salary不相关,但是birth_decade(年历区间)可能与salary高度相关。
1. 属性相关分析法基本思想
- 基本思想:给定的数据集,计算某种度量,用于量化属性与给定的类或概念间的相关性。
- 常用的度量:信息增益、相关系数、GINI索引、不确定性
2.信息增益法(重点)
信息增益法:
- 决策树归纳学习算法(ID3,C4.5),删除信息量较少的属性,保留信息量较大的属性。
ID3算法
- 熵概念为启发函数。
熵越大、携带的信息量越大、越不容易被预测
- 选择具有最大信息增益的属性作为当前划分节点。
- 基本原理:
- 根据类别已知的训练数据集构造一颗决策树;根据决策树再对类别未知的数据对象进行分类。
- 每一步选择都是选择最大信息增益。
- 决策树:
每个节点的选择:选择信息增益最大的属性为当前节点。
- 本步骤只是求出不确定性
通过熵来进行选择
属性相关分析步骤
- 数据收集:建立目标数据集,以及对比数据集,目标数据集与对比数据集不相交。
- 利用保守的AOI方法进行属性相关分析。对初始的数据集进行删除、概化等操作形成候选数据集。
- 删除不相关、弱相关的属性。如信息增益度量
- 使用AOI产生概念描述:利用更严格的属性概化控制阈值进行属性的归纳。
- 任务是:概念描述,使用初始目标数据集。
- 任务是:比较概念描述,使用初始目标数据集,对比数据集。
例子:
6.3挖掘类比较:区分不同的类
- 比较概念中,同一个属性要概化到同一个层次。
- d—权
- qa所包含的Cj中数据行数与qa所涵盖的所有数据行数(包括目标数据集及所有对比数据集)之比
6.4 常见的统计度量指标
- 中心趋势:均值、中位数、模(众数)
- 众数:如果每个数值仅出现1次则无众数
- 数据分布:四分位数、方差、标准差
- 四分位数:
- 数值下数据集合的第k个百分位数。
- 中位数:第50个百分位数
- 第一个四分位数:第25个百分位数;第三个百分位数:第75个百分位数。
- 中间四分位区间
- 识别孤立点:
引言
- 挖掘发现大量数据中项集之间有趣的关联、相关联系
- 事物数据库
7.1 关联规则挖掘的基本概念
1. 关联规则挖掘(Association rule mining)
- 对象:交易型数据库
- 通过量化的数字来描述物品X的出现对物品Y的出现有多大的影响。
- 购物篮分析
- 在购买计算机的同时购买财务管理软件,可用其关联规则表示:
computer->financial_management_software[support = 2%,confidence = 60%]
- 关联规则的支持度(support):全部事务中,有2%的交易同时购买了计算机和财务管理软件。
- 关联规则的置信度(confidence):购买计算机的顾客中,有60%也同时购买了财务管理软件。
2. 关联规则的基本概念
事务数据库
- 设I={i1,i2,…,im}是一个项目集合,事务数据库D={t1,t2,…,tn}是一些列唯一唯一表示的TID的事务组成。每个事务ti都对应I上的一个子集。
- I:全部物品。
- D:购物清单
- ti:一次购买物品的集合,是I的子集
- 存放的是单个维度,在上面挖掘只能挖掘出单个维度的东西。
支持度(support)
- 定义:真的任务相关的元组(事务)所占的百分比。
- 公式:
置信度(certainty)
- 定义:规则的前键与后键的影响程度。
- 公式:
强关联规则
- 置信度(certainty)表示规则的可信度:置信度小,规则无意义。
- 支持度(support)表示模式在事务数据库中出现频率:支持度小、规则使用面窄
- 同时满足最小置信度、最小支持度的关联规则为强关联规则
3. 关联规则的分类
- 处理的变量类别
- 布尔型:离散的、可枚举的、种类化的
- 性别=“男” -> 职业=‘网络工程师’
- 数值型:有定量的数据项
- 性别=‘男’ -> 收入=‘3500’
- 数据的抽象层次
- 单层关联规则:所有的变量都不考虑层次
- 性别=“男” -> 职业=‘网络工程师’
- 多层关联规则:考虑变量的不同层次性
- 同层关联规则:相机 -> 手机(相机、手机是三星相机、三星手机的较高层抽象)
- 层间关联规则:相机 -> 三星手机
- 涉及的数据维数
- 单维关联规则:只涉及一个属性
- 啤酒 -> 尿布,在商品维度
- 多维关联规则:处理多个维度
- 性别"女" -> 职业"秘书"
7.2 由事物数据库挖掘单维(单层)布尔关联规则
挖掘的步骤:
- 找出频繁项集:满足最小支持度
- 由频繁项集产生强关联规则:满足最小支持度、最小置信度
基本概念
- 项集:k-项集:项的集合,eg:{computer,software},2-项集。
- 项集的频率:项集{A,B,C,D…}出现的所有数量/事务总数
- 频繁项集:项集出现的频率>=支持度阈值,记作。
Apriori算法
- 原理:
- 任何频繁项集的子集必定是频繁项集。
- 任何非频繁项集的超集都为非频繁项集。
- 符号
- :K项集,候选k项集
- :频繁k项集
- 步骤(迭代法):
- 在第一次迭代中,产生候选1-项集,并计算支持度s,选择频繁1-项集
- 第二次迭代中,删除非频繁1-项集,在频繁1-项集的基础上产生候选2-项集,再生成频繁2-项集,不断迭代
- 例子
由频繁项集产生关联规则:
- 不使用支持度是因为:得到的频繁项集是满足支持度大与阈值。
- 根据最小置信度确定:求P(AB)与P(B),然后划分就行。
- 划分数量:
7.3 由事务数据库挖掘多层关联规则
- 多层关联规则:
- 两种支持度策略
- 一致支持度:在每一层挖掘时,使用相同的最小支持度阈值
- 优势:简单
- 缺点:设置太高会对丢失出现在较低抽象层中有意义的关联规则。太低,会在高层产生无异议的规则。
- 递减支持度:在底层使用递减的最小支持度阈值
逐层独立:
- 如果一个项集是频繁的,则其所有子集也是皮烦的
- 考虑每一个节点时,不管它父亲节点是否是频繁的。
层交叉单项过滤:
- 当一个节点是频繁的,其儿子结点也将被考查;否则,将被剪枝。
层交叉k-项集过滤:
- 第i层的k-项集被考查,当且仅当其父亲节点k-项集是频繁的
7.4 由关系数据库和数据仓库挖掘多维关联规则
- 多维关联规则的出现:
- 当对关系数据库或、数据仓库进行分析时,数据是多维出现的。
- 如:在记录购买的商品外,关系数据库还可能记录着购买数量、价格、销售地、顾客信息等。
- 解决方案:
- 将数据库(数据仓库)中每个属性(维)看做一个谓词
- 属性的类型
- 符号属性:取有限个无序的值。
- occupation、brand、color
- 数值属性:有大小的数值。
- age、income、price
- 在挖掘前先进行离散化、在进行"支持度-置信度"原则,完成挖掘。
- 例子:
姓名 | 年龄段 | 出生地 |
张三 | 中年 | 黑龙江 |
李四 | 少年 | 北京 |
老王 | 青年 | 上海 |
变换成
姓名、年龄段、出生地 |
张三 、中年 、黑龙江 |
李四 、少年 、北京 |
老王 、青年 、上海 |
8.1分类挖掘的基本流程
- 最常用的就是客户评估
1.分类的基本流程
步骤
- 建立分类模型
- 通过分类算法对训练集训练,得到有指导的学习、有监督的学习
- 预定义的类:类标号属性确定
- 使用模型进行分类
- 测试数据集:评估模型的预测准确度
流程图
有指导的学习、无指导的学习
- 有指导学习(分类):
- 训练样本的类标号已知。
- 根据训练集中得到的规则对新数据进行分类
- 训练样本的类标号未知
- 通过一系列度量等,试图确立数据中的类、聚类的存在。
2.分类的基本问题
- 数据准备
- 进行数据的预处理操作:
- 数据清洗、相关性分析、数据变换
- 评估方法
- 对用于分类、预测的方法模型进行评估
- 预测的准确率
- 速度:建立模型时间、使用模型时间
- 强壮性(鲁棒性):处理噪声和空缺值的能力
- 可伸缩(扩展性):处理大数据、构造模型能力
- 可理解性:模型的可理解能力
- 规则的优越性:判定树大小、分类规则的简洁性
8.2基于距离的分类算法
1.常见的距离度量
欧几里得距离
曼哈顿距离
明可夫斯基距离
加权的明可夫斯基距离
2.K近邻分类
定义:测量不同特征值之间的距离方法进行分类
工作原理:
优缺点
- 优点:精度高、对异常值不敏感,无数据输入假定
- 缺点:时空复杂度高、适用于数值型、离散型数据
注意的问题
- K值选择:一般选择一个比较小的数,需要用大量实验来选择
- 结果的输出:多数表决决定
- 距离度量:一般采用p=2时,欧氏距离。同时注意权重问题
8.3决策树分类方法
1. 基本概念
- 决策树:对数据进行处理、利用归纳算法生成可读的规则和决策树,并使用决策树对数据进行分类。
- 基本组成:根节点、内部节点、叶节点
- 两个过程
- 树的建立
- 所有训练样本都在根节点
- 根据属性来划分样本
- 树的剪枝
- 许多分支可能反映的是训练数据中的噪声数据、孤立点,将这些分支剪枝
2.决策树生成算法
- 运用算法:贪心算法、自上而下、分治
- 构建决策树关键:测试属性的选择
- 注意:属性必须是离散值,在运用时要考虑是否离散化
- 常见的决策树生成算法:CLS、ID3、C4.5、CART
1. CLS
- 只说了划分树的方法、而没有规定选择测试属性的标准和依据
- 选用不同属性节点会出现很大的不同
2. ID3
- 针对属性选择问题而提出
- 选择最大信息增益的属性作为当前划分节点
- 步骤:在第六章有详细说明
- 在电信行业应用实例:
- PPT61-70
- 优缺点:
- 优点:简单
- 缺点:
- 偏向分隔属性中取值多的一个
- 只能处理离散属性
- 无法对未知分隔属性处理
- 没有剪枝操作、容易受到噪声、波动影响
3. C4.5
- 在ID3算法中:偏向分割属性中取值多的一个
- 当子集规模越小,每个子集内只有一个行,信息增益必然最大(熵最小)
- 解决方法:增益比例
- C4.5根据增益比例选择节点分裂属性
- 增益比例G(X,Y)
- 类别X、分裂属性Y
- 引入分母偏向分割属性中取值较多的一个属性
- 存在问题与解决的方法:
取值个数过多、过少
- 分割属性属性取值个数过多的话,H(Y)增大,但是G(X,Y)减小
- 当取值个数很少时,存在,则H(Y)=0,G(X,Y)就会很大
- 解决方法:
ID3只能处理离散分割属性
- 原因:如果把连续值看做离散值,会产生分割属性偏向问题
- 解决方法:
- 引入"阈值":将分割属性化为
对于连续取值的属性,如何选择阈值
- 将取值从小到大排序:{y1,y2,…,yn}
- 对于每个yi计算增益比例,找到最大值
ID3:无法对未知分割属性进行处理
- 原因:分割属性Y的一个取值yi,由于一些原因被计入
- 解决方法:平均值代替(数值型属性)、概率法代替(离散属性)
ID3:无树剪枝,易受到噪声、波动影响
解决方法:K阶交叉验证
用K-1份训练决策树、用剩下的1份去测试性能,总共进行k次迭代
用k次验证结构取均值,形成最终版
4.Cart算法(分类回归树)
- 采用:基于最小距离的基尼指数估计函数
- 生成二叉树
- 可以处理连续取值的数据
- 20、23、24、26,划分为两类一类小于某个数,另一类大于某个数
- 但是不推荐,最好离散化
- Gini指数
取值越小,表达的不确定性越小
属性必须是二叉结构
计算某个属性有几个二叉结构:
- 属性值为n,有种划分方法
- 算法步骤
与ID3算法一致,只是根据计算,选择Gini指标最小的。
5决策树剪枝
目的:处理由于噪声数据训练出的异常,用剪枝来处理过分拟合
先剪枝:
- 在完全正确分类训练集之前就停止树的生长。
- 最直接方法:限定树的最大生长高度,将超过树高的部分进行剪枝
后剪枝:
"完全生长"的树剪去子树
剪枝策略:
- 悲观剪枝法
- 降低分类错误率剪枝
- 最短描述长度原则剪枝:如无必要,勿增实体
- 首先生成与训练数据完全拟合的决策树,然后从树的叶子开始剪枝,逐步向根的方向剪。剪枝时要用到一个测试数据集合,如果存在某个叶子剪去后能使得在测试集上的准确率或其他测度不降低,则剪去该叶子。
3.提取分类规则
- 从决策树的根节点到任一个叶节点所形成的一条路径构成一条分类规则。
- 用if - then 表示
8.4贝叶斯分类方法
1.贝叶斯定理
- 贝叶斯推理的问题是条件概率推理问题
概率论基本知识回顾:
- 条件概率:
- 联合概率:
- 边际概率(全概率公式):与是互斥的,
贝叶斯定理
- 两个事件的贝叶斯公式:
- 与是互斥的,与中的一个出现是事件B发生的必要条件。
- n个事件的贝叶斯公式:
- 几个名词
- 先验概率:P(A),不考虑任何B方面的因素
- 后验概率:P(A|B),事件A的后验概率
- 实例
2.朴素贝叶斯分类
- 贝叶斯分类
- 设x∈Ω是一个类别未知的数据样本,cj为某个类别,若数据样本x属于一个特定的类别cj,那么分类问题就是决定P(cj|x),即在获得数据样本x时,确定x的最佳分类。
- 计算,将x分到类中
- 朴素贝叶斯分类过程
- 每个数据样本X用一个n维特征向量:X={x1,x2,…,xn}表示,分别描述对n个属性(A1,A2,…,An)的具体取值;
- 共有m个不同类别,。给定一个类别未知的数据样本X,计算,并将样本X归到类别中
- 根据,因为X是相同的,所以只计算
- 当类别的先验概率未知时,假定其相同,就求
- 否则,假定,S为训练集样本大小、为训练集样本类别为的个数。
- 多属性时,假定个属性相互独立,所以计算,而进行如下计算
- 属性值符号属性:
- 为训练样本类别为且属性取值的样本数
- 数值型:现将属性离散化,然后按照符号属性处理
- 为预测一个未知样本X的类别,对每个类,计算,并将样本X归到类别中
- 例子(考前自己实现一下)
9.1什么是聚类分析
- 无指导的,数据集中类别未知
- 类的特征:
- 类不是事先给定的,而是根据数据的相似性、距离划分的
- 聚类的数目和结构都没有事先假定。
- 挖掘有价值的客户:
- 找到客户的黄金客户
- ATM的安装位置
9.2距离和相似系数
- 原则: 组内数据有较高相似度、不同组数据不相似
- 相似性的度量(统计学角度):
- Q型聚类:对样本聚类(行聚类)
- R型聚类:对变量聚类(列聚类)
Q型聚类(样本聚类、行聚类)
样本资料矩阵:
定义距离的准则:
变量的类型
- 间隔尺度变量(数值型变量):可加可比
- 有序尺度变量(叙述型变量):不可加可比
- 名义尺度变量(名义型变量):不可加不可比
间隔尺度变量(数值型变量)
- 明可夫斯基距离
缺点:数据集中存在变量取值范围相差十分悬殊,会造成大数吃小数现象。
数值与指标量纲有关
解决方法:度量值的标准化
度量值的标准化:
- 将初始测量值转换为无单位变量。
- 常用零均值规范化
特例:比例数值变量
- 形如:
- 将其对数变换:
有序尺度变量
- 只可以不可加:比如各种排名、等级
- 步骤:
- 第i个对象变量f状态数为,利用等级替换相应的,从得到映射关系
- 将其取值范围映射到[0-1]区间,,并用替换(Mf为等级的总个数)
- 剩下就用间隔尺度变量的方法计算就可以
名义尺度变量(符号变量)
两种类型
- 二元变量:
- 只有两个取值变量:如男女、开关、01
- 名义变量:
- 二元变量推广:如颜色变量(R,G,B)
二元变量计算:
差异矩阵法:
恒定的相似度
- 对称的二元变量:取值01内容同等价值、相同权值
- 如:男女
- 取值不一样(01或10)的个数在所有变量的比重
非恒定的相似度
- 非对称二元变量:取值01内容重要程度不同
- 如:病毒阴阳性
- 取值不一样(01或10)的个数在所有变量(除去取值为00)的比重
相似度系数例子(小题计算):
名义变量计算(最常用):
- (不同的状态/总共的状态)
- p:所有变量符号个数
- m:对象ij状态相同的数量
混合数据类型
- 现实数据库中包含多类型的数据
- 如何计算?
- 将变量按类型分组,对每种类型的变量单独聚类分析,但实际中,往往不可行。
- 将所有的变量一起处理,只进行一次聚类分析。
- 定义:
- :
- 取值为0
- 数据不存在
- 且变量f为非对称二值变量
- 否则为1
- :
R型聚类(变量聚类、列聚类)
相似系数:
- 夹角余弦
- 相关系数
夹角余弦
- 值越大越好
变量间相似系数
相似系数
相似矩阵
9.3 类的定义和类间距离
1.类的定义
定义1:任意元素间距离满足:
- 适合:团簇状
定义2:任意元素间距离满足:(类内平均距离)
- 适合:团簇状
定义3:对于任意元素,存在,使得其满足(不要求任意两个元素)
- 适合:长条状
2.类间距离
最近距离
与最近距离为
是和合并得到的:
实际中不多见,避免极大值影响
例子
计算类间距离,然后将最小的两个进行合并
最远距离
与最近距离为
是和合并得到的:
可能被极大值扭曲,删除后再聚类
例题:与上面的类似,每次选取距离最小的,合并的时候取的是max
平均距离
- 是类样品个数
- 利用了所有样本的信息,比较好,但是复杂度大
中间距离
重心距离
一个类空间的位置用重心表示,两个类重心之间距离为二者的距离
对异常值不敏感,结果能稳定
9.4基于划分的聚类方法
1.划分方法
- 将n个对象划分成k类,且满足:
- 每个聚类内至少包含一个对象
- 每个对象必须属于一个类(模糊划分计划可以放宽要求)
- 划分方法:
- k-均值:每个聚类用该聚类中对象的平均值表示
- k-中心点:每个聚类用接近聚类重心的一个对象(真实存在的点)表示
2.k-均值聚类算法
用类均值表示
不适合处理离散型属性,适合处理连续型属性
算法流程:
- 选取聚类中心:随机从n个数据选择k个对象作为初始聚类中心
- 对剩余的每个对象,根据各个聚类中心的距离,将其赋给最近的聚类。
- 重新计算每个聚类的平均值(中心)
- 不断重复,直到准则函数收敛(减小)
收敛准则函数:误差平方和最小
- 同一簇内每个点与中心点计算
缺点:
局部最优,不是全局最优
结果与k的取值有关
- 不适合发现大小很不相同的簇、凹状的簇
*
只有在簇的平均值被定义的情况下才能使用,不适合有类属性的数据。
对噪声、异常点敏感。
示意图例子:
计算例子
3.k-中心点聚类算法
- k-中心点与k-均值算法区别
簇中心 | 评价准则 | |
k-均值 | 簇中对象均值(可以是虚点) | 误差平方和 |
k-中心点 | 接近簇中心的一个对象表示(实际存在的点) | 绝对误差 |
- 基本策略
- 随意选择一个代表对象作为中心点,将剩余对象按最小距离划分进簇中。
- 重复利用非中心对象代替中心对象,若改善聚类的整体距离,则进行替代。
- 用代价函数进行估算质量:
- 替代的四种情况
- 如何判断非代表对象是否能替代当前代表对象,需要对每个非中心点P考虑
- 替换的总代价:
- 若总代价为负,则可以替代
- 重新分配给
- 当前P属于,用替换作为新聚类代表,若离近,则将其划分给
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4gr5RWP-1641719199746)(/uploads/upload_f9d586b40b97dd403a72ac67a14e1eb5.png =200x)]
- 重新分配给
- 当前P属于,用替换作为新聚类代表,若离近,则将其划分给
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xHff0tiL-1641719199746)(/uploads/upload_3f49d03055583faf4e1fc8fc037d0dbd.png =200x)]
- 不发生变化
- 当前P属于,用替换作为新聚类代表,若p仍然接近,则p不发生变化
- 。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WES0lOvA-1641719199746)(/uploads/upload_8f3196079cb4900796975a93c50ae4c6.png =200x)]
- 重新分配给
- 当前P属于,用替换作为新聚类代表,若若离近,则将其划分给
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhsmAgfY-1641719199747)(/uploads/upload_ebb31c305961cf50296f6c891871898a.png =200x)]
- 算法步骤
- 选取聚类中心:随机从n个数据对象选择k个
- 循环3-5,知道聚类不发生变化
- 对剩余的每个对象,根据各个聚类中心的距离,将其划分给最近的聚类。
- 选择任意非中心对象,计算与中心对象交换的成本S。
- 若成本S为负,则交换中心对象。
9.4基于层次的聚类方法
1. 总述
- 给定的数据对象集合进行层次分解,根据层次分解的方式,层次的方法被分为凝聚、分裂。
- 凝聚层次法(agnes算法)
- 自底向上
- 一开始将每个对象作为单独的一组,然后合并相近的组,直到合为一组或到达终止条件
- 分裂层次法(dinan算法)
- 自底向下
- 所有对象置于一个簇,在迭代的每一步,一个簇被分裂为更下的簇,直到每个对象单独为一个簇或到达某个终止条件
- 计算距离方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I5JRunkG-1641719199747)(/uploads/upload_8ab7c497b59a20e8748d2bb53d385f8a.png =600x)]
2.agnes算法
- 步骤:
- 每个对象当做一个初始簇
- repeant 3-4
- 根据两个簇中最近数据点找到最近的两个簇
- 合并两个簇,生成新的簇集合
- until 达到定义的簇的数目
- 例子:
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OcMj1sId-1641719199748)(/uploads/upload_3d35a1a93298e3ed74af475765476a1a.png =500x)]
- 特点:
- 算法简单,合并会出现问题:一旦合并就不能撤销,可能会对后续操作产生影响。
- 复杂度比较大O(n^2)
3.diana算法
- 簇的直径:一个簇中的任意两个数据点的距离中的最大值
- 平均相异度(平均距离):[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BRp0OIn5-1641719199748)(/uploads/upload_37533c0177fad371d176a493875ede6e.png =400x)]
- 算法步骤:
- 例题
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yadfhc2l-1641719199748)(/uploads/upload_3743cd88c40b241f4796f25bd5a6a952.png)]
将所有对象当做一个初始簇
for(int i = 1; i <= k; i++){
在所以簇中挑选出最大直径的簇C
找出C中与其他点平近距离最大的一个点p放入splinter group,剩余点放入old party
Repeat
在old party中找出到splinter group比到old party更近的点,加入splinter group
Until 没有新的点被分到splinter group
splinter group 与 old party 就被分解为两个新的簇
}
9.5 基于密度的聚类方法
1.概述
- 基于密度聚类方法
- 只要一个区域中点的密度(对象、数据点的数目)超过阈值,就将其加到与之相近的聚类中
- 可以过滤噪声、孤立点、发现任意形状的簇
- 代表算法:Dbscan、Optics、Denclue
2.Dbscan算法
- 简述:
- 能将足够高密度的区域划分为簇,并可以在带有噪声的空间数据中发现任意形状的聚类
- 簇:密度相连的点的最大集合
- 定义
- ε-邻域:对象的ε-邻域:给定对象在半径ε内的区域。
- 核心对象:如果一个对象的ε-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象。
- 边界点:边界点不是核心点,但落在某个核心点的邻域内
- 直接密度可达:给定一个对象集合D,如果p是在q的ε-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。
- 密度可达的:如果存在一个对象链p1,p2,…,pn,p1=q,pn=p,对pi∈D,(1<=i<=n),pi+1是从pi关于ε和MitPts直接密度可达的,则对象p是从对象q关于ε和MinPts密度可达的。
- 密度相连的:如果对象集合D中存在一个对象o,使得对象p和q是从o关于ε和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的。
- 噪声:不包含在任何簇中的对象被认为是“噪声” 。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-07cNlEJz-1641719199749)(/uploads/upload_579bf6152807ece7737c5aee3e8adf56.png =200x)]
- 例子
- 在下图中,设定ε=1cm,MinPts=5, q是一个核心对象,对象p从对象q出发是直接密度可达的。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNFAPM77-1641719199749)(/uploads/upload_bc3f0174989106c563c07d4c3504548b.png =100x)]
- 在下图中,ε=1cm,MinPts=5,o是一个核心对象,p1是从o关于ε和MitPts直接密度可达,p是从p1关于ε和MitPts直接密度可达,则对象p从对象o关于ε和MinPts密度可达的;同理,q也是从o关于ε和MinPts密度可达的,则,称对象p和q是关于ε和MinPts密度相连的。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pehRM35e-1641719199749)(/uploads/upload_fe4bc5b8062af716b4f61e50e32d4aa6.png =200x)]
- Dbscan算法描述
- 如果一个点p的ε-邻域包含多余Minpats个对象,则创建一个以p为核心对象的新簇。
- 然后,Dbscan反复寻找从核心对象直接密度可达的对象,这个过程可能会有密度可达簇合并。
- 当没有新的点加入簇时,过程结束。
- 伪代码