数据仓库与数据挖掘课后思考题整理
文章目录
1 数据仓库概述
思考题
- 简述数据仓库有哪些主要的特征。
- ① 面向主题 ② 集成 ③ 稳定性即非易失的 ④ 随时间变化而随时变化的
- 面向主题
主题是指用户使用数据仓库进行决策时所关心的重点领域,也就是在一个较高的管理层次上对信息系统的数据按照某一具体的管理对象进行综合、归类所形成的分析对象。
从数据组织的角度来看,主题是一些数据集合。
面向主题组织的数据特点:
- 各个主题有完整、一致的内容以便在此基础上作分析处理。
- 主题之间有重迭的内容,反映主题间的联系。重迭是逻辑上的,不是物理上的。
- 各主题的综合方式存在不同。
- 主题域应该具有独立性(数据是否属于该主题有明确的界限)和完备性(对该主题进行分析所涉及的内容均要在主题域内)。
- 集成
- 数据仓库中存储的数据一般从企业原来已建立的数据库系统中提取出来,但并不是原有数据的简单拷贝,而是经过了抽取、筛选、清理、转换、综合等工作。
- 稳定性即非易失的
- 操作型数据库系统中一般只存储短期数据,因此其数据是不稳定的,它记录的是系统中数据变化的瞬态。
- 数据仓库中的数据大多表示过去某一时刻的数据,主要用于查询、分析,不像业务系统中的数据库那样,要经常进行修改、添加,除非数据仓库中的数据是错误的。
- 随时间而变化即时变的
数据仓库大多关注的是历史数据,其中数据是批量载入的,即定期从操作型应用系统中接收新的数据内容,这使得数据仓库中的数据总是拥有时间维度。
数据仓库的稳定性和时变性并不矛盾,从大时间段来看,它是时变的,但从小时间段来看,它是稳定的。
- 简述数据仓库与传统数据库的主要区别。*
- 传统的数据库技术是以单一的数据资源,即数据库为中心,进行联机事务处理(OnLine Transaction Processing,OLTP)、批处理、决策分析等各种数据处理工作,主要的划分为两大类:操作型处理(事务处理)和分析型处理(或信息型处理)。
- 操作型数据和分析型数据的区别 :
操作型数据 分析型数据 细节的 综合的 存取瞬间 历史数据 可更新 不可更新 事先可知操作需求 操作需求事先不可知 符合软件开发生命周期 完全不同的生命周期 对性能的要求较高 对性能的要求较为宽松 某一时刻操作一个单元 某一时刻操作一个集合 事务驱动 分析驱动 面向应用 面向分析 一个操作的数据量较小 一次操作的数据量较大 支持日常操作 支持管理需求
- 为什么需要分离的数据仓库。*
- 提高两个系统的性能。
- 数据仓库的查询通常是复杂的,涉及大量数据在汇总级的计算,可能需要特殊的数据组织、存取方法和基于多维视图的实现方法。对数据记录进行只读访问,以进行汇总和聚集。
- 如果OLTP和OLAP都在操作型数据库上运行,会大大降低数据库系统的吞吐量。
- 数据仓库与操作型数据库分离是由于这两种系统中数据的结构、内容和用法都不相同。
- 简述数据仓库的体系结构。
数据仓库系统的体系结构:
数据仓库系统的组成**(数据仓库系统通常指一个数据库环境,而不是指一件产品。)
- 数据仓库
- 是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操作型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
- 抽取工具
- 把数据从各种各样的存储环境中提取出来,进行必要的转化、整理,再存放到数据仓库内。
- 其功能包括:删除对决策应用没有意义的数据,转换到统一的数据名称和定义,计算统计和衍生数据,填补缺失数据,统一不同的数据定义方式。
- 元数据
是关于数据的数据,在数据仓库中元数据位于数据仓库的上层,是描述数据仓库内数据的结构、位置和建立方法的数据。
通过元数据进行数据仓库的管理和通过元数据来使用数据仓库。
- 数据集市
- **数据集市(Data Mart)**是在构建数据仓库的时候经常用到的一个词汇。
- 数据集市面向企业中的某个部门(或某个主题)是从数据仓库中划分出来的,这种划分可以是逻辑上的,也可以是物理上的。
- 数据仓库中存放了企业的整体信息,而数据集市只存放了某个主题需要的信息,其目的是减少数据处理量,使信息的利用更加快捷和灵活。
- OLAP服务
- 联机分析处理(OnLine Analytical Processing,OLAP)服务指的是对存储在数据仓库中的数据提供分析的一种软件,它能快速提供复杂数据查询和聚集,并帮助用户分析多维数据中的各维情况。
- 数据报表、数据分析和数据挖掘
- 为用户产生的各种数据分析和汇总报表,以及数据挖掘结果。
- 简述商务智能与数据仓库的关系。
- 商务智能简称为BI(Business Intelligence),也称为商业智能。
- 商务智能是融合了先进信息技术与创新管理理念的结合体,对与企业有关的所有内部和外部的数据进行收集、汇总、过滤、分析、传递、综合利用,使得数据转换成为信息和知识的过程。商务智能可以整合历史数据,从多个角度和层面对数据展开深层次的分析、处理,为决策者提供相应的决策依据,提高决策效率和水平。
- 一般来说,上面所描述的是一个广义上的商务智能概念,在这个概念层面上,数据仓库是其中非常重要的组成部分,数据仓库从概念上更多地侧重在对企业各类信息的整合和存储工作,包括了数据的迁移,数据的组织和存储,数据的管理与维护,这些称之为后台基础性的数据准备工作。
- 与之对应,狭义的商务智能概念则侧重在数据查询和报告、多维/联机数据分析、数据挖掘和数据可视化工具这些平常称之为前台的数据分析应用方面,其中数据挖掘是商务智能中比较高层次的一种应用。
下列关于数据仓库的叙述中,哪些是错误的。
数据仓库通常采用三层体系结构。
- 正确
- 区分数据仓库与数据仓库系统!整个数据仓库系统包含四层结构!
底层的数据仓库服务器一般是一个关系型数据库系统。
- 正确
数据仓库中间层OLAP服务器只能采用关系型OLAP。
- 错误
- 数据仓库中间层OLAP服务器可以是关系型OLAP也可以是多维OLAP服务器。
数据仓库前端分析工具中包括报表工具。
- 正确
数据仓库是随时间变化的,以下叙述那些是错误的。
数据仓库随时间变化不断增加新的数据内容。
- 正确
捕捉到的新数据会覆盖原来的快照。
- ???
数据仓库随时间变化不断删去旧的数据内容。
- 错误
- 删除超过期限(如5~10年)的数据,因此数据仓库中的数据也具有时变性,只是时变周期远大于应用数据库。
数据仓库中包含大量的综合数据,这些综合数据会随着时间变化不断地进行重新综合。
- 正确
某超市建立了一个交易系统,可以统计每天、每周的销售量和销售额,他说这就是一个数据仓库,这个说法正确吗?为什么?
- 并不是数据仓库
- 这是一个操作性应用系统,其数据是随时变化的,定期的向相关数据仓库提供批量新的数据;且其并不稳定;且这个系统是所有数据的记录,并不满足数据仓库的集成特征。
2 数据仓库及其设计
思考题
- 试述常用的数据仓库构建模式。
- 先整体再局部的构建模式
先创建企业数据仓库,再从数据仓库中分离部门业务的数据集市。
优点:
数据规范化程度高,最小化数据冗余与不一致性;便于全局数据的分析和挖掘。
缺点:
建设周期长、见效慢;风险程度相对大。
这种构建模式通常在技术成熟、业务过程理解透彻的情况下使用
- 先局部再整体的构建模式
- 先将企业各部门的决策子目标建立各自的数据集市,逐步扩充形成数据仓库,实现对企业级决策的支持。
- 优点:
投资少、见效快;在设计上相对灵活;易于实现。
- 缺点:
数据需逐步清洗,信息需进一步提炼,如果数据在抽取时有一定的重复工作,还会有一定级别的冗余和不一致性。
- 简述数据设计步骤。
- 数据仓库系统开发是一个经过不断循环、反馈而使系统不断增长与完善的过程。在数据仓库的开发过程中,自始自终要求决策人员和开发者的共同参与和密切协作。步骤如下:
- 数据仓库的规划和需求分析。
- 数据仓库的建模。
- 数据仓库物理模型设计。
- 数据仓库的部署。
- 数据仓库的维护。
- 如何进行数据仓库的需求分析。
- 主题分析:主题是用户提出分析决策的目标和需求。
- 主题、指标,维度,粒度
- 数据分析:数据仓库系统以数据为核心
数据源分析
数据数量分析
数据质量分析
- 环境要求分析:满足要求的系统平台和环境
- 设备、网络、数据、接口、软件
- 什么是数据仓库建模,其主要工作有哪些?
- 数据仓库建模是指设计数据仓库的逻辑模型。
- 数据仓库建模的主要工作
- 在需求分析上,确定系统所包含的主题域并加以描述
- 确定事实表的粒度
- 确定数据分割策略
- 构建数据仓库中各主题的多维数据模型及其联系
- 在需求分析上,确定系统所包含的主题域并加以描述
- 主题选取的原则是优先实施管理者目前最迫切需求、最关心的主题。主题内容的描述包括主题的公共键、主题之间的联系和各主题的属性。
- 确定事实表的粒度
- 事实表的粒度能够表达数据的详细程度。从用途的不同来说,事实表可以分为以下三类:
- 原子事实表:是保存最细粒度数据的事实表,也是数据仓库中保存原子信息的场所。
- 聚集事实表:是原子事实表上的汇总数据,也称为汇总事实表。
- 合并事实表:是指将位于不同事实表中处于相同粒度的事实进行组合建模而成的一种事实表。
- 确定事实表粒度的主要作用:
- 可以确定维度是否与该事实表相关。维度和事实表应在同一粒度上。
- 在定义好事实表的粒度后,能更清楚地确定哪个事实与该事实表相关。
- 确定数据分割策略
- **分割是指把逻辑上是统一整体的数据分割成较小的、可以独立管理的物理单元进行存储,**以便能分别处理,从而提高数据处理的效率。
- 分割可以按时间、地区、业务类型等多种标准来进行,也可以按自定义标准,分割之后小单元的数据相对独立,处理起来更快更容易。但在多数情况下,数据分割采用的标准不是单一的,而是多个标准的组合。一般要考虑以下几方面的因素:
- 数据量大小
- 数据分析处理的实际情况
- 简单易行
- 与粒度的划分策略相统一
- 数据的稳定性。
- 构建数据仓库中各主题的多维数据模型及其联系
- 由于数据仓库目前大多是使用关系数据库来实现的,所以本章主要讨论基于关系数据库的数据仓库建模方法。
- 星形模式
- 雪花模式
- 事实星座模式
- 实现多维数据模型的方式有哪些。
- 如何构建星形模式。
- 维表设计
维表用于存放维信息,包括维的属性(列)和维的层次结构。一个维用一个维表表示。维表通常具有以下数据特征。
- 维表通常使用解析过的时间、名字或地址元素,这样可以使查询更灵活。例如时间可分为年份、季度、月份和日期等,地址可用地理区域来区分,如国家、省、市、县等。
- 维表通常不使用业务数据库的关键字作为主键,而是对每个维表另外增加一一个额外的字段作为主键来识别维表中的对象。在维表中新设定的键也称为代理键。
- 维表中可以包含随时间变化的字段,当数据集市或数据仓库的数据随时间变化而有额外增加或改变时,维表的数据行应有标识此变化的字段。
- 维表中维的类型包括结构维、信息维、分区维、分类维、退化维、- -致维和父子维多种类型。
- 概念分层
- 维表中维一般包含着层次关系, 也称为概念分层,如在时间维上,按照“年份一季度一月份”形成了一个层次,其中年份、季度、月份成为这个层次的三个级别。
- 事实表设计
- 事实表主键的每个元素都是维表的外键。通过事实表将各种不同的维表连接起来,各个维表都连接到中央事实表。维表中的对象通过事实表与另一个维表中的对象相关联,这样就能建立各个维表对象之间的联系。
- 试比较星形模式、雪花模式、事实星座模式的区分与联系。
- 星形模式是最基本的模式,一个星形模式有多个维表,但只有一个事实表,对维表进行规范化,构建多层维表,就成为雪花模式。如果有多个事实表,且共享多个维表就是事实星座模式。
实践题
有一个学生成绩管理系统,其中含有学生的学号、姓名、性别、籍贯、课程和分数等信息,现在要构建一个数据仓库,其主题是学生成绩。根据你的设计,回答下列问题。
给出该数据仓库中事实表的结构。
给出该数据仓库中所有维表的结构。
画出该数据仓库的模型,分析它属于哪种模式。
3 OLAP技术
思考题
- OLAP的概念及特点。
什么是OLAP
- OLAP(OnLine Analytical Processing, 联机分析处理),1993年由E.F.Codd提出,是针对某个特定的主题进行联机数据访问、处理和分析,通过直观的方式从多个维度、多种数据综合程度将系统的运营情况展现给使用者。
- OLAP委员会给予OLAP的定义为,OLAP是使分析人员、管理人员或执行人员**(知识工人)**能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。
OLAP技术的特性
- **多维性:**使用OLAP技术,可以从多个角度观察数据,从不同的主题分析数据,最终直观地得到有效的信息。
- **可理解性:**处理业务逻辑和统计分析,同时对目标用户而言足够简单。
- 交互性: OLAP帮助用户个性化的分析数据。
- **快速性:**反应速度。
- 简述OLAP与数据仓库的关系。
- 建立数据仓库的目的是为了支持管理中的决策制定过程,OLAP服务作为一种多维查询和分析工具,是数据仓库功能的自然扩展,也是数据仓库中的大容量数据得以有效利用的重要保障。
- 在数据仓库中,OLAP和数据仓库是密不可分的,但是两者具有不同的概念。
- 数据仓库是一个包含企业历史数据的大规模数据库,这些历史数据主要用于对企业的经营决策提供分析和支持。
- OLAP技术则利用数据仓库中的数据进行联机分析,OLAP利用多维数据集和数据聚集技术对数据仓库中的数据进行组织和汇总,用联机分析和可视化工具对这些数据进行评价,将复杂的分析查找结果快速地返回用户。
- OLAP技术与数据仓库的结合可以较好地解决传统决策支持系统既要处理大量数据,又需要进行大量数据计算的问题,进而满足决策支持或多维环境特定的查询和报表需求。
- 简述OLAP的体系结构与分类。
- 主流的OLAP数据组织方式有3种:
基于关系型数据库ROLAP(Relational OLAP)
基于多维数据库MOLAP(Multidimensional OLAP)
基于关系型数据库和多维数据库的混合方式HOLAP(Hybrid OLAP)
- ROLAP(Relational OLAP)表示基于的数据存储在传统的关系型数据库中。
- 每个ROLAP分析模型基于关系型数据库中一些相关的表,这些相关的表中有反映观察角度的维度表和含有度量的事实表。
- 这些表在关系型数据库中通过外键相互关联,典型的组织模型有星形模式、雪花模式和事实星座模式。
- MOLAP(Multidimensional OLAP)表示基于的数据存储在多维数据库中。多维数据库有时也称数据立方体。
- 多维数据库可以用多维数组表示。例如,一个包含有时间维、地区维、品牌维和销售量的数据集通过多维数组可表示成:(时间维、地区维、品牌维、销售量)
- 通过这种方式表示数据可以极大提高查询的性能。
- HOLAP(Hybrid OLAP)表示基于的数据存储是混合模式的。ROLAP和MOLAP两种方式各有利弊,为了同时兼顾它们的优点,提出一种HOLAP将数据存储混合。
- 通常将粒度较大的高层数据存储在多维数据库中,粒度较小的细节层数据存储在关系型数据库中。
- 这种HOLAP具有更好的灵活性。
- 简述OLAP的基本操作。
- OLAP的基本分析操作主要包括对多维数据进行切片、切块、旋转、上卷和下钻等,这些分析操作使得用户可以从多角度、多侧面观察数据。
- 在多维数据集的某一维上选定一个维成员的操作称为切片。
- 选定多维数据集的一个三维子集的方法称为切块。
- **旋转(又称转轴,Pivot)**是一种视图操作,即改变一个报告或页面显示的维方向,可以得到不同视角的数据,即转动数据的视角以提供数据的替代表示。
- 上卷操作通过维的概念分层向上攀升或者通过维归约(即将4个季度的值加到一起为一年的结果)在数据立方体上进行聚集。
- 下钻是上卷的逆操作,它由不太详细的数据到更详细的数据。
- 什么是物化,有哪些方法?
- 所谓物化就是预计算并存储数据立方体的方体。物化方法有不物化、全物化和部分物化。
- 不物化方法
- 不预计算任何“非基本”方体。这可能导致回答查询时,因进行昂贵的多维聚集计算,速度非常慢。
- 全物化方法
- 物化是指对维集合的所有****可能组合都进行聚集。
- 最为简单的全物化方法是通过计算n维事实表中的数据,依次得到2n个聚集方体,这可能产生维灾难。
- 部分物化方法
- 部分物化是指在部分维及其相关层次上进行聚集,即从数据立方体的所有方体中选择一个子集进行物化。在一般情况下,通常20%的聚集就能够满足80%的查询需要。如何确定该20%的聚集是提高聚集效率的关键。部分物化是存储空间和响应时间二者之间的很好折中。
课后书面作业
- 假设数据仓库包含3个维: time (时间)、doctor (医生)和patient (病人),两个度量为count(诊治次数)和charge (一次诊治的收费金额)。由基本方体(day,doctor,patient)开始,列出2013 年每位医生的收费总额,应当执行哪些OLAP基本操作?
- 看作业
假设University数据仓库包含student (学生)、course (课程)和teacher (教程) 3个维,度量为avg_ grade。在最低的概念层(如对于给定的学生、课程和教师的组合),度量avg. grade存放学生的实际成绩,在较高概念层,avg_ grade 存放学生的给定组合的平均成绩。回答以下问题。
假设University数据仓库中,student 维的概念分层为:学生<年级<专业<学院<All; course维的概念分层为:课程<课程类别<专业<学院<All; teacher 维的概念分层为:教师<职称<学院<All。给出该数据仓库的星形模式图,根据要求设计数据仓库的事实表和维表的结构。
在University数据仓库中,数据立方体包含多少个方体( 包括基本方体和顶点方体) ?
- 看作业
4 数据挖掘概述
思考题
- 简述数据挖掘的定义、知识表示与任务。
- 定义
- 从技术角度看,**数据挖掘(Data Mining,简称DM)**是从大量的、不完全的、有噪声的、模糊的、随机的实际数据中,提取隐含在其中的、人们所不知道的、但又是潜在有用的信息和知识的过程。
- 从商业应用角度看,数据挖掘是一种崭新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转化、分析和模式化处理,从中提取辅助商业决策的关键知识。
- 知识表达
- 规则
- 规则知识由前提条件和结论两部分组成,前提条件由字段(或属性)的取值的合取(与,AND,∧)析取(或,OR,∨)组合而成,结论为决策字段(或属性)的取值或者类别组成。
- 如:if A=a ∧ B=b then C=c,或者A(a) AND B(b) → C©。
- 决策树
- 决策树采用树的形式表示知识,叶子结点表示结论属性的类别,非叶子结点表示条件属性,每个非叶子结点引出若干条分支线,表示该条件属性的各种取值。
- 一棵决策树可以转换成若干条规则。
- 知识基
- 通过数据挖掘原表中的冗余属性和冗余记录,得到对应的浓缩数据,称为知识基。它是原表的精华,很容易转换成规则知识。
- 网络权值
- 神经网络方法得到的知识是一个网络结构和各边的权值,这组网络权值表示对应的知识。
- 主要任务
在缺乏强有力的数据分析工具的情况下,历史数据变成了“数据坟墓”。也就是说极有价值的信息被“淹没”在海量数据堆中。
数据挖掘的两个高级目标是预测和描述。
- 预测是指用一些变量或数据库的若干已知字段预测其他感兴趣的变量或字段的未知或未来的值。
- 描述是找到描述数据的可理解模式。
- 根据发现知识的不同,可以将数据挖掘的任务归纳为以下几类:
- 关联分析:关联是某种事物发生时其他事物会发生的这样一种联系。例如每天购买啤酒的人也有可能购买尿布,比重有多大,可以通过关联的支持度和置信度来描述。关联分析的目的是挖掘隐藏在数据间的满足一定条件的关联关系,如:
buy(computer)→buy(software)
关联规则表示顾客购买计算机和软件之间的关联关系。
**时序分析:**与关联分析不同,时序分析产生的时序序列是一种与时间相关的纵向联系。例如今天银行调整利率,明天股市的变化。
**分类:**按照分析对象的属性、特征,建立不同的组类来描述事物。例如银行部门根据以前的数据将客户分成了不同的类别,现在就可以根据这些来区分新申请贷款的客户,以采取相应的贷款方案。
**聚类:**识别出分析对内在的规则,按照这些规则把对象分成若干类。例如将申请人分为高度风险申请者,中度风险申请者,低度风险申请者。
**预测:**把握分析对象发展的规律,对未来的趋势做出预见。例如对未来经济发展的判断。
数据挖掘的各项任务不是独立存在的,在数据挖掘中互相联系,发挥作用。
- 简述数据数据挖掘与数据仓库及OLAP的关系。
- 相同点
- 数据挖掘与OLAP都是数据分析工具。
- 不同点
- 数据挖掘是挖掘型的,建立在各种数据源的基础上,重在发现隐藏在数据深层次的对人们有用的模式,并做出有效的预测性分析。
- OLAP是验证型的,OLAP更多地依靠用户输入问题和假设,建立在多维数据的基础之上 。
- 数据挖掘和OLAP具有一定的互补性。
- 简述数据挖掘系统的结构。
- 实现用户与系统交互得到用户满意的模式核心,提供挖掘模块提供所需的目标数据集数据的信息源。
- 简述数据挖掘的基本过程。
- ???
- 简述有哪些数据挖掘系统与数据源系统的集成方案。
- **不耦合:**是指系统不利用数据源系统的任何功能;
- **松散耦合:**是指利用数据源系统的某些功能。
- **半紧密耦合:**是指将数据挖掘系统连接到数据源系统,在数据源系统中实现并存储一些基本数据挖掘计算和中间结果;
- **紧密耦合:**是指数据挖掘系统平滑地集成到数据源系统,数据挖掘系统作为数据源系统的一个功能组件,数据挖掘任务根据数据源系统的功能进行优化与实现。
- 不耦合是一种糟糕的设计,松散耦合比不耦合好,半紧密耦合是一种折中方案,和紧密耦合是常见的两种系统的集成方案。
- 简述有哪些数据清理方法。
- 处理空缺值、消除噪声数据、消除不一致
- 简述有哪些数据集成方法。
- 数据集成是将多个数据源中的数据整合到一个一致的数据存储(如数据仓库)中,由于数据源的多样性,这就需要解决可能出现的各种集成问题。
- 数据模式集成
- 通过整合不同数据源中的元数据来实施数据模式的集成。特别需要解决各数据源中属性等命名不一致的问题。
- 检测并解决数据值的冲突
- 对现实世界中的同一实体,来自不同数据源的属性值可能是不同的。可能的原因有不同的数据表示、不同的度量等。例如学生成绩,有的用100制,有的用5等制,这都需要纠正并统一。
- 处理数据集成中的冗余数据
- 集成多个数据源时,经常会出现冗余数据,常见的有属性冗余,如果一个属性可以由其它属性导出,则它是冗余属性,例如“年薪”可以由月薪计算出来。
- 简述有哪些数据变换方法。
数据变换的作用就是将数据转换为易于进行数据挖掘的数据存储形式。
最常见的数据变换方法是**规格化,**即将属性数据按比例缩放,使之落入一个小的特定区间。
- 最小-最大规范化
- 零-均值规格化
- 小数定标规格化
- 简述数据概化策略与算法。
- 数据概化也称为数据泛化,就是将数据源中的跟任务相关的数据集从较低的概念层抽象到较高的概念层的过程。
- 数据概化的一个基本方法是面向属性的归纳,根据属性的概念分层,通过阈值控制,将属性的低层属性值用相应高层概念替换,合并后得到原数据集的记录归约结果。类似于数据立方体在记录个数聚集函数上的上卷操作。
- 简述有哪些数据离散化技术。
- 分箱、直方图分析、聚类分析
- 分箱
- 分箱是一种基于箱的指定个数自顶向下的分裂技术,也可以用于记录归约和概念分层产生的离散化方法。
例如,通过使用等宽或等频(等深)分箱,然后用箱均值或中位数替换箱中的每个值,可以将属性值离散化,就像分别用箱的均值或箱的中位数平滑一样。它是一种非监督的离散化技术,对用户指定的箱个数很敏感。
- 直方图分析
- 像分箱一样,直方图分析也是一种非监督离散化技术。直方图将一个属性的值划分成不相交的区间,称作桶。
例如,在等宽直方图中,将值分成相等的划分或区间,在等深直方图中,值被划分成其中每一部分包含相同个数的样本。每个桶有一个标记,用它替代落在该桶中的属性值,从而达到属性值离散化的目的。
- 聚类分析
- 聚类分析是一种流行的数据离散化方法。通过聚类算法将属性的值划分成簇或组,每个簇或组有一个标记,用它替代该簇或组中的属性值。
- 简述离散属性概念分层的自动生成算法。
- **对于离散属性,如果概念分层的任何层次上的结点(或属性值)个数少于比它低的每一层上的结点数,**可以利用以下算法自动生成隐含在该属性上的概念分层。
**输入:**离散属性集S={A1,A2,…,Am}和对应的数据集R。
**输出:**概念分层B1,B2,…,Bm。
**方法:**方法描述如下。k=1,T=S; 从T中找一个属性Bk,它在R中不同值的个数是T的所有属性中最少; while (k<m) { T=T-{Bk} minnum=∞; for (T中每个属性Ai) {计算R中属性序列B1、B2、…Bk在属性Ai上不同元组个数mynum; if (mynum<minnum) { minnum=mynum; Bk+1=Ai; } } k=k+1 }
- 简述大数据的特点。
- 大数据的5V特征
- 数量大(Volume)、类型多(Variety)、速度快(Velocity)、真实性(Veracity) 、大价值(Value)
5 关联分析
思考题
- 简述什么是购物篮问题。
- 设I是全部商品集合,D是所有顾客的购物清单,每个元组即事务是一次购买商品的集合。
- 购物篮问题是关联分析的一个典型例子,每种商品有一个布尔变量,顾客购买某商品,对应的布尔变量为true,否则为false,可以将一个事务看成是一个购物篮,购物篮可用一个为这些变量指定值的布尔向量表示。
- 试述关联规则及其度量。
- 关联规则表示项之间的关系,它是形如X→Y的蕴涵表达式,其中X和Y是不相交的项集,即X∩Y=Ф,X称为规则的前件,Y称为规则的后件。
- 支持度
- 置信度
- 试述频繁项集及频繁k项集。
- 给定全局项集I和事务数据库D,对于I的非空子集I1,若其支持度大于或等于min_sup,则称I1为频繁项集(Frequent Itemsets)。
- 对于I的非空子集I1,若某项集I1中包含有I中的k个项,称I1为k-项集。
- 试述Apriori性质。
- 若A是一个频繁项集,则A的每一个子集都是一个频繁项集。
- 试述改进的Apriori算法。
- 采用自连接和剪枝操作得到改进的Apriori算法如下:
- 输入:事务数据库D,最小支持度阈值min_sup。
- 输出:所有的频繁项集集合L。
- 方法:其过程描述如下:
通过扫描D得到1-频繁项集L1; for (k=2;Lk-1!=Ф;k++) { Ck=apriori_gen(Lk-1,min_sup); for (事务数据库D中的事务t) { for (t中每个k-项集s); if (s∈Ck) s.sup_count++; } for (Ck中的每个项集c) if (c.sup_count ≥ min_sup) Lk=Lk∪{c}; } return L=∪kLk;
procedure aprior_gen(Lk-1,min_sup) //由Lk-1自连接并剪枝构建Ck { for (Lk-1中的每个项集l1∈Lk-1) for (Lk-1中l1之后的每个项集l2∈Lk-1) if (l1[1]=l2[1] and … and l1[k-2]=l2[k-2] and l1[k-1]<l2[k-1]) { c=l1与l2连接; if (has_infrequent_subset(c,Lk-1)) delete c; else 将c加入Ck; } return Ck; } procedure has_infrequent_subset(c, Lk-1) //剪枝:判断c是否为非频繁项集 { for (c的每个(k-1)-子项集s) if (s不属于Lk-1) //c中存在不属于Lk-1的(k-1)-子项集,c是非频繁的 return true; return false; }
- 试述产生关联规则的算法。
**输入:**Apriori算法的各项集的支持度计数,频繁项集集合L,最小置信度阈值min_conf
**输出:**所有强关联规则的后件项集R。
**方法:**其过程描述如下:
for (L中的每个频繁项集l) { for (l中的每个1-项集l1) if (l.sup_count/(l-l1).sup_count≥min_conf) //l1满足置信度要求 R1=R1∪l1; for (j=2;Rj-1!=Ф;j++) for (Rj-1中每个后件la) for (Rj-1中后件la之后的每个后件lb) if (la[1]=lb[1] and la[2]=lb[2] and … and la[j-2]=lb[j-2] and la[j-1]<lb[j-1]) { lj=la与lb连接; if (l.sup_count/(l-lj).sup_count≥min_conf) //lj满足置信度 Rj=Rj∪lj; } } return R=∪jRj;
实践题
- 有一个事务集合如表5.12所示,设最小支持度计数为3,采用Apriori算法求出所有的3-频繁项集集合L3。
7 分类方法
思考题
- 机器学习通常分为有监督学习和无监督学习,有监督学习通常又叫做分类,无监督学习又叫做聚类。
- 分类过程分为两个阶段:学习阶段和分类阶段。学习阶段又分为训练和测试两部分。
- 分类的定义?分类算法可以根据哪些标准进行比较和评估?
- 评估分类模型准确率有哪些方法?
- 试述k-最邻近分类算法的思路、定义、过程及算法描述,其适用范围,不足及需要解决的主要问题。
- 信息增益如何计算?试述ID3算法。ID3算法的优点和缺点?如何由决策树提取分类规则?
- C4.5对ID3是如何改进的?它是如何实现的?试述C4.5算法。
- 试述贝叶斯定理。给定相关概率如何计算后验概率。
- 试述贝叶斯网络的主要成分及其联合概率计算方法。
- 试述朴素贝叶斯分类的假定及其原理,分类算法,其对应的贝叶斯网络结构,以及如何针对实际数据集进行应用?
- 试述人工神经元及其工作过程,激活函数有什么作用?S型函数的定义及性质。
- 试述人工神经网络的要素?试述前馈神经网络的学习过程。试述前馈神经网络用于分类的流程及对应的算法。
- 支持向量机的基本原理及其优缺点。如何得到线性分类器的分类间隔,支持向量的含义。松驰变量和惩罚因子的作用是什么?
实践题
- 全™实践.…
8 回归和时序分析
思考题
- 什么是回归分析?
- 回归分析(Regression Analysis)是确定两个或多个变量之间相互依赖的定量关系的一种统计分析方法,分为线性回归、非线性回归和逻辑回归等。回归分析和前一章介绍的分类方法都可以用于预测,与分类方法不同的是,通常分类输出是离散类别值,而回归的输出是连续值。
- 什么是逻辑回归?
- 逻辑回归用于分析二分类或有次序的依变量和自变量之间的关系。
- 当依变量是二分类(如1或0)时,称之为二分逻辑回归,自变量X1、X2、…、Xk可以是分类变量或连续变量等。
- 逻辑回归在流行病学中应用较多,常用于探索某种疾病的危险因素,根据危险因素预测某种疾病发生的概率。所以逻辑回归是以概率分析为基础的。
- 试述回归与分类的关系。
- 回归分析与分类方法不同的是,通常分类输出是离散类别值,而回归的输出是连续值。
- 试述回归分析与时序分析的关系。
- 时序分析和回归分析两者存在着内在的统一性。
- 事实上,正是用时间变量t代替了许许多多影响事物长期趋势的基本因素,可以把各种影响因素统一在一个回归模型中。
实践
- 一样全™实践…
10 聚类方法
思考题
- 什么是聚类。
- **聚类(clustering)**是将数据对象的集合分成相似的对象类的过程。使得同一个簇(或类,cluster)中的对象之间具有较高的相似性,而不同簇中的对象具有较高的相异性。
- 试述聚类过程。
- 数据准备:为聚类分析准备数据,包括数据的预处理;
- 属性选择:选择最有效的属性用于聚类分析;
- 属性提取:对所选属性进行转换形成更有代表性的属性;
- 聚类:采用某种聚类算法对数据进行聚类;
- 结果评估:对聚类生成的结果进行评价。
- 试述K-均值算法的过程、算法描述及其特点。
- 过程
首先输入k的值,即希望将数据集D={o1,o2,…,on}经过聚类得到k个分类或分组。
从数据集D中随机选择k个数据点作为簇质心,每个簇质心代表一个簇。这样得到的簇质心集合为Centroid={Cp1,Cp2,…,Cpk}。
对D中每一个数据点oi,计算oi与Cpj(j=1,2,…,k)的距离,得到一组距离值,从中找出最小距离值对应的簇质心Cps,则将数据点oi划分到以Cps为质心的簇中。
根据每个簇所包含的对象集合,重新计算得到一个新的簇质心。若|Cx|是第x个簇Cx中的对象个数,mx是这些对象的质心,即:
这里的簇质心mx是簇Cx的均值,这就是k-均值算法名称的由来。
- 如果这样划分后满足目标函数的要求,可以认为聚类已经达到期望的结果,算法终止。否则需要迭代③~⑤步骤。通常目标函数设定为所有簇中各个对象与均值间的误差平方和(Sum of the Squared Error,简称SSE)小于某个阈值ε
- 算法描述
- 输入:数据对象集合D,簇数目k,阈值ε
- 输出:k个簇的集合
- 方法:其过程描述如下:
从D中随机选取k个不同的数据对象作为k个簇C1、C2、…、Ck的中心m1、m2、…、mk; while (true) { for (D中每个数据对象o) { 求i,使得: 将o分配到簇Ci中; } for (每个簇Ci) 计算 //计算新的质心,|Ci|为簇Ci中的对象数目 计算误差平方和 if (SSE≤ε) break; //满足条件,退出循环 }
- 算法特点
- 优点:算法框架清晰、简单、容易理解。
- 算法确定的k个划分使误差平方和最小。当聚类是密集的,且类与类之间区别明显时,效果较好。
- 处理大数据集,这个算法是相对可伸缩的和高效的。复杂度为O(tkn),其中n 是对象的数目,k 是簇的数目,t 是迭代的次数。 通常k、t << n。
- 缺点
- 算法中k要事先给定,这个k值的选定是非常难以估计的。
- 算法对异常数据,如噪声和离群点很敏感。
- 算法首先需要一个初始划分,然后进行优化。这个初始聚类中心对结果有较大影响。
- 算法需要不断对样本进行分类调整,时间开销较大。
- 试述二分k-均值算法。
二分k-均值算法是基本k-均值算法的直接扩充,它基于一种简单的想法:为了得到k个簇,将所有点的集合分为两个簇,从这些簇中选取一个继续分裂,如此下去,直到产生k个簇。
二分k-均值算法如下:
输入:数据对象集合D,簇数目k,二分次数b
输出:k个簇的集合
方法:其过程描述如下:
将D的所有对象构成一个簇C1,将其加入到簇表S中,即S={C1}; do { 从簇表S中取出一个簇Ci; for (j=1 to b) 使用基本k-均值算法,二分簇Ci,得到一对子簇Ci1、Ci2; 从上述得到的b对子簇中选择具有最小SSE的一对子簇,将其加入S中; } until 簇表S中包含k个簇;
- 试述k-中心点算法的过程、算法描述,并与k-均值算法进行对比。
- 过程
- 任意选择k个对象作为k个中心点。
- 计算每个非中心点对象到每个中心点的距离。
- 把每个非中心点对象分配到距离它最近的中心点所代表的簇中。
- 随机选择一个非中心点对象oi,计算用oi代替某个簇Cx的中心点ox所能带来的好处(用△E表示代替后和代替前误差函数值之差,意思是使误差E增加多少)。
- 若△E<0,表示代替后误差会减少,则用oi代替ox,即将oi作为簇Cx的中心点;否则,不代替。
- 重复②~④,直到k个中心点不再发生改变。
- 描述
- 输入:数据对象集合D,簇数目k
- 输出:k个簇的集合
- 方法:其过程描述如下:
在D中随机选择k个对象作为初始簇中心点,建立仅含中心点的k个簇 C1、C2、…、Ck; do { 将D中剩余对象分派到距离最近的簇中; for(对每个未被选择的簇Cx ,其中心点为Ox以及D中每个未被选择的非中心点对象Oi) 计算用Oi代替Ox的总代价并记录在S中; if(S中的所有非中心点代替所有中心点后的计算出总代价小于0) { 找出S中的用非中心点替代中心点后代价最小的一个; 用该非中心点替代对应的中心点,形成一个新的k个中心点的集合; } } until(没有发生簇的重新分配,即所有的S都大于0);
- 相较于K-均值算法
- 消除了k-均值算法对于孤立点的敏感性
- 比k-均值算法的代价要高
- 算法必须指定个数k,k的取值对聚类质量有重大影响
- 对小的数据集非常有效,对大数据集效率不高,特别是n和k都很大的时候。
- 聚类与分类的区别?*
- 分类和聚类是两个容易混淆的概念,事实上它们具有显著区别。
- 在分类中,为了建立分类模型而分析的数据对象的类别是已知的,然而,在聚类时处理的所有数据对象的类别都是未知的。
- 因此,分类是有指导的(有监督学习),是通过例子(训练样本集)学习的过程,而聚类是无指导的(无监督学习),是通过观察学习的过程 。
改变。
- 描述
- 输入:数据对象集合D,簇数目k
- 输出:k个簇的集合
- 方法:其过程描述如下:
在D中随机选择k个对象作为初始簇中心点,建立仅含中心点的k个簇 C1、C2、…、Ck; do { 将D中剩余对象分派到距离最近的簇中; for(对每个未被选择的簇Cx ,其中心点为Ox以及D中每个未被选择的非中心点对象Oi) 计算用Oi代替Ox的总代价并记录在S中; if(S中的所有非中心点代替所有中心点后的计算出总代价小于0) { 找出S中的用非中心点替代中心点后代价最小的一个; 用该非中心点替代对应的中心点,形成一个新的k个中心点的集合; } } until(没有发生簇的重新分配,即所有的S都大于0);
- 相较于K-均值算法
- 消除了k-均值算法对于孤立点的敏感性
- 比k-均值算法的代价要高
- 算法必须指定个数k,k的取值对聚类质量有重大影响
- 对小的数据集非常有效,对大数据集效率不高,特别是n和k都很大的时候。
- 聚类与分类的区别?*
- 分类和聚类是两个容易混淆的概念,事实上它们具有显著区别。
- 在分类中,为了建立分类模型而分析的数据对象的类别是已知的,然而,在聚类时处理的所有数据对象的类别都是未知的。
- 因此,分类是有指导的(有监督学习),是通过例子(训练样本集)学习的过程,而聚类是无指导的(无监督学习),是通过观察学习的过程 。