24Fall-NJUSE【数据仓库与知识发现】往年题整理
数据仓库与知识发现 往年题整理
【有道云笔记】数据仓库
https://note.youdao.com/s/M2K6cBHf
数据仓库考试相关的资料均已放入有道云文档中。
食用方式:
面向往年题复习(做一遍),考前打印对数表、简答题知识概览、书本节选和往年题。有条件的可以打印PPT,再买一本书带进去。
其他的复习参考链接:
时错佬的知乎,比较复杂:南京大学软件学院-2023-数据仓库(研究生)期末复习参考 - 知乎
熊佬的博客,比较简洁:数据仓库与知识发现-期末复习 | EagleBear2002 的博客
知识补充:数据仓库与知识发现概览 · WFUing’s Blog
- 考试题型
- 共五道大题,包括数据仓库一道题,数据挖掘四个方向各一道题。
- 考试注意事项
- 题目中的数据可能会有变化。
- 要严格按照题目要求使用指定算法答题,不能随意替换。
- 复习建议
- 推荐参考往年试卷进行复习。
- 若追求高分,建议结合教材和 PPT 深化知识理解。
一、 数据仓库及实现技术
2012 (25 分)
a. 作用和地位(a 部分):需简述数据仓库在知识发现过程中的作用与地位。
数据仓库在知识发现过程中的作用和地位可以从以下几个方面进行概述:
数据集成和存储: 数据仓库作为一个集中式的数据存储系统,能够整合来自不同数据源的数据,例如企业内部的事务处理系统、外部数据源、互联网数据等。这种集成确保了数据的一致性和完整性,为知识发现提供了一个可靠和全面的数据基础。
数据清洗和预处理: 在数据被存储到数据仓库之前,通常会经过清洗和预处理的步骤,以去除不一致性和错误,提升数据质量。高质量的数据是知识发现的关键,因为知识发现的结果很大程度上依赖于数据的准确性和完整性。
数据历史性和时序性: 数据仓库中存储的数据通常包括了时间维度,这使得用户能够进行历史数据分析和趋势预测。在知识发现过程中,时间维度的数据能够提供洞察历史趋势和模式的能力。
支持复杂的查询和分析: 数据仓库设计用来支持复杂的查询操作和分析工具,如数据挖掘和在线分析处理(OLAP)。这些工具使得从大量数据中提取有价值的信息变得可能。
决策支持: 数据仓库提供的历史、整合、质量高的数据,加上强大的查询和分析工具,为企业提供了有力的决策支持。通过分析这些数据,企业能够发现重要的业务趋势和模式,从而制定更有效的策略和决策。
综上所述,数据仓库在知识发现过程中扮演着至关重要的角色,它不仅是数据存储和管理的中心,也是支持数据分析和知识提取的关键基础设施。
b.索引技术(b 部分):要解释 B 树等数据库中广泛使用的索引技术不能直接引入数据仓库的原因。
** B树及其变体(如B+树)是数据库中广泛使用的索引技术,它们提供高效的数据检索和插入性能。然而,在数据仓库环境中,这些技术无法被直接引入,主要基于以下几个原因:**
- 查询模式的不同: 传统数据库系统(如在线事务处理系统,OLTP)和数据仓库在查询模式上有显著的不同。OLTP系统通常处理大量的短小事务,如插入、更新和删除,这些操作涉及到少量记录。B树等索引非常适合这种类型的快速查找和修改。然而,数据仓库主要用于在线分析处理(OLAP),其特点是少量的查询,但每次查询涉及大量数据,并且查询通常是复杂的,涉及到多表连接和聚合操作,这种情况下B树的效率并不高。
- 数据更新频率: 数据仓库中的数据通常是预处理和加载的,而不是实时更新的。这意味着数据仓库中的数据变化频率远低于OLTP系统。因此,数据仓库中不太需要针对频繁更新优化的索引结构。
- 大规模扫描的需要: 数据仓库的查询通常涉及对大量数据的扫描。在这种情况下,传统的B树索引可能不如其他针对批量读取优化的技术,如位图索引或列式存储。
- 存储空间的考量: B树索引占用相对较多的存储空间。在数据仓库中,由于数据量本身就很大,因此额外的索引可能会导致存储空间的显著增加。
- 列式存储的兴起: 数据仓库领域的一个重要趋势是列式存储的使用,这对于执行大规模分析查询更为有效。列式存储与B树这种基于行的索引方法在概念上有所不同,更适合数据仓库的使用场景。
综上所述,尽管B树等索引技术在传统数据库中非常有效,但由于数据仓库与传统数据库在数据处理和查询需求上有本质的区别,使得这些技术并不适合直接应用于数据仓库环境。相反,数据仓库倾向于使用其他类型的索引和存储结构,以满足其特定的性能和存储需求。
c. BITMAP 索引(c 部分):要求采用 BITMAP 索引方式对给出的产品维度表(包含 ID、SKU、TYPE、PRICE 等字段)进行索引操作。
- BITMAP 索引原理简介
- BITMAP 索引是一种特殊的索引技术,它主要适用于低基数(不同取值数量较少)的列。对于数据仓库中的维度表,很多列如产品类型(TYPE)、价格区间(PRICE 可转换为区间形式)等往往具有有限的取值范围,非常适合使用 BITMAP 索引。它通过使用位向量(bit vector)来表示数据的分布情况,能够快速地进行数据过滤和查询优化。
- 对产品维度表进行 BITMAP 索引操作步骤
- 分析字段取值情况
- 对于产品维度表中的 TYPE 字段,其取值有 “BOOK”“CD”“SOFTWARE” 三种,属于低基数列。
- 对于 PRICE 字段,若将其转换为区间形式,如 “Low” 表示价格较低区间,“Middle” 表示中间价格区间,“High” 表示高价格区间,“Free” 表示免费(可单独作为一个特殊区间),那么它也成为低基数列。
- 创建 BITMAP 索引
- 以 TYPE 字段为例,创建 BITMAP 索引时,会为每个取值创建一个位向量。假设数据仓库中有 10 条记录(与给定表中记录数相同),对于 “BOOK” 取值,若某条记录的 TYPE 为 “BOOK”,则在位向量中对应位置为 1,否则为 0。例如,ID 为 01、04、06、10 的记录 TYPE 为 “BOOK”,则其位向量可能为 [1,0,0,1,0,1,0,0,0,1](从左到右对应 ID 01 - 10)。同样地,对于 “CD” 和 “SOFTWARE” 取值也创建相应的位向量。
- 对于 PRICE 字段(以区间形式),如 “Low” 取值,若 ID 为 02、09 的记录 PRICE 为 “Low”,则其位向量可能为 [0,1,0,0,0,0,0,0,1,0]。以此类推,为 “Middle”“High”“Free” 等取值创建位向量。
- 分析字段取值情况
2015
a.BITMAP 索引操作(a 部分):要求采用 BITMAP 索引方式对给出的产品维度表进行索引。
b. Join Index 操作(b 部分):
需要采用 Join Index 对图中的事实表和维表进行索引。
考试时候要求画出连接索引怎么画?答案是连线
事实表就是你要关注的内容,比如各种销售数据,通常包含大量的行。
维表就是你观察该事物的角度,你从哪个角度去查看这个内容?比如对于销售数据,可以从某个地区的来看,地区就是维度。
书中例题:
题目中就是这样(这里举例仅仅是01一项,其他也要全部画出来)
连线:
写在卷子上:
2019
a. 数据立方体是什么?什么是数据立方体的多层和多维度?
答案:
(1)数据立方体(Data Cube)是一种用于表示和处理多维数据的数据结构。在数据库和数据仓库系统中,它是一个常用的概念,特别是在在线分析处理(OLAP)和多维数据分析中。数据立方体使得用户可以从多个维度(如时间、地区、产品类型等)分析数据,支持复杂的数据查询和汇总操作。
以下是数据立方体的几个关键特点:
- 多维视图:数据立方体提供多维的视图,使用户能够从不同的角度和维度分析数据。
- 聚合操作:它支持聚合操作,如求和、平均、最大值和最小值等,以便对数据进行汇总分析。
- 切片和切块操作:用户可以进行切片(Slice)和切块(Dice)操作,以便查看数据的特定部分。切片是指在某个维度上进行数据的筛选,而切块是指在多个维度上同时进行筛选。
- 数据钻取:数据立方体允许用户在不同层级上钻取数据,比如从年度数据钻取到季度或月度数据。
- 灵活性和可扩展性:数据立方体设计灵活,可以根据需要进行扩展,以包含更多维度或数据。
主要有星形模式、雪花模式和事实星座模式。
星形模式 它是最常见的模式,它包括一个大的中心表(事实表),包含了大批数据但是不冗余;一组小的附属表(维表),每维一个。
雪花模式它是星模式的变种,将其中某些表规范化,把数据进一步的分解到附加的表中,形状类似雪花。
事实星座: 允许多个事实表共享维表,可以看作是星形模式的汇集。如下所示,Sales和Shipping两个事实表共享了time、item、location三个维表。
在数据仓库中多用事实星座模式,因为它能对多个相关的主题建模;而在数据集市流行用星形或雪花模式
(2)
数据立方体的“多层”和“多维度”是两个关键的概念,它们在多维数据分析中起着重要的作用。让我们一一解释这两个概念:
多维度(Multidimensionality)
- 定义:在数据立方体中,多维度是指数据可以沿着多个不同的维度进行组织和分析。每个维度代表数据的一个特定方面或分类。
- 例子:常见的维度包括时间(例如年、月、日)、地理位置(如国家、城市)、产品类别等。例如,一个零售业务的数据立方体可能包含时间、产品类别和地区三个维度。
- 作用:多维度使得用户能够从不同角度查看和分析数据,以便更全面地理解业务情况和趋势。
多层(Multilevel)
- 定义:在数据立方体中,多层指的是每个维度内部的层次结构。一个维度可以被分解成不同的层次,每个层次提供不同粒度的数据视图。
- 例子:以时间维度为例,时间可以被分解为年、季、月、日等层次。用户可以选择查看年度总结数据,也可以深入到月度或日度数据进行更详细的分析。
- 作用:多层结构允许用户在不同的粒度级别上进行数据分析,从而进行更深入的数据挖掘和洞察。
b. 数据仓库存储设计中,表合并,表冗余,表分割这三个的原理
它们各自基于不同的原理,旨在优化数据存储、查询性能和数据整合。
表合并(Table Merging)
- 原理:表合并是将多个相关的表合并为一个更大的表的过程。这通常发生在维度表与事实表之间,或者是当多个维度表具有高度相关性时。例如,在一个销售数据仓库中,可以将产品信息、供应商信息和价格信息合并为一个大表。
- 目的:主要目的是为了简化查询,通过减少需要进行连接操作的表的数量来提高查询效率。这对于需要频繁访问多个表的数据分析尤为重要。
- 优点:减少了查询时的表连接操作,简化了查询逻辑,提高了查询效率。
- 缺点:可能导致数据冗余和存储空间的增加。
表冗余(Table Redundancy)
- 原理:表冗余是指在一个或多个表中故意存储重复数据的做法。在数据仓库中,这通常意味着某些数据在多个地方被复制和存储。
- 目的:主要是为了优化查询性能,尤其是在分布式系统中,通过本地化数据来减少查询时的网络延迟。
- 优点:提高了数据检索的速度,减少了复杂的表连接和数据聚合操作。
- 缺点:增加了存储需求,可能导致数据一致性维护的复杂性增加。
表分割(Table Partitioning)
- 原理:表分割是将一个大表分割成多个更小的、管理起来更容易的部分。这可以是水平分割(根据行),也可以是垂直分割(根据列)。
- 目的:旨在提高大数据集的管理效率和查询性能。分割后,查询可以仅针对相关的数据分区进行,而不是整个表。
- 优点:提高了大型表的管理效率,优化了查询性能,降低了维护成本。
- 缺点:如果分割策略设计不当,可能会导致数据分布不均匀,影响查询性能。
这三种策略在数据仓库设计中都扮演着重要角色。选择哪种策略取决于特定的数据特征、查询需求和系统架构。正确地应用这些策略可以显著提高数据仓库的性能和效率。
二、关联
1. Apriori算法
书上例题:
答案:
2. FP树
3. 关联
(例题看书本)
答案:
三、特征(信息增益)
要用速查表(I1,I2)
答案:
四、 数据预处理与分类(决策树,贝叶斯)
1. 等宽分桶、信息增益构造决策树、决策树应用
a.等宽分桶
等宽分桶、等深分桶和3-4-5原则分桶是数据处理中用于数据分桶(binning)的不同方法。这些方法通常用于将连续型数据转换为分类型数据,以便于分析和可视化。
- 等宽分桶(Equal-width binning):
在等宽分桶中,数据的范围被分割成宽度相等的区间。
每个区间的宽度由数据的最大值和最小值决定。
这种方法的优点是实现简单,但缺点是可能不会很好地处理数据中的异常值或非均匀分布。
假设我们有一组年龄数据:20,22,25,30,32,35,38,40,45,5020,22,25,30,32,35,38,40,45,50。
- 我们想要将这些数据分成4个等宽的区间。
- 数据的范围是20到50,因此每个区间的宽度为 (50−20)/4=7.5(50−20)/4=7.5。
- 因此,分桶后的区间为:20−27.520−27.5, 27.5−3527.5−35, 35−42.535−42.5, 42.5−5042.5−50。
- 等深分桶(Equal-frequency binning):
等深分桶将数据分割成包含大致相同数量数据点的区间。
这意味着每个桶的宽度可能会不同,但每个桶中的数据点数量相似。
这种方法对于处理有偏分布的数据较为有效,但可能会导致区间的界限不够明确。
使用同样的数据:20,22,25,30,32,35,38,40,45,5020,22,25,30,32,35,38,40,45,50。
假设我们想要分成3个包含大致相同数量的数据点的区间。
每个区间将包含大约3或4个数据点。
因此,分桶后的区间可能是:20,22,25,3020,22,25,30, 32,35,3832,35,38, 40,45,5040,45,50。
- 3-4-5原则分桶:
这是一种更加定性的分桶方法,通常用于商业和市场分析。
它基于这样一个观察:人类倾向于更好地记住和理解3到5个类别。
在应用这个原则时,数据被分割成3到5个区间,以使结果更容易被人理解和记忆。
这种方法更多地依赖于业务理解和目标,而不是严格的数学规则。
假设我们有一家公司的销售额数据,我们需要将这些数据分为容易理解的几个区间。
数据范围很广,从几千到几百万不等。
应用3-4-5原则,我们可能会选择分成4个区间:小型销售(数千至数万),中型销售(数万至十万),大型销售(十万至百万),超大型销售(超过百万)。
这种分桶方式易于理解和沟通,适用于商业展示和决策。
回到题目:
b. 信息增益构造决策树
决策树与信息增益基础概念
- 决策树:决策树是一种树形结构,用于分类和预测。它由节点和边组成,内部节点表示一个特征或属性上的测试,分支表示测试输出,叶节点表示类别或值。例如,在一个判断水果是苹果还是橙子的决策树中,内部节点可能是 “颜色”,如果颜色是红色,分支指向可能是苹果的节点;如果颜色是橙色,分支指向可能是橙子的节点。
- 信息增益:信息增益是用来衡量特征对分类结果的贡献程度的指标。信息增益是在划分数据集前后信息熵的差值,信息增益越大,说明使用该特征划分数据集后,不确定性减少得越多,该特征就越重要。
1)
2)
这里要用到第一问中 等宽分桶 对age和income分出的子集
用AGE划分子集:
用income划分子集:
可见信息增益最大的是income。作为根节点
3)
选择信息增益最大的特征作为根节点进行划分
- 比较所有特征的信息增益,选择信息增益最大的特征作为决策树的根节点。例如,在一个水果分类的例子中,如果 “颜色” 特征的信息增益最大,那么就将 “颜色” 作为根节点,根据颜色的不同取值(如红色、绿色、黄色等)划分出不同的分支。
4)
对每个划分后的子集递归地构建决策树
- 对于每个子集,重复上述计算信息熵、信息增益的步骤,选择信息增益最大的特征继续划分,直到满足停止条件。
第二层节点:比较age和student这两个特征值
可见age特征值比较大。作为第二层。
至此可得到三层决策树。
c. 决策树应用
根据b中的决策树,(24,75000,yes)分类到>2000
2. 朴素贝叶斯方法分类
a.同上一题
b. 朴素贝叶斯+拉普拉斯修正
朴素贝叶斯必须带上拉普拉斯修正
这里1/4没有拉普拉斯修正,修正后应该为2/7 下面也是。不过最终结果是对的。
记得要乘上最开始的权重
五、聚类
1. 曼哈顿距离 相异矩阵 k-平均点方法聚类(k-means)
曼哈顿距离 相异矩阵
(1)答案:
(2) k-means
答案:
2.凝聚式层次式方法聚类
a)
所以这个例子中是((((A,C),B)D,)E)
试卷题的答案:
3. 平均曼哈顿距离作聚类
b)例子:
本题答案:(和上一题结果一样)