数据仓库原理(一)

目录


一、多数据源问题

1、多数据源

数据仓库和数据挖掘的数据通常来自多种数据库或计算机应用系统或数据文件、web页面。

2、多数据源在集成的问题

(1)数据不一致:数据的不一致性主要指数据之间的矛盾性和不相容性。如职务升迁了,但工资数据却没有改变。

(2)属性差异:性别属性有的取 "男"/"女" ,长度为2;有的取 "1"/"0" ,长度为1。

(3)数据重复:数据源中存在两条或多条完全相同的记录,或者同一个数据冗余地存在于多个数据源中。比如,某人的身份信息同时存在于常住人口和暂住人口数据库中。

(4)数据不完整:某些属性的值可能是缺失的,甚至是错误的数据。用户在登记注册时通常输入昵称等作为姓名,其它数据干脆不填写,甚至随意输入出生日期等。

(5)噪声数据:噪声是指测量数据时遇到的随机或其它不确定性因素,它导致被测量的数据产生了偏差或错误,称这种含有偏差或错误的数据为噪声数据。

(6)高维数据:为较全面的描述实体,原始数据通常都使用了较多属性。比如,在常住人口数据库中,描述公民的基本信息就有128个属性。

(7)模式不统一:即将集成为单一数据集的多个数据源的模式不同。比如,"常住人口数据"和"暂住人口数据"两张表,前者有128个属性,后者也有98个属性。

(8)数据不平衡:即数据集中某一类样本的数量明显少于其它类型样本的数量。

二、数据预处理

1、数据预处理(data preprocessing)

在多数据源集成为统一数据集之前进行的数据清洗、数据变换、数据规约等数据处理过程。

2、预处理的目的

消除多数据源集成存在的问题,为数据仓库或数据挖掘提供一个完整、干净、准确、且有针对性的数据集合。

(一)数据清洗

数据清洗(Data cleaning):发现并纠正数据源,即原始数据中存在的问题或错误的过程,包括检查数据一致性,处理无效值、填补缺失值,以及过滤掉那些不符合要求的数据等。

1、属性的处理

对多数据源含义相同的属性进行重命名和统一类型长度,选择设置主键和派生属性等处理。

(1)重命名属性:对数据仓库或数据挖掘需要的属性重新赋给它们含义明确,便于理解记忆和使用的属性名称。

  • 数据源使用 "WHCD" 和 "CSRQ" 分别作为公民 "文化程度" 和 "出生日期" 的属性名。
  • 在数据仓库中我们选用 "Education" 和 "Birthday" 来代替,不仅含义明确,且可读性强,使用方便。

(2)统一属性:确保多个数据源中对同一实体特征的描述是统一的,包括属性的长度、类型,还有属性的值域。

  • 数据源常住人口的性别属性名为XB,类型为字符串,长度为2,取值 {"男","女"} ,暂住人口表属性名仍为XB,但长度为1的字符,取值 {"1","0"} 。
  • 在数据仓库中属性名统一为 Sex ,类型仍为字符,长度为1,其属性的值域为 {"1","0"} 。

(3)处理主键属性:为建立挖掘结果和原始数据之间的直接对应关系的话,需要保留主键属性。

  • 在数据仓库中通常还要引进一些代理关键字,即人工引入或派生出来的关键字。

(4)派生新属性 :由日期属性派生出年、季、月、周、日等多个时间层次的时间属性。

(5)选择相关属性:如果属性X的值可以由另外一个或多个属性值计算出来,称属性X和这些属性是相关的。

  • 在数据准备时只选择其中之一,或者选择属性X,或者选择它相关的属性。

2、空值的处理:对原始数据中没有登记或没有输入的属性值------空值,使用某种对其进行补充或删除等预处理。

(1)人工填补:优点是能够得到比较真实的数据,但通常人力耗费很大,而且速度较慢。

(2)忽略记录:即将有空值的记录删除。

(3)忽略属性:删除具有空值的列,即不将其作为数据仓库或数据挖掘对象集的属性。

(4)使用默认值:对离散空值用一个固定的常数 unknown 或者 * 来填补。

(5)使用平均值:对于连续属性空值用所有非空非空值的平均值来填补。

(6)使用预测值:用一定的预测方法,计算得到空值属性最有可能的取值。

3、数据噪声处理

数据噪声(Data Noise):一种难于解释的数据剧烈变动,它导致一组数据中某些数据与组内其它数据出现了极大的偏差。

