本发明涉及特征选择领域,特别是涉及一种基于深度强化学习的特征选择方法。
背景技术:
:近年来,随着数据网络技术的蓬勃发展以及智能终端的普及,电子商务、社交网络、金融等诸多领域均需要存储应用大量的数据信息。这些海量数据的背后蕴含着丰富的知识,因此从复杂的大规模数据中提取出有意义的、有价值的信息变得尤为重要。作为一门多领域交叉学科,机器学习主要利用概率论、统计学、逼近论等领域的思想,通过设计一些算法从数据中自动分析获取规律,并根据规律对未知数据进行预测。典型的监督型机器学习任务是通过数据集中的特征来预测样本所对应的目标值。针对实际样本中常包含大量冗余特征的现象,特征选择通过给定评价函数选取与当前工作有关的特征,剔除无关数据。该方法能够在一定程度上解决维度灾难,提升机器学习任务中模型的学习性能。作为一种重要的数据预处理技术,特征选择方法主要分为三种:过滤式(filter)、包装式(wrapper)、嵌入式(embedded)。filter方法独立于分类器,将数据内部性质作为评价特征的标准,算法实现简单,但所选特征子集并非最适合每个分类器。wrapper方法以分类器的准确率为评估标准,所选特征子集分类准确率高,但计算成本大易出现过拟合。embedded方法将特征选择嵌入到训练过程中,可以减少模型的计算成本,但构建优化函数较困难。由此可见,传统的特征选择算法仍存在一定的改进空间,而具有决策和自主学习能力的强化学习为特征选择的实现提供了一种新的思路。因此,需要一种结合强化学习的特征选择方法实现最优特征子集的选择。技术实现要素:本发明要解决的技术问题在于针对现有技术的缺陷,提供一种基于深度强化学习的特征选择方法,实现在海量的大数据中提取符合需要且有价值的信息。本发明从优化搜索动作策略的角度出发,利用深度q学习算法(deepq-network,dqn)求解特征选择问题,确定最优特征子集的动作策略,实现最优特征子集的选择。为了解决上述技术问题,本发明提供一种基于深度强化学习的特征选择方法,包括如下步骤:步骤1、获取数据集,得到初始特征空间;步骤2、根据ε-greedy策略对初始特征空间中的特征进行动作选择,得到当前特征子集;步骤3、将当前特征子集送入分类器进行评估,进入下一特征的选择;步骤4、运用深度强化学习方法优化动作选择策略;步骤5、重复执行步骤2---步骤4,输出最优特征子集sbest以及该特征子集的分类准确率。作为本发明一种基于深度强化学习的特征选择方法的改进,所述步骤1包括以下过程:步骤1.1、首先,从上位机中收集数据样本,整理每个数据样本的特征信息,并给每个样本标记分类标签,然后将特征信息和分类标签设置为数据集,进行预处理,去除每个样本的序号、删除数据集中包含缺失值的样本,获得预处理后的数据集;步骤1.2、预处理后的数据集包括:初始特征空间和分类标签,表示如下:dataset={s,c},其中,dataset为给定数据集中特征空间和分类标签的集合,s表示初始特征空间,c表示数据集对应的分类标签;对s中的所有特征编号,s={s1,s2,...,st,...,sn},st为初始特征空间中的第t个特征(t=1,2,...,n),n为初始特征空间中所含特征总数。作为本发明一种基于深度强化学习的特征选择方法的进一步改进,所述步骤2包括以下过程:步骤2.1、从初始特征空间s中取出特征st,根据ε-greedy策略以ε∈{0.1,1}的概率随机选择或以1-ε的概率根据评估网络输出的动作值函数对特征st进行动作at;ε初始设置为1,每轮特征选择结束后,以ε=0.97ε的速度进行衰减,ε=0.1时,停止衰减;动作空间表示为:a={a1,a2,...,at,...,an}其中,a为对所有特征进行选择的动作集合,n为动作的数量,at=1表示保留特征st,at=0表示删除特征st;步骤2.2、更新初始特征空间s中的特征st的状态,得到当前特征子集,特征st被删除时,表示为st=0,保留时为st=1。作为本发明一种基于深度强化学习的特征选择方法的进一步改进,所述步骤3包括:将当前特征子集送入k近邻分类器中,根据预测的分类标签与数据集实际分类标签c的对比结果得到分类准确率,计算奖励rt,再对下一特征st 1进行选择动作,奖励的具体设置如下:r={r1,r2,...,rt,...,rn}r表示一轮特征选择结束时所得到的奖励集合,n为奖励的数量,rt为特征st经过动作at后得到的评估奖励:其中,acc(st)是选择t次后特征子集的准确率,maxacc(st-1)表示在t-1次特征选择过程中的历史最高准确率,ra=0.5,rb=-0.1,rc=-5为对应情况下的奖励值,fitness(st)表示为:α是与分类性能相关的参数,α=0.99,γr(d)表示分类器的分类误差,c,r分别表示数据集的初始特征数与所选特征数。作为本发明一种基于深度强化学习的特征选择方法的进一步改进,所述步骤4包括如下过程:步骤4.1、初始化特征空间,根据实际容量初始化经验回放池,并随机初始化深度强化学习方法dqn模型中q网络的网络参数:评估网络的参数θ和目标网络的参数θ-,包括学习率β、折扣因子γ以及q网络结构和参数;步骤4.2、将步骤s2、s3中的四个参数当前特征st、动作at、奖励rt、下一特征st 1,作为经验序列(st,at,rt,st 1)存入经验回放池;步骤4.3、当经验回放池中的数据达到最大容量capacity=2000时,随机取出32条经验序列(sj,aj,rj,sj 1),将特征sj经过选择后得到的候选特征子集作为向量输入评估网络,得到对应动作aj的q值q(sj,aj;θ),θ为评估网络的参数总和;将特征sj 1经过选择后得到的候选特征子集输入目标网络,并对比所有得到的q值大小,选择最大q值θ-为目标网络的参数总和,计算目标网络的估计值yj:其中,折扣因子γ=0.995,sj 1为特征空间中最后一个待选特征,sj 1并非特征空间中最后一个待选特征;步骤4.4、根据随机梯度下降法,求得损失函数:l(θ)=(yj-q(sj,aj;θ))2更新评估网络参数θ:其中学习率β=0.001;将评估网络中的参数θ复制给目标网络的参数θ-。作为本发明一种基于深度强化学习的特征选择方法的进一步改进,所述步骤5包括如下过程:重复执行步骤2---步骤4,训练深度强化学习方法至少500轮后停止,选择训练中得到的最高奖励值所在轮次获得的的特征子集作为最优特征子集sbest:sbest={s1,s2,...,sm}(m≤n)其中,m为所选特征个数,sm为保留的第m个特征;在上位机中输出所选的最优特征子集和该特征子集的分类准确率。本发明的有益效果主要体现在:1、本发明提出一种新型的特征选择方法及框架,能够有效避免传统特征选择方法中存在的所选特征子集并非最适合每个分类器、易出现过拟合等问题;2、本发明将深度强化学习技术应用于特征选择任务上,从优化搜索的角度出发,通过尝试各种特征子集组合,以特征子集的特征数、准确率作为评估标准,不断优化动作选择策略,使得算法能够自动学习到最优特征子集,提高本发明的准确率。附图说明下面结合附图对本发明的具体实施方式作进一步详细说明。图1是本发明中基于深度强化学习的特征选择方法流程示意图。具体实施方式下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:实施例1、一种基于深度强化学习的特征选择方法,在与特征空间的交互过程中,通过不断更新q网络参数,根据收敛的值函数学习最优策略,得到最优特征子集,适应复杂的特征选择问题。如图1所示,本发明的具体方法包括如下步骤:s1、获取数据集,得到初始特征空间;s1.1、从上位机中收集一定量的数据样本,整理每个数据样本的特征信息,并标记每个样本的分类标签,然后将特征信息和分类标签设置为数据集,并进行预处理,即去除每个样本的序号、检查数据集中是否包含缺失值,若含有缺失值,则删除该样本;在本实施例中,上位机对获取的一定数量的乳腺肿块的细针抽吸(fna)的数字化图像作为样本进行处理,记录样本的代码编号,并提取每个样本的相关特征:团块厚度、细胞大小的均匀性、细胞形状的均匀性、附着力、单层上皮细胞大小、裸核、乏味染色质、正常核仁、线粒体;然后,将每个样本数据的分类标签标记为良性和恶性;最后将提取的每个样本的相关特征和分类标签设置为数据集,对数据集进行预处理,即去除每个样本的序号、删除数据集中有缺失值的样本,获得预处理后的数据集;s1.2、预处理后的数据集包括:初始特征空间和分类标签,表示如下:dataset={s,c},其中,dataset为给定数据集中特征空间和分类标签的集合,s表示初始特征空间,为s1中提取的样本的特征集合,c表示数据集对应的分类标签,即良性或恶性;对s中的所有特征编号,s={s1,s2,...,st,...,sn},st为初始特征空间中的第t个特征(t=1,2,...,n),n为初始特征空间中所含特征的总数。s2、根据ε-greedy策略对初始特征空间中的特征进行动作选择,得到当前特征子集;s2.1、从初始特征空间s中取出特征st,根据ε-greedy策略以ε的概率随机选择或以1-ε的概率根据评估网络输出的动作价值函数(q值)对特征st进行动作at;在ε-greedy策略中,ε∈{0.1,1},ε初始设置为1,每轮特征选择结束后,以ε=0.97ε的速度进行衰减,ε=0.1时,停止衰减;动作空间表示为:a={a1,a2,...,at,...,an}其中,a为对所有特征进行选择的动作集合,n为动作的数量,对于特征st,at=1表示保留特征st,at=0表示删除特征st;该动作设置可以保证在特征选择过程中,具体分析每个特征的状态,考虑特征组合间的相关性,避免特征漏选、多选的情况;s2.2、更新初始特征空间s中特征st的状态,得到当前特征子集,特征st被删除时,表示为st=0,保留时为st=1。s3、将当前特征子集送入分类器进行评估,进入下一特征的选择;将当前特征子集送入k近邻(knn)分类器中,根据预测的分类标签与数据集实际的分类标签c的对比结果得到分类准确率,计算奖励值rt,再对下一特征st 1进行选择动作;奖励的具体设置如下:r={r1,r2,...,rt,...,rn}r表示一轮特征选择结束时所得到的奖励集合,是评估特征子集优劣的指标,n为奖励的数量,rt为特征st经过动作at后得到的奖励,具体设置如下:其中,acc(st)是选择t次后特征子集的准确率,maxacc(st-1)表示在t-1次特征选择过程中的历史最高准确率,ra=0.5,rb=-0.1,rc=-5为对应情况下的奖励值,fitness(st)表示为:α是与分类性能相关的参数,α=0.99,γr(d)表示分类器的分类误差,c,r分别表示数据集的初始特征数与所选特征数;在特征选择过程中,根据当前准确率和最优分类准确率结果对比计算奖励值,动态地衡量当前特征采取的选择动作是否合理,从而选择适合于分类器的特征;在一轮特征选择结束时,将fitness(st)作为评估标准,从特征子集和准确率出发全面地评估所选特征子集,为后续训练过程指明优化方向。s4、运用深度强化学习方法优化动作选择策略s4.1、初始化特征空间,根据实际容量初始化经验回放池,并随机初始化深度强化学习方法dqn(deepqnetwork)中q网络的网络参数:评估网络的参数θ和目标网络的参数θ-,包括学习率β、折扣因子γ以及q网络结构和参数;q网络包括评估网络和目标网络,评估网络和目标网络为网络结构相同的神经网络,网络结构共四层,均为:第一层为输入层,输入向量为经过特征选择后的特征子集构成的状态向量,表示为:s(t)=(s1(t),s2(t),...,sn(t))t其中s(t)为第t次训练的特征子集的状态向量集合,sn(t)表示第t次训练时第n个特征的状态;第二层为隐藏层,输入为第一层的输入向量s(t),计算公式为:其中,i表示隐藏层中的第i个神经元,该隐藏层共有32个神经元;和b1i分别为隐藏层的第i个神经元的权重系数和截距,为隐藏层的第i个神经元的输出;经过激活函数relu后,隐藏层输出为:其中:为隐藏层的第i个神经元的输出;第三层为隐藏层,以第二层隐藏层的输出作为输入,计算公式为:其中,j表示该层中的第j个神经元,共有神经元个数为16;和b2j分别为第j个神经元的权重系数和截距;经过激活函数relu后,输出为:其中:为第三层的第j个神经元的输出;第四层为输出层,以第三层的输出作为输入,计算公式为:其中,k表示该层中的第k个神经元,共有神经元个数为2;和b3k分别为第k个神经元的权重系数和截距;输出值yout(t)=(q(s(t),a1),q(s(t),a2)),即特征选择问题中当前状态对应所有动作的q值,当数据集包含特征较多时,q网络可以近似整个动作价值函数(q值),并在每次学习时更新整个函数;s4.2、将步骤s2、s3中的四个参数当前特征st、动作at、奖励rt、下一特征st 1,作为经验序列(st,at,rt,st 1)存入经验回放池;s4.3、当经验回放池中的数据达到最大容量capacity=2000时,随机取出32条经验序列(sj,aj,rj,sj 1),将特征sj经过选择后得到的候选特征子集作为向量输入评估网络,得到对应动作aj的q值q(sj,aj;θ),θ为评估网络的参数总和;将特征sj 1经过选择后得到的候选特征子集作为向量输入目标网络,并对比所有得到的q值,选择最大q值θ-为目标网络的参数总和,计算目标网络的估计值yj:其中,折扣因子γ=0.995,sj 1为终止特征,即sj 1为特征空间中最后一个待选特征;sj 1非终止时刻,即sj 1并非特征空间中最后一个待选特征;s4.4、根据随机梯度下降法,求得损失函数:l(θ)=(yj-q(sj,aj;θ))2更新评估网络参数θ:其中学习率β=0.001,每轮特征选择结束时,将评估网络中的参数θ复制给目标网络的参数θ-,实现评估网络和目标网络的参数更新。s5:重复执行步骤s2—s4,训练深度强化学习方法,并输出结果重复执行步骤s2—s4若干轮训练深度强化学习方法,每轮训练时,不断更新评估网络的参数θ和目标网络的参数θ-,实现q网络的收敛以及特征选择中动作策略的优化,采用q网络优化动作策略,可以有效避免传统特征选择中的过拟合问题;本实施例中,步骤s2—s4重复执行500轮后结束深度强化学习方法的训练;选择500轮训练中得到的奖励值的最高值(最高值时的特征子集分类准确率最大)时通过评估网络的计算输出的特征子集作为最优特征子集sbest:sbest={s1,s2,...,sm}(m≤n)其中,m为所选特征个数,sm为保留的第m个特征;本实施例中,第166轮训练所选特征子集得到的奖励值为最高值,因此第166轮所选的特征子集为最优特征子集,在上位机中输出所选的最优特征子集sbest={团块厚度、裸核、乏味染色质、正常核仁},以及该特征子集的分类准确率为97.0%(步骤s3中的输出)。实验1:以uci网站上的乳腺癌数据集(breastcancerwisconsin)为例,对上述实施例1中提出的基于深度强化学习的特征选择方法进行系统的测试和验证。本实施例中的数据集来自于ucimachinelearningrepository,使用的是breastcancerwisconsin(original)dataset。数据取样于威斯康星大学医院,用于预测乳腺癌为良性还是恶性。该数据集有样本699个,其中良性458个,恶性241个,该数据集共有10个特征:1)样本代码编号:id编号2)团块厚度:1-10;3)细胞大小的均匀性:1-103;4)细胞形状的均匀性:1-10;5)边缘附着力:1-10;6)单层上皮细胞大小:1-10;7)裸核:1-10;8)乏味染色质:1-10;9)正常核仁:1-10;10)线粒体:1-10;该数据集的分类标签具有两个值:2和4,其中2表示乳腺癌为良性,4表示乳腺癌为恶性。本发明的实验平台为python,实验的上位机为intelcore(tm)i7-9700cpu,nvidia1080tigpu,16.0gram,在实验的上位机中下载uci网站上的乳腺癌的数据集。本实验总共运行五轮,每轮实验均采用十折交叉验证,同时每轮实验时均对比计算未经过特征选择的分类准确率的平均值,用于验证本发明的有效性:1、首先将乳腺癌的数据集进行预处理,将预处理好的数据集分成十份数据,将其中九份用于训练一份用于测试;为取得准确的实验结果,每轮开始时均将预处理好的数据集重新分成十份;2、按实施例1所述步骤s1-s6运行十折交叉验证,最终获得最优特征子集sbest和最优特征子集的分类准确率,采用得到的十次分类准确率的平均值作为本轮的分类准确率;3、作为对比,将步骤1中的十份数据轮流输入knn分类器,运行十折交叉验证,采用得到的十次分类准确率的平均值作为本轮未经过特征选择的分类准确率。取上述五轮实验得到的分类准确率和特征选择率的平均值作为最终的实验结果,五轮实验所选最优特征子集sbest如表1:表1五次实验所选最优特征子集sbest实验轮数最优特征子集sbest12)4)6)7)8)9)10)22)7)8)9)32)4)6)7)8)9)10)42)4)6)7)8)9)52)6)7)8)9)五轮实验所得最优特征子集的分类准确率和特征选择率如表2,其中,特征选择率为每轮实验所选最优特征子集的数量与原有特征数量(即为10个特征)的比值:表2五次实验所得准确率和特征选择率最终,实验结果为:平均分类准确率:0.970和平均特征选择率:0.58;而未进行特征选择得到的平均分类准确率为0.468。相比之下,本发明基于深度强化学习的特征选择方法仅用58%的特征就可以将分类准确率提高50.2%,由此可知,本发明提出的深度强化学习方法明显优于未进行特征选择的分类性能。最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。当前第1页1 2 3 
技术特征:1.一种基于深度强化学习的特征选择方法,其特征在于,包括如下步骤:
步骤1、获取数据集,得到初始特征空间;
步骤2、根据ε-greedy策略对初始特征空间中的特征进行动作选择,得到当前特征子集;
步骤3、将当前特征子集送入分类器进行评估,进入下一特征的选择;
步骤4、运用深度强化学习方法优化动作选择策略;
步骤5、重复执行步骤2---步骤4,输出最优特征子集sbest以及该特征子集的分类准确率。
2.根据权利要求1所述的一种基于深度强化学习的特征选择方法,其特征在于:所述步骤1包括以下步骤:
步骤1.1、从上位机中收集数据样本,整理每个数据样本的特征信息,并给每个样本标记分类标签,然后将特征信息和分类标签设置为数据集,进行预处理,去除每个样本的序号、删除数据集中包含缺失值的样本,获得预处理后的数据集;
步骤1.2、预处理后的数据集包括:初始特征空间和分类标签,表示如下:
dataset={s,c},
其中,dataset为给定数据集中特征空间和分类标签的集合,s表示初始特征空间,c表示数据集对应的分类标签;
对s中的所有特征编号,s={s1,s2,...,st,...,sn},st为初始特征空间中的第t个特征(t=1,2,...,n),n为初始特征空间中所含特征总数。
3.根据权利要求2所述的一种基于深度强化学习的特征选择方法,其特征在于:所述步骤2包括以下步骤:
步骤2.1、从初始特征空间s中取出特征st,根据ε-greedy策略以ε∈{0.1,1}的概率随机选择或以1-ε的概率根据评估网络输出的动作值函数对特征st进行动作at;ε初始设置为1,每轮特征选择结束后,以ε=0.97ε的速度进行衰减,ε=0.1时,停止衰减;动作空间表示为:
a={a1,a2,...,at,...,an}
其中,a为对所有特征进行选择的动作集合,n为动作的数量,at=1表示保留特征st,at=0表示删除特征st;
步骤2.2、更新初始特征空间s中的特征st的状态,得到当前特征子集,特征st被删除时,表示为st=0,保留时为st=1。
4.根据权利要求3所述的一种基于深度强化学习的特征选择方法,其特征在于:所述步骤3包括:
将当前特征子集送入k近邻分类器中,根据预测的分类标签与数据集实际分类标签c的对比结果得到分类准确率,计算奖励rt,再对下一特征st 1进行选择动作,奖励的具体设置如下:
r={r1,r2,...,rt,...,rn}
r表示一轮特征选择结束时所得到的奖励集合,n为奖励的数量,rt为特征st经过动作at后得到的评估奖励:
其中,acc(st)是选择t次后特征子集的准确率,maxacc(st-1)表示在t-1次特征选择过程中的历史最高准确率,ra=0.5,rb=-0.1,rc=-5为对应情况下的奖励值,fitness(st)表示为:
α是与分类性能相关的参数,α=0.99,γr(d)表示分类器的分类误差,c,r分别表示数据集的初始特征数与所选特征数。
5.根据权利要求4所述的一种基于深度强化学习的特征选择方法,其特征在于:所述步骤4包括如下步骤:
步骤4.1、初始化特征空间,根据实际容量初始化经验回放池,并随机初始化深度强化学习方法dqn模型中q网络的网络参数:评估网络的参数θ和目标网络的参数θ-,包括学习率β、折扣因子γ以及q网络结构和参数;
步骤4.2、将步骤s2、s3中的四个参数当前特征st、动作at、奖励rt、下一特征st 1,作为经验序列(st,at,rt,st 1)存入经验回放池;
步骤4.3、当经验回放池中的数据达到最大容量capacity=2000时,随机取出32条经验序列(sj,aj,rj,sj 1),将特征sj经过选择后得到的候选特征子集作为向量输入评估网络,得到对应动作aj的q值q(sj,aj;θ),θ为评估网络的参数总和;将特征sj 1经过选择后得到的候选特征子集输入目标网络,并对比所有得到的q值大小,选择最大q值θ-为目标网络的参数总和,计算目标网络的估计值yj:
其中,折扣因子γ=0.995,sj 1为特征空间中最后一个待选特征,sj 1并非特征空间中最后一个待选特征;
步骤4.4、根据随机梯度下降法,求得损失函数:
l(θ)=(yj-q(sj,aj;θ))2
更新评估网络参数θ:
其中学习率β=0.001;
将评估网络中的参数θ复制给目标网络的参数θ-。
6.根据权利要求5所述的一种基于深度强化学习的特征选择方法,其特征在于:所述步骤5包括如下步骤:
重复执行步骤2---步骤4,训练深度强化学习方法至少500轮后停止,选择训练中得到的最高奖励值所在轮次获得的的特征子集作为最优特征子集sbest:
sbest={s1,s2,...,sm}(m≤n)
其中,m为所选特征个数,sm为保留的第m个特征;
在上位机中输出所选的最优特征子集和该特征子集的分类准确率。
技术总结本发明公开了一种基于深度强化学习的特征选择方法,包括如下步骤:步骤1、获取数据集,得到初始特征空间;步骤2、根据ε‑greedy策略对初始特征空间中的特征进行动作选择,得到当前特征子集;步骤3、将当前特征子集送入分类器进行评估,进入下一特征的选择;步骤4、运用深度强化学习方法优化动作选择策略;步骤5、重复执行步骤2‑步骤4,输出最优特征子集SBest以及该特征子集的分类准确率。采用本发明的方法,能实现在海量的大数据中提取符合需要且有价值的信息。
技术研发人员:李欣倩;唐丽娟;任佳
受保护的技术使用者:浙江理工大学
技术研发日:2020.11.30
技术公布日:2021.03.12