您的位置:首页 > 其它

连续特征离散化方法介绍

2018-01-30 10:48 281 查看


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列连表:
类1

类2类c总和
总体1O11O12O1cn1

总体2O21O22O21n2
总体rOr1Or2Orcnr
总和C1C2CcN

假设:

记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。

例:
吸烟不吸烟总计
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是区间个数。

划分过程:

首先将属性的取值值域按照值得大小排序。 把每个值看作是可能的分割点,依次把区间分成两部分计算它们的熵值,取熵值最小的作为第一次划分点。

然后选取一个区间,通常选择熵值最大的区间重复此过程。

当区间个数达到用户指定的个数或某个用户指定的终止条件则停止继续分裂。


参考资料

《连续属性的离散化》

《数据挖掘导论》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: