[关闭]
@K1999 2016-08-08T07:02:55.000000Z 字数 2783 阅读 3703

连续属性离散化

机器学习


1. 离散化技术分类

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

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

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

2.1 无监督离散化

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

2.2 监督离散化

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

3. 齐次性的卡方检验

在介绍两种基于卡方检验的离散化算法之前,先来介绍一下齐次性的卡方检验。
数据:有个总体。
从每个总体中抽取一个随机变量,记第个样本含有的观测数是,
每个样本的每个观测值可以归为个不同类别中的一类。记为样本的观测值归入类的个数,所以,

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

类1
类2 类c 总和
总体1
总体2
总体r
总和

假设:
为随机取到第个总体划分为第类的概率,
:同一列中所有的概率相等(即对任意的j,)。
:每列中至少存在两个概率不相等(即给定,存在,使得)。
检验统计量为:
,其中,
或者:

零分布:
的零分布是渐进自由度为的卡方分布。在近似水平下的临界域对应于值大于,是自由度为的卡方分布的分位数,当值大于时拒绝原假设,否则,接受
值是自由度为的卡方分布随机变量大于的概率,即:。当值小于,拒绝,否则接受
例:

吸烟 不吸烟 总计
20 5 25
10 15 25
总计 30 20 50

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

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

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

5. ChiMerge算法

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

6. 基于熵的离散化方法

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

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

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注