数据挖掘之离散化和概念分层学习笔记
离散化和概念分层产生
通过将属性域划分为区间,离散化技术可以用来减少给定连续属性值的个数。区间的标号可以替代实际的数据值。如果使用基于判定树的分类挖掘方法,减少属性值的数量特别有好处。通常,这种方法是递归的,大量的时间花在每一步的数据排序上。因此,待排序的不同值越少,这种方法就应当越快。许多离散化技术都可以使用,以便提供属性值的分层或多维划分——概念分层
?
对于给定的数值属性,概念分层定义了该属性的一个离散化。通过收集并用较高层的概念(对
于年龄属性,如young, middle-age 和senior)替换较低层的概念(如,年龄的数值值),概念分层可以用来归约数据。通过这种泛化,尽管细节丢失了,但泛化后的数据更有意义、更容易解释,并且所需的空间比原数据少。在归约的数据上进行挖掘,与在大的、未泛化的数据上挖掘相比,所需的I/O 操作更少,并且更有效
?
对于用户或领域专家,人工地定义概念分层可能是一项令人乏味、耗时的任务。幸而,许多分层蕴涵在数据库模式中,并且可以在模式定义级定义。概念分层常常自动地产生,或根据数据分布的统计分析动态地加以提炼。
?
数值属性的概念分层可以根据数据分布分析自动地构造。五种数值概念分层产生方法:分
箱、直方图分析、聚类分析、基于熵的离散化和通过“自然划分”的数据分段。
?
分箱
分箱方法。这些方法也是离散化形式。例如,通过将数据分布到箱中,并用箱中的平均值或中值替换箱中的每个值,可以将属性值离散化。就象用箱的平均值或箱的中值平滑一样。这些技术可以递归地作用于结果划分,产生概念分层。
?
?
直方图分析
直方图分析算法递归地用于每一部分,自动地产生多级概念分层,直到到达一个预先设定的概念层数,过程终止。也可以对每一层使用最小区间长度来控制递归过程。最小区间长度设定每层每部分的最小宽度,或每层每部分中值的最少数目。
?
聚类分析
聚类算法可以用来将数据划分成聚类或群。每一个聚类形成概念分层的一个结点,而所有的结点在同一概念层。每一个聚类可以进一步分成若干子聚类,形成较低的概念层。聚类也可以聚集在一起,以形成分层结构中较高的概念层
?
基于熵的离散化
一种基于信息的度量称作熵,可以用来递归地划分数值属性A 的值,产生分层的离散化。这种离散化形成属性的数值概念分层。给定一个数据元组的集合S,基于熵对A 离散化的方法如下:
A 的每个值可以认为是一个潜在的区间边界或阈值T。例如,A 的值v 可以将样本S 划分成分别满足条件A < v 和A 3v 的两个子集,这样就创建了一个二元离散化。
给定S,所选择的阈值是这样的值,它使其后划分得到的信息增益最大。
其中,S1 和S2 分别对应于S 中满足条件A < T 和A 3T 的样本。对于给定的集合,它的熵函数根据集合中样本的类分布来计算
?
通过自然划分分段
3-4-5 规则可以用于将数值数据划分成相对一致、“自然的”区间。一般地,该规则根据最重要的数字上的值区域,递归地、逐层地将给定的数据区域划分为3、4 或5 个等长的区间。该规则如下:
如果一个区间在最重要的数字上包含3、6、7 或9 个不同的值,则将该区间划分成3 个区间(对于3、6 和9,划分成3 个等宽的区间;而对于7,按2-3-2 分组,划分成3 个区间);
如果它在最重要的数字上包含2、4 或8 个不同的值,则将区间划分成4 个等宽的区间;
如果它在最重要的数字上包含1、5 或10 个不同的值,则将区间划分成5 个等宽的区间。
该规则可以递归地用于每个区间,为给定的数值属性创建概念分层。由于在数据集中可能有特别大的正值和负值,最高层分段简单地按最小和最大值可能导致扭曲的结果。例如,在资产数据集中,少数人的资产可能比其他人高几个数量级。按照最高资产值分段可能导致高度倾斜的分层。这样,顶层分段可以根据代表给定数据大多数的数据区间(例如,第5 个百分位数到第95 个百分位数)进行。越出顶层分段的特别高和特别低的值将用类似的方法形成单独的区间。
?