(1)分箱(binning):把数据集中所有数据放入不同箱子(区间)的过程称为分箱。

  • 一个实数区间称为一个箱子(bin),它通常是连续型数据集中最小值和最大值所包含的子区间。
  • 如果一个实数属于某个子区间,就称把该实数放进了这个子区间所代表的 "箱子" 。
  • 分箱技术是一种简单而常用的数据预处理方法,也是一种连续型数值的离散化方法。

(2)分箱技术的步骤

  • ① 对数据集的数据进行排序;
  • ② 确定箱子个数k、选定数据分箱的方法并对数据集中数据进行分箱;
  • ③ 选定处理箱子数据的方法,并对其重新赋值。

(3)常用分箱方法

等深分箱、等宽分箱、自定义区间和最小熵分箱法。

(4)一般假设

箱子数为k,n(n≥k)个数据的数据集且按非减方式排序为 S={a~1~, a~2~,...,a~n~},即 a~i~∈[a~1~, a~n~] 。

① 等深分箱法:把数据集中的数据按照排列顺序分配到 k 个箱子中(k=1,2,...,k)。

  • 当k整除n时,令 p=n/k ,则每个箱子都有 p 个数据,即

    第1个箱子的数据为:a~1~,a~2~,...,a~p~;

    第2个箱子的数据为:a~p+1~,a~p+2~,...,a~2p~;

    ......

    第k个箱子的数据为:a~n-p+1~,a~n-p+2~,...,a~n~;

  • 当k不能整除n时,令 p= ⌊ n / k ⌋ \lfloor n/k \rfloor ⌊n/k⌋ ,q=n-k*r ,则可让前面 q 个箱子有 p+1 个数据,后面 k-q 个箱子有 p 个数据,即

    第1个箱子的数据为:a~1~,a~2~,...,a~p+1~;

    第2个箱子的数据为:a~p+2~,a~p+3~,...,a~2p+2~;

    ......

    第k个箱子的数据为:a~n-p+1~,a~n-p+2~,...,a~n~;

  • 也可让前面 k-q 个箱放 p 个数,后面 q 个箱放 p+1 个数据。

例2-1 :设 A={1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9,11} 共14个数据,请用等深分箱法将其分成k=4个箱子。
:因为k=4,n=14,所以 p= ⌊ n / k ⌋ \lfloor n/k \rfloor ⌊n/k⌋= ⌊ 14 / 4 ⌋ \lfloor 14/4 \rfloor ⌊14/4⌋=3,q=14-3*4=2。由于数据集A已排序,因此前2个箱放4个,后为2个箱放3个数据。

4个箱子的数据分别是 B1={1, 2, 3, 3},B2={ 4, 4, 5, 6,},B3={6, 7, 7},B4={8, 9, 11} 。

② 等宽分箱法:把数据集最小值和最大值形成的区间分为 k 个左闭右开的子区间(最后一个除外)I~1~,I~2~,...,I~k~。如果 a~i~∈I~j~ 就把数据 a~i~ 放入第 j 个箱子。

例2-2 :设 A={1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9,11} 共14个数据,请用等宽分箱法将其分成 k=4 个箱子。
:A的最小值和最大值区间为 [1, 11],k=4,子区间平均长度 (11-1)/4=2.5 ,即

I~1~=[1, 3.5),I~2~=[3.5, 6),I~3~=[6, 8.5),I~4~=[8.5, 11] 。

按照等宽分箱法有 B~1~={1, 2, 3, 3},B~2~={ 4, 4, 5},B~3~={6, 6, 7, 7, 8},B~4~={9, 11}。

③ 用户自定义区间:当用户明确希望观察某些区间范围内的数据分布时,可以根据实际需要自定义区间,方便地帮助用户达到预期目的。

数据平滑:对每个箱子中数据进行单独重新赋值。 *
三种常见方法:按平均值、按边界值和按中值平滑。

4、不平衡数据处理

(1)过抽样(oversampling)

  • 在样本集中通过增加少数类的样本来提高少数类样本的数量,最简单的办法是复制少数类样本。
  • 这种方法的缺点是引入了额外的训练数据,会延长构建分类器所需要的时间,没有给少数类增加任何新的信息,而且可能会导致过度拟合。

(2)欠抽样(undersampling)

  • 该方法通过减少多数类样本的数量来提高少数类样本在样本集中的比例。
  • 最简单的方法是通过随机方法,去掉一些多数类样本来减小多数类的规模。
  • 这种方法的缺点是会丢失多数类样本的一些重要信息,已有的信息利用得不够充分。

