基于最优互信息的特征选取
发布时间:2015-07-03 11:27
摘 要 本文提出一种新的多层神经 网络 的特征提取的 方法 。基于所提出的每个特征的评价函数值,此方法能够给出所有特征的排序。该方法在人造数据集和真实数据集上进行了实验。实验结果表明omi能够准确地高效地在各种数据集上鉴别出最优特征集。
关键词 特征选取;特征排序;神经网络;多层神经网络1 引言
随着信息 科学 技术的快速 发展 ,在 工业 界和学术界有着更复杂和更大的多变量建模 问题 。 研究 人员发现当不相关和冗余的特征向量剔除之后,模式识别技术的性能将显著的提高。由此,特征提取成为了数据预处理和数据挖掘技术的重要的步骤之一。具体来讲,特征提取有助于在线 计算 ,加强系统的可读性,以及提高系统的预测性能。 一般来讲,特征选择有两大步骤:计算评价函数值和特征子集搜寻[1]。评价函数要能反映出特征向量与数据类信息的匹配度信息,以及分类器性能变化的信息。而就特征子集搜寻来讲,为了避免繁冗的无遗漏搜寻,一些被大多数学者认可的搜寻方法被广泛采用,例如:前向选择,后向删除,双向搜寻等等[2]。与完全搜寻和随即搜寻相比,这三种顺序的搜寻方法都能简单而快速的执行。 在构造输入数据和输出数据的复杂映射方面,由于多层神经网络(mlp)的卓越性能,因而mlp被广泛的采用。本文采用mlp来作为分类器,来展示各种特征选取方法在各个数据集上的分类性能。2 最优互信息
根据shannon信息 理论 ,一个随机变量c的不确定性可以由熵h(c)来估计。对于两个随机变量x和c,条件熵可以估计当变量x已知时,变量c的不确定性。而互信息可以估计变量c和变量x的相互依赖性。从而,h(c) , 和 三者有如下的关系[3]: ,等价于 (1) 训练分类模型的目的是最小化已知训练数据与类属性数据的不确定性。若 比较大,则意味着训练数据集x所包含的信息能够有效地预测它们的类属性;相反地,若 比较小,则意味着训练数据集x所包含的信息不能够有效地预测它们的类属性。所以,训练分类器的过程应该找一组分类器参数θ,而尽可能增大互信息 。 而对于特征选取而言,其目的是从特征全集中选取一特征子集使得互信息尽可能的大以致于特征子集f能够有效地预测训练数据的类属性。也就是说,共有个f从而即可得到,我们可以选择最大的所对应的f来作为最优的特征集来代表特征全集x。 然而,以上的描述只是考虑到了特征子集f与类属性c有最大的相关性,f未必成为最优的特征集。例如若f中每个的特征与属性c有最大的相关性时,它们当中有可能含有极大线性或非线性相关的特征甚至重复的特征。所以我们应该剔除掉这些冗余的特征,使得处理后的f成为新的最优的特征集。 即最小化。 因此,最大相关性和最小冗余性应同时考虑在一起。我们定义一个算子θ 将d和s结合起来来最大化θ ,从而可以同时优化d和s: (2) 在实际中,我们可以采取前向递增的搜寻方法,并根据(2)来找到最优的特征向量集。假设我们已经有了(m-1)个特征集fm-1。现在的任务是要选取mth特征从。这一过程可以通过最大化θ()来实现。也即优化下式: (3) 其中, 。3 omi特征提取算法
通过以上 分析 ,我们将omi特征提取算法,表述为如下过程: 初始化:将f设为空集,x为包含所有特征的全集。 (1)计算与类属性的互信息:对每一个特征,计算 。 (2)选取第一个特征:选择特征f,对应最大的互信息值;并且设置。 (3)递归计算:选择特征f,对应最大的omi评价函数,即: (4)如果,回到第2步,否则f即为最终所有特征向量的排序。 需要指出的是,通过计算特征向量与类属性的互信息值,来导出每个特征向量相关性的排序,在理论上是可以证明的。另外,omi评价函数可以避免估算多变量的的密度函数来求互信息。例如:计算 和 ,意味着需要先计算和。而这两项在高维数据集的实例中,无法有效地准确地估计。而omi中,只需计算和,意味着只需先计算和即可。通常这两项可以用parzen window,histogram等常用的低维密度函数估计的方法来估计。4 其它特征提取算法
当今,特征提取的方法可以总体分为两大类:过滤式和嵌入式。过滤式是指特征提取的算法与分类器的训练算法无关;而嵌入式是指特征提取的算法与分类器的训练算法直接相关。一般而言,过滤式的方法容易执行而且运行效率高,然而嵌入式的方法选出的特征向量更可靠但是计算量非常大。本文提出的omi方法,在特征向量选取和排序时并未用到任何分类器的训练算法,所以omi属于过滤式的特征选取方法。但是在后文的实验部分可以看到omi选取的特征向量比有代表性的嵌入式特征选取方法还要好。当今有代表性的过滤式方法为fisher score[4]。fisher score方法通过式(4)来估计每个特征向量对不同类属性的区分能力,从而得出所有特征的排序。 (4) 其中和分别是特征向量在第一类的均值和方差,而和分别是特征向量在第二类的均值和方差。从式(4) 可以看到每个特征向量的重要性只是由均值和方差的比值来衡量。所以在高维的数据集中,其特征选取的效果并不可靠。 而有代表性的嵌入式方法有:leave-one-out[5],maximum output information[6]。leave-one-out是在每删除一个特征向量时,计算一次validation数据集上的分类器错误率变化。若其错误率变化相对较大,这可推断此特征向量相对重要;反之相对不重要。由此,也可得出所有特征向量的排序。而最近新提出的maximum output information方法与mlp神经网络分类器相结合,通过计算输出信息在神经网络输入层各个节点的权值的大小来选出一个最不重要的特征向量。将其剔除后再依次重复以上过程剔除每一个特征向量。最先剔除的为最不重要的特征向量,最后剔除的为最重要的特征向量。从而也可得出所有特征向量的排序。值得注意的是,这两种嵌入式的特征选取的方法在递归计算各个特征向量的重要程度是都必须重新训练分类器,所以嵌入式的特征选取方法计算效率普遍很低。
5 实验结果
5.1 人造数据集
本文选取两个被广泛采用的人造数据集monk和weston数据集来展现omi特征提取算法能够有效地可靠地对所有特征向量进行排序。关于两个数据集的介绍见表1。本文所有数据集的分类器采用3层mlp神经网络。其内部节点的数目由5-fold crossvalidation的方法来确定。 表1 数据集介绍 数据集名称 monk weston 训练集样本个数 432 200 测试集样本个数 124 9800 特征向量个数 6 10 mlp二层节点个数 5 6 monk1数据集可以从uci网站公共数据库下载得到( http://ml/ )。已知6个特征向量与类属性的关系:当(f1=f2)或者(f5=1) 时,样本属于第一类,反之属于第二类。由此可见这
2 1 5 3 4 6
图1 monk测试集错误率 我们按照weston[5]的 方法 生成了weston数据集。此数据集共有10,000个样本,每个样本包含10个特征向量。其中只有f1,f2是与类属性相关的,其它的特征向量全部都是服从n(0,20)的随机噪声。而f1,f2分别服从和分布。在第一类中,,。而在第二类中,,。两类中的。因而这个数据集只需选择特征向量1,2即可。为了避免神经 网络 初始值等不确定因素的 影响 ,此实验共运行30次。图2中给出了top1-top10特征向量作为输入,其30次平均的测试集分类错误率。表3列出了所有特征向量的重要程度最终的降序的排序。 表3 weston数据集特征向量排序 1 2 10 7 8 4 5 3 9 6 图2 weston平均测试集错误率 由此可见,omi能有效地可靠地并准确地对所有特征向量进行排序。