1. 离散化技术分类

连续属性的离散化方法也可以被称为分箱法,即将一组连续的值根据一定的规则分别放到其术语的集合中。
离散化技术可以根据如何对数据进行离散化加以分类,可以根据是否使用类信息或根据进行方向(即自顶向下或自底向上)分类。
如果离散化过程使用类信息,则称它为监督离散化(superviseddiscretization);否则是非监督的(unsupervised)。
如果首先找出一点或几个点(称作分裂点或割点)来划分整个属性区间,然后在结果区间上递归地重复这一过程,则称它为自顶向下离散化或分裂。自底向上离散化或合并正好相反,首先将所有的连续值看作可能的分裂点,通过合并相邻域的值形成区间,然后递归地应用这一过程于结果区间。

2.无监督离散化与监督离散化

根据数据是否包含类别信息可以把它们分成有监督的数据和无监督的数据。有监督的离散化要考虑类别信息而无监督的离散化则不需要。

2.1 无监督离散化

假设属性的取值空间为
X={X1,X2,?,Xn}
,离散化之后的类标号是
Y={Y1,Y2,?,Ym}
,则无监督离散化的情况就是
X
已知而
Y
未知。以下介绍几种常用的无监督离散化方法:
(1) 等宽算法
根据用户指定的区间数目
K
,将属性的值域
[Xmin?Xmax]
划分成
K
个区间,并使每个区间的宽度相等,即都等于
Xmax?XminK
。缺点是容易受离群点的影响而使性能不佳。
(2) 等频算法
等频算法也是根据用户自定义的区间数目,将属性的值域划分成
K
个小区间。他要求落在每个区间的对象数目相等。譬如,属性的取值区间内共有
M
个点,则等频区间所划分的
K
个小区域内,每个区域含有
MK
个点。
(3) K-means聚类算法
首先由用户指定离散化产生的区间数目
K
,K-均值算法首先从数据集中随机找出
K
个数据作为
K
个初始区间的重心;然后,根据这些重心的欧式距离,对所有的对象聚类:如果数据
x
距重心
Gi
最近,则将
x
划归
Gi
所代表的那个区间;然后重新计算各区间的重心,并利用新的重心重新聚类所有样本。逐步循环,直到所有区间的重心不再随算法循环而改变为止。

2.2 监督离散化

监督离散化就是事先
X

Y
均为已知,然后找到某个函数,利用X值对Y值做预测。可以建立回归或者分类模型。
以下介绍的自下而上或者自上而下的分类方法都属于监督离散化方法。

3. 齐次性的卡方检验

在介绍两种基于卡方检验的离散化算法之前,先来介绍一下齐次性的卡方检验。
数据:有
r
个总体。
从每个总体中抽取一个随机变量,记第
i
个样本含有的观测数是
ni
,
1?i?r

每个样本的每个观测值可以归为
c
个不同类别中的一类。记
Oij
为样本
i
的观测值归入类
j
的个数,所以,

ni=Oi1+Oi2+?+Oic

对于所有的样本
i
,将数据排列成以下的
r?c
列连表:

假设:

pij
为随机取到第
i
个总体划分为第
j
类的概率,
i∈[1,r],j∈[i,c]


H0
:同一列中所有的概率相等(即对任意的j,
p1j=p2j=?=prj
)。

H1
:每列中至少存在两个概率不相等(即给定
j
,存在
i

k
,使得
pij≠pkj
)。
检验统计量
χ2
为:

χ2=∑i,j(Oij?tij)2tij
,其中,
tij=niCjN

或者:

χ2=N?(∑i,jO2ijniCj?1)

零分布:

χ2
的零分布是渐进自由度为
(r?1)(c?1)
的卡方分布。在近似水平
α
下的临界域对应于
χ2
值大于
X1?α
,
X1?α
是自由度为
(r?1)(c?1)
的卡方分布的
1?α
分位数,当
χ2
值大于
X1?α
时拒绝原假设
H0
,否则,接受
H0


p
值是自由度为
(r?1)(c?1)
的卡方分布随机变量大于
χ2
的概率,即:
p=PH0{χ2>t}
。当
p
值小于
α
,拒绝
H0
,否则接受
H0

例:

首先假设
H0
:性别和吸烟相关。
根据公式求得
χ2=8.33
,自由度为1,查表可得
p
值小于
0.005
,所以拒绝原假设。

4. 自上而下的卡方分裂算法

该分裂算法是把整个属性的取值区间当做一个离散的属性值,然后对该区间进行划分,一般是一分为二,即把一个区间分为两个相邻的区间,每个区间对应一个离散的属性值,该划分可以一直进行下去,直到满足某种停止条件,其关键是划分点的选取。
分裂步骤:
依次计算每个插入点的卡方值,当卡方值达到最大时,将该点作为分裂点,属性值域被分为两块。
然后再计算卡方值,找到最大值将属性值域分成三块。
停止准则:
当卡方检验显著,即
p


时,继续分裂区间;
当卡方检验不显著,即
p


时,停止分裂区间;

5. ChiMerge算法

ChiMerge算法是一种基于卡方值的自下而上的离散化方法。和上一种算法正好相反。
分裂步骤:
第一步:根据要离散的属性对实例进行排序:每个实例属于一个区间
第二步:合并区间,计算每一对相邻区间的卡方值
停止准则:
当卡方检验不显著,即
p


时,继续合并相邻区间;
当卡方检验显著,即
p


时,停止区间合并;

6. 基于熵的离散化方法

本方法也是一种自上而下的离散化方法。首先,定义一下熵的概念:

ei=?∑kj=1pijlog2pij

其中,
pij=mijmi
是第
i
个区间中类
j
的概率。该划分的总熵
e
是每个区间的熵的加权平均:

e=∑ni=1wiei

其中
wi=mim
是第
i
个区间的值的比例,
n
是区间个数。
划分过程:
首先将属性的取值值域按照值得大小排序。 把每个值看作是可能的分割点,依次把区间分成两部分计算它们的熵值,取熵值最小的作为第一次划分点。
然后选取一个区间,通常选择熵值最大的区间重复此过程。
当区间个数达到用户指定的个数或某个用户指定的终止条件则停止继续分裂。

参考资料

《连续属性的离散化》
《数据挖掘导论》


备份地址

dawei

【声明】:北京站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。