(二)数据变换

1、数据聚集

对数据按照管理或挖掘需要进行汇总。如果希望分析客户的经济背景情况对购买能力的影响,只需要关心客户消费的金额,而不需要了解客户购买了什么商品以及商品的数量、价格等信息。

2、数据概化

用较高层次的数据代替较低维度层次的数据称为数据的概化(data generalization),也翻译为数据概括。比如用 "时" 或 "日" 的数据来替换 "秒" 和 "分" 的数据。

3、数据规范化

将原始数据按照一定的比例缩放,使之落入一个特定的区间。

(1)最小-最大规范化

最小-最大规范化(MIN-MAX normalization)假设数据的取值区间为 [OldMin, OldMax],并把这个区间映射到新的取值区间 [NewMin, NewMax]。

这是一个线变换过程,变量被映射到新区间的值通过下面的公式计算得出。 ∀ \forall ∀x ∈ \in ∈[OldMin, OldMax], ∃ \exists ∃唯一x' ∈ \in ∈[NewMin, NewMax],其中

显然,如果令 NewMin=0, NewMax=1,则公式就是对原始数据的无量纲化处理。

(2)零-均值规范化

零-均值规范化(z-score normalization)是根据属性值的平均值和标准差进行规范化,即

x ′ = x − X ‾ σ X x'=\dfrac{x-\overline{X}}{σ_X} x′=σXx−X

其中, X ‾ \overline{X} X为所有样本属性值的平均值, σ X σ_X σX为样本标准差。

(3)小数定标规范化

小数定标规范化(decimal scaling normalization)通过移动属性值的小数点位置进行规范化。小数点移动的位数根据属性的最大绝对值确定。

对样本集中任一数据点 x x x,其小数定标规范化为

x ′ = x 1 0 α x'=\dfrac{x}{10^α} x′=10αx

其中, α α α 是使 M a x ( ∣ X ' ∣ ) < 1 Max(|X'|)<1 Max(∣X'∣)<1 的最小整数。

(三)数据归约

数据归约(data reduction)(也称为数据约简):用精简数据表示原始数据的方法,且归约后数据量通常比原始数据小很多,但具有接近甚至等价于原始数据表达的信息。

1、维归约(dimensionality reduction)

减少描述问题的随机变量个数或者数据集的属性个数,后者又称属性约简(attributes reduction)。

2、数量归约(numerosity reduction)

用较少的数据表示形式替换原始数据。

3、数据压缩(data compression)

使用变换方法得到原数据的归约或 "压缩" 表示,图像压缩技术就是一种典型的数据压缩方法。

三、E-R模型

1、E-R模型中的基本概念

(1)实体(Entity):客观存在并可相互区别的事物 。

(2)属性(Attribute):描述实体的每一个特征。姓名、性别

(3)关键字(Key):能唯一地标识实体集中每个实体的属性集合称为关键字或者码。。

(4)联系:实体之间的联系(Relation),有3种类型。

  • ① 一对一(1:1)
  • ② 一对多(1:n)
  • ③ 多对多(m:n)

2、E-R图的要素

(1)实体(集、型):用矩形表示,矩形框内写明实体名;

(2)属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关的实体连接起来,同时在无向边的旁边标上联系的类型。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

(4)联系的类型:(1:1),或(1:n),或(m:m)

:公民实体集与旅馆实体集及其联系的E-R图:

相关推荐
武子康7 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
JessieZeng aaa11 小时前
CSV文件数据导入hive
数据仓库·hive·hadoop
Yz987617 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
EDG Zmjjkk19 小时前
Hive 函数(实例操作版2)
数据仓库·hive·hadoop
B站计算机毕业设计超人19 小时前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法
Moshow郑锴19 小时前
数据库、数据仓库、数据湖、数据中台、湖仓一体的概念和区别
大数据·数据库·数据仓库·数据湖·湖仓一体
Yz98761 天前
Hive分桶超详细!!!
大数据·数据仓库·hive·hadoop·hdfs·数据库开发·big data
Francek Chen1 天前
【大数据技术基础 | 实验十一】Hive实验:新建Hive表
大数据·数据仓库·hive·hadoop·分布式
Dreams°1232 天前
【大数据测试ETL:从0-1实战详细教程】
大数据·数据仓库·python·单元测试·etl
liuweni2 天前
PuppyGraph:实时图查询引擎,无需ETL
数据仓库·etl