连续属性离散化

1. 离散化技术分类

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

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

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

2.1 无监督离散化

假设属性的取值空间为 X={X1,X2,,Xn} ,离散化之后的类标号是 Y={Y1,Y2,,Ym} ,则无监督离散化的情况就是 X 已知而Y未知。以下介绍几种常用的无监督离散化方法:
(1) 等宽算法
根据用户指定的区间数目 K ,将属性的值域[XminXmax]划分成 K 个区间,并使每个区间的宽度相等,即都等于XmaxXminK。缺点是容易受离群点的影响而使性能不佳。
(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 , 1ir
每个样本的每个观测值可以归为 c 个不同类别中的一类。记Oij为样本 i 的观测值归入类j的个数,所以,
ni=Oi1+Oi2++Oic
对于所有的样本 i ,将数据排列成以下的rc列连表:

类1
类2 类c总和
总体1 O11 O12 O1c n1
总体2 O21 O22 O21 n2
总体r Or1 Or2 Orc nr
总和 C1 C2 Cc N

假设:
pij为随机取到第 i 个总体划分为第j类的概率, i[1,r],j[i,c]
H0 :同一列中所有的概率相等(即对任意的j, p1j=p2j==prj )。
H1 :每列中至少存在两个概率不相等(即给定 j ,存在i k ,使得pijpkj)。
检验统计量 χ2 为:
χ2=i,j(Oijtij)2tij ,其中, tij=niCjN
或者:
χ2=N(i,jO2ijniCj1)
零分布:
χ2 的零分布是渐进自由度为 (r1)(c1) 的卡方分布。在近似水平 α 下的临界域对应于 χ2 值大于 X1α , X1α 是自由度为 (r1)(c1) 的卡方分布的 1α 分位数,当 χ2 值大于 X1α 时拒绝原假设 H0 ,否则,接受 H0
p 值是自由度为(r1)(c1)的卡方分布随机变量大于 χ2 的概率,即: p=PH0{χ2>t} 。当 p 值小于α,拒绝 H0 ,否则接受 H0
例:

吸烟不吸烟总计
20525
101525
总计302050

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

参考资料

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


备份地址

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值