本发明涉及数据挖掘技术领域,具体为一种基于realiff的特征选择方法。
背景技术:
relief为一系列算法,最早由kira提出,后来扩展出relieff和rrelieff。最初的relief运行效率比较高,效果也让人满意,所以得到了广泛的应用,但是缺点在于只能解决两类数据的分类问题,而relieff扩展成为可以处理多类问题,是被研究人员所公认的比较好的一种过滤式特征选择方法。relieff的大致思路就是从训练集l中随机选择一个样本d,然后从和d同类的样本中寻找m最近邻样本u,从其余各类的样本中寻找m最近邻样本w,最后按照公式更新特征权重,根据权重降序排列,取前t个特征构成特征子集。权重会根据样本对其同类和不同类特征的区分程度来确定,如果样本d可以很好的区分不同类的特征,并且对于同类的特征可以得到相同的结果,那么就会被赋予一个高权重。但是relieff同样存在问题,那就是没有办法解决存在冗余的特征的特征集。现在假设原始特征集l={b1,b2,b3...,bn},特征子集中包含的特征数t=6,根据relieff算法得出的权重降序排列前6位是b2,b3,b9,b4,b8,b1,按照算法,这些特征将构成最后的特征子集。但是根据relieff算法,冗余度很高的几个特征就会得到相似的权重,如果这些冗余度很高的特征在我们的特征子集中就会很大的影响子集对原始特征集的代表性,也会直接的影响到最后的分类结果。也就是说,如果在选取特征的时候可以忽略那些冗余度高的特征,继而顺延去选取权重降序排列中的下一特征,会使得结果子集的质量有很大的提升。比如特征b2,b3,b9冗余度很高的话,那这三个特征将起不到原本权值前三的特征应该起到的作用。
技术实现要素:
本发明的目的是:针对传统的去冗余方法是将一组冗余特征保留一个,这样会造成损失信息的问题,提出一种基于realiff的特征选择方法。
本发明为了解决上述技术问题采取的技术方案是:
基于realiff的特征选择方法,包括以下步骤:
步骤一:获取原始特征集;
步骤二:将原始特征集中方差小于方差阈值的特征删除,得到特征集m;
步骤三:根据特征集m构建距离相关性矩阵;
步骤四:将距离相关性矩阵中小于距离相关性矩阵阈值的特征进行融合,并将融合后的特征与距离相关性矩阵中不小于距离相关性矩阵阈值的特征组成特征集n;
步骤五:将特征集n中每个特征所对应的权重重置为0,即w(i)=0,i=0,1,2,...n;
步骤六:在特征集n中随机选择一个样本o,然后找出与样本o同类的k个近邻qj,j=1,2,...,k,再找出与样本o不同类的k个近邻vj(c),c=1,2,...c,j=1,2,...k,其中c为类别数;
步骤七:利用qj和vj(c)对特征重置后的特征集n中特征的权重进行迭代更新,得到更新后的特征权重w(i),更新公式为:
其中,d(i,o,qj)代表o和qj关于特征i的距离,p(c)表示第c类目标的概率,l为迭代次数,5<l<10;
步骤八:当特征重置后的特征集n中特征的权重全部更新后,将更新后的权重按降序排列;
步骤九:选取排列前70%的权重所对应的特征构成特征子集。
进一步的,所述方差表示为:
其中,hlnlm是lm样本第ln个特征值,并且lm=1,2,3...lm,ln表示特征集的样本数,lm表示一个样本中的特征数。
进一步的,所述步骤四中将距离相关性矩阵中小于阈值的特征进行融合通过欠完备自编码器完成。
进一步的,所述步骤四中将距离相关性矩阵中小于阈值的特征进行融合通过基于多任务的自编码器完成,所述基于多任务的自编码器包括主任务及辅助任务,
所述主任务对距离相关性矩阵中小于阈值的特征进行编码,得到隐层特征,然后对隐层特征进行解码后输出,得到主任务损失,
所述辅助任务对隐层特征进行分类,然后将分类结果输出,得到辅助任务损失,
然后将主任务损失和辅助任务损失相加后并结合反向传播算法对基于多任务的自编码器进行调整得到最优自编码器,最后将距离相关性矩阵中小于阈值的特征输入最优自编码器得到融合特征。
进一步的,所述主任务通过稀疏自编码器完成。
进一步的,所述稀疏自编码器中kl散度的惩罚项表示为:
其中,ρ表示期望的平均激活值,
进一步的,所述距离相关性矩阵表示为:
进一步的,所述辅助任务利用残差网络完成。
进一步的,所述主任务损失和辅助任务损失相加表示为:
loss=loss1 loss2。
本发明的有益效果是:
本申请通过距离相关性系数找出冗余特征,解决冗余问题。
传统的简单去冗余方法是将一组冗余特征保留一个,本申请通过自编码器融合这些冗余特征而不是直接丢掉,解决了损失信息的问题。
自编码器是一种黑盒的结构,无法保证最后可以得到想要的特征,本申请通过多任务的方式,加上一路分类的任务,可以迫使自编码器学到这一组冗余信息中更利于分类的特征,提升自编码器学习到特征的质量(这里的高质量的特征指的也就是更利于分类的特征)。
附图说明
图1为本申请的流程图;
图2为本申请的基于多任务的自编码器结构图;
图3为欠完备自编码器结构图;
图4为残差网络结构图。
具体实施方式
需要特别说明的是,在不冲突的情况下,本申请公开的各个实施方式之间可以相互组合。
具体实施方式一:参照图1具体说明本实施方式,本实施方式所述的基于realiff的特征选择方法,包括以下步骤:
步骤一:获取原始特征集;
步骤二:将原始特征集中方差小于阈值的特征删除,得到特征集m;
步骤三:根据特征集m构建距离相关性矩阵;
步骤四:将距离相关性矩阵中小于阈值的特征进行融合,并将融合后的特征与距离相关性矩阵中不小于阈值的特征组成特征集n;
步骤五:将特征集n中每个特征所对应的权重重置为0,即w(i)=0,i=0,1,2,...n;
步骤六:在特征集n中随机选择一个样本o,找出与样本o同类的k个近邻qj,j=1,2,...,k,再找出与样本o不同类的k个近邻vj(c),c=1,2,...c,j=1,2,...k,其中c为类别数;
步骤七:利用qj和vj(c)对特征重置后的特征集n中的特征权重进行迭代更新,得到更新后的特征权重w(i),更新公式为:
其中,d(i,o,qj)代表o和qj关于特征i的距离;p(c)表示第c类目标的概率,l为迭代次数,5<l<10,一般选取10次为最佳;
步骤八:当特征重置后的特征集n中的特征权重全部更新后,将更新后的权重按降序排列;
步骤九:选取排序前50%至90%的权重所对应的特征构成特征子集,一般选取排列前70%的权重所对应的特征构成特征子集。。
基于方差的特征预选
由于relieff算法是以特征与特征间的关系作为依据来进行特征筛选的,所以忽视了特征内部的一些性质。所以这里采用基于方差的特征预选对relieff算法进行第一步基于预筛选的改进。使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征,将方差小于阈值的特征删除,完成特征预选。假设原始特征集是一个ln行lm列的矩阵,其中ln为特征集的样本数,lm为一个样本中的特征数,则第lm项特征的方差б2lm的计算公式如式所示
其中,hlnlm是lm样本第ln个特征值,并且lm=1,2,3...lm,ln表示特征集的样本数,lm表示一个样本中的特征数。
构建距离相关性矩阵
皮尔逊相关系数也叫积差相关系数,是英国统计学家皮尔逊于20世纪提出的一种计算变量间相关性的方法。pearson相关系数是用协方差除以两个变量的标准差得到的,而协方差是一个反映两个随机变量相关程度的指标。两个变量也就是本节中的两个特征,如果他们的协方差大于零,那么称这两个特征正相关;相反,就称他们负相关。皮尔逊相关系数最后的结果将会是[-1,1],其意义也就是结果的相关系数越靠近1代表相关性越大,越接近0代表相关性越低。但是皮尔逊相关系数存在问题,只能判断是否是线性相关性。这里就引出了距离相关系数(distancecorrelation),为了解决皮尔逊相关系数的问题而存在的。也就是说当两个特征的皮尔逊系数是0的时候,有可能是非线性相关,但是距离系数为0的时候就一定是独立的。而距离相关系数的缺点是无法判断两个特征向量是正相关还是负相关,皮尔逊相关系数就可以做到,小于0就代表负相关,大于0就代表正相关,但是这并不是本节研究的重点,本节的目的仅仅是计算相关性大小,也就是绝对值,所以距离相关系数十分适合在本节中使用。距离相关系数的计算如式所示。
其中
单传感器冗余特征融合
在传统的特征选择过程中,对于冗余的特征更多的操作是将一组相关性大于阈值的特征中留下一个,舍弃剩下的,这样既会节省大量的时间,将模型结构变得更简单,对于我们的relieff算法来说也会防止给冗余度很高的几个特征同时打了很高的分数。但是这种舍弃虽然舍弃的冗余的特征,但是也一定会造成数据信息的损失。如何能在去掉冗余信息的同时尽可能的保留有效信息,这与我们信息融合的想法不谋而合。传统的对于特征选择的方法基本都是基于原来的原始特征集,判断原始特征孰优孰劣,但是换一种思路是不是可以通过创造新的特征加入到特征子集中来代替原始特征集中的特征。自编码器就是一种可以学习到输入数据的高效表示的模型。其中欠完备自编码器是一种中间隐层的维数小于输入输出层的结构,可以很好的完成这个任务,学习到更能代表输入特征并且更低维的特征,而且不同于pca,是一种非线性的降维,结构如图3所示。
基于多任务学习改进的欠完备自编码器
本节要解决的是核心问题即处理冗余特征。首先根据距离相关系数构建经过特征预选后的特征间距离相关系数矩阵,判断出冗余特征。在传统的特征选择过程中,对于冗余的特征更多的操作是将一组相关性大于阈值的特征中留下一个,舍弃剩下的,这样既会节省大量的时间,将模型结构变得更简单,对于我们的relieff算法来说也会防止给冗余度很高的几个特征同时打了很高的分数。但是这种舍弃虽然舍弃的冗余的特征,但是也一定会造成数据信息的损失。如何能在去掉冗余信息的同时尽可能的保留有效信息,这与我们信息融合的想法不谋而合。传统的对于特征选择的方法基本都是基于原来的原始特征集,判断原始特征孰优孰劣,但是换一种思路是不是可以通过创造新的特征加入到特征子集中来代替原始特征集中的特征。自编码器就是一种可以学习到输入数据的高效表示的模型。本节拟采用欠完备自编码器对单传感器冗余特征进行融合,要改进的就是传统对于冗余特征的特征选择方法会出现信息损失的问题。希望通过自编码器这种深度学习的结构来保留信息减少数据损失。但是深度学习模型是一种黑盒的结构,如果自编码器只学到了输入特征中冗余的部分,那么和传统方法的直接舍弃效果相同,使用自编码器改进将毫无意义。所以如何能保证自编码器学习到的特征是理想的,也就是尽可能的学习到冗余度比较高的输入特征间不一样的部分,也是本节需要解决的问题。举例特征a和特征b是一对高度冗余的特征,那么在已有特征a时,加入特征b所产生的信息增益就是我们所期望学习到的。根据此思想提出基于多任务学习改进的欠完备自编码器,如图2所示。
基于深度残差网络的分类辅助任务
本节拟使用深度残差网络执行分类任务,作为多任务模型中的辅助任务。深度残差网络是把一串的训练分成了一个个的残差块,让每一个残差块的误差最小来达到整体误差最小的目的,所以就不会出现梯度弥散现象了。传统的卷积网络或者全连接网络在信息传递的时候或多或少会存在信息丢失,损耗等问题,同时还有导致梯度消失或者梯度爆炸,导致很深的网络无法训练。resnet在一定程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络只需要学习输入、输出差别的那一部分,简化学习目标和难度。残差单元可以以跳层连接的形式实现,即将单元的输入直接与单元输出加在一起,然后再激活,如图4所示。因此残差网络可以轻松地用主流的自动微分深度学习框架实现。
本模型包含两个任务,基于自编码器的特征融合主任务和基于残差网络的目标分类辅助任务。
主任务首先判断出冗余特征,将冗余特征输入到模型中通过自编码器学习到隐层的低维特征。主任务的输出是自编码器和其输入基本相同的特征,隐层更低维的特征是所需要的。这里使用稀疏自编码器来完成任务。一般而言,认为稀疏的表达是好的,在稀疏自编码器中不会指定哪些隐层结点是被抑制的,而是指定一个稀疏性的参数,来代表隐层的神经元平均的活跃性。稀疏自编码器通过引入kl散度来完成这个任务,引入了惩罚项如下
同时,为了更好的学习特征,将多个稀疏自编码叠加成一个自编码器,其中每一封的输出作为后续层的输入,本任务中,会将一组确定的冗余特征输入到多层稀疏自编码器中进行特征融合,并且在无监督的情况下对堆叠稀疏自编码器进行逐层训练,得到新的特征向量构建去冗余的特征集。
辅助任务的输入就是自编码器的隐层特征,输出分类结果,但是结果并不是最重要的。重要的是通过分类迫使自编码器可以学到一些有助于分类的特征,也就是尽可能的把一组冗余特征中不冗余的部分学习到表示出来。
假设主任务的损失loss1,辅助任务的损失loss2,需要把两个任务的loss相加,通过反向传播更新梯度参数,不断迭代训练直至神经网络收敛。计算公式如下
loss=loss1 loss2
多任务模型里对于loss的处理可以直接相加,但是这样没法体现任务的重要性,所以通过给子任务赋予相应的权值相加得到最后的loss会有更好的效果。对本模型来说,主任务特征融合需要赋一个稍高的权重,而辅助任务就相应的需要一个稍低的权重,具体的权重会通过实验来确定一个效果比较好的值。
realiff特征选择方法的问题是在处理含有冗余特征的特征集时效果不好。realiff特征选择方法大致思路是给特征打分,但如果原始特征集中存在一组冗余特征,并且分数很高,呗选进最后的结果特征集中,但是由于是一组冗余特征,无法发挥原本这一组得分高的特征应该发挥的识别作用。
本申请在语音信号特征选择中最为适用。
需要注意的是,具体实施方式仅仅是对本发明技术方案的解释和说明,不能以此限定权利保护范围。凡根据本发明权利要求书和说明书所做的仅仅是局部改变的,仍应落入本发明的保护范围内。
1.基于realiff的特征选择方法,其特征在于包括以下步骤:
步骤一:获取原始特征集;
步骤二:将原始特征集中方差小于方差阈值的特征删除,得到特征集m;
步骤三:根据特征集m构建距离相关性矩阵;
步骤四:将距离相关性矩阵中小于距离相关性矩阵阈值的特征进行融合,并将融合后的特征与距离相关性矩阵中不小于距离相关性矩阵阈值的特征组成特征集n;
步骤五:将特征集n中每个特征所对应的权重重置为0,即w(i)=0,i=0,1,2,...n;
步骤六:在特征集n中随机选择一个样本o,然后找出与样本o同类的k个近邻qj,j=1,2,...,k,再找出与样本o不同类的k个近邻vj(c),c=1,2,...c,j=1,2,...k,其中c为类别数;
步骤七:利用qj和vj(c)对特征重置后的特征集n中特征的权重进行迭代更新,得到更新后的特征权重w(i),更新公式为:
其中,d(i,o,qj)代表o和qj关于特征i的距离,p(c)表示第c类目标的概率,l为迭代次数,5<l<10;
步骤八:当特征重置后的特征集n中特征的权重全部更新后,将更新后的权重按降序排列;
步骤九:选取排列前70%的权重所对应的特征构成特征子集。
2.根据权利要求1所述的基于realiff的特征选择方法,其特征在于所述方差表示为:
其中,hlnlm是lm样本第ln个特征值,并且lm=1,2,3...lm,ln表示特征集的样本数,lm表示一个样本中的特征数。
3.根据权利要求1所述的基于realiff的特征选择方法,其特征在于所述步骤四中将距离相关性矩阵中小于阈值的特征进行融合通过欠完备自编码器完成。
4.根据权利要求1所述的基于realiff的特征选择方法,其特征在于所述步骤四中将距离相关性矩阵中小于阈值的特征进行融合通过基于多任务的自编码器完成,所述基于多任务的自编码器包括主任务及辅助任务,
所述主任务对距离相关性矩阵中小于阈值的特征进行编码,得到隐层特征,然后对隐层特征进行解码后输出,得到主任务损失,
所述辅助任务对隐层特征进行分类,然后将分类结果输出,得到辅助任务损失,
然后将主任务损失和辅助任务损失相加后并结合反向传播算法对基于多任务的自编码器进行调整得到最优自编码器,最后将距离相关性矩阵中小于阈值的特征输入最优自编码器得到融合特征。
5.根据权利要求4所述的基于realiff的特征选择方法,其特征在于所述主任务通过稀疏自编码器完成。
6.根据权利要求5所述的基于realiff的特征选择方法,其特征在于所述稀疏自编码器中kl散度的惩罚项表示为:
其中,ρ表示期望的平均激活值,
7.根据权利要求1所述的基于realiff的特征选择方法,其特征在于所述距离相关性矩阵表示为:
8.根据权利要求4所述的基于realiff的特征选择方法,其特征在于所述辅助任务利用残差网络完成。
9.根据权利要求4所述的基于realiff的特征选择方法,其特征在于所述主任务损失和辅助任务损失相加表示为:
loss=loss1 loss2。
技术总结