一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种特征选择方法、装置、电子设备和存储介质与流程

2022-03-09 06:30:38 来源:中国专利 TAG:


1.本发明应用于机器学习技术领域,特别是涉及一种特征选择方法、装置、电子设备和存储介质。


背景技术:

2.近些年,机器学习技术在很多领域得到了很大的发展应用,例如,利用机器学习算法处理图像数据实现图像分类。然而,在大数据背景下,机器学习算法需要处理的数据体量巨大,数据特征呈现高维特性,而高维特性的数据中存在数据冗余问题。数据冗余会导致机器学习算法的处理时间变长,数据处理的复杂度增大,同时也影响机器学习算法的准确性。因此,对高维数据进行特征选择以降低数据维度是十分必要的。其中,特征选择是指通过一定标准选择一组具有代表性的数据特征,以去除数据冗余进而降低数据处理复杂度。
3.目前,现有的特征选择方法包括过滤式、包裹式以及嵌入式方法。过滤式方法基于非监督策略采用信息论和模糊集等领域指标进行特征选择,包裹式方法结合分类性能指标进行特征选择,嵌入式方法将特征选择嵌入分类器的训练过程中,且所选择的特征质量取决于所训练的分类器优劣程度。然而,现有的特征选择方法缺乏自适应能力,限制了机器学习算法的收敛速度。


技术实现要素:

4.本发明实施例的目的在于提供一种特征选择方法、装置、电子设备和存储介质,以提高机器学习算法的收敛速度。
5.为了达到上述目的,本发明实施例提供了一种特征选择方法,包括:
6.获取训练样本集,其中,所述训练样本集包括多个样本,每个所述样本包括d维特征;
7.针对多个样本的同一维度特征所构成的特征集合中的每一维度的特征,计算该维度的特征对应的条件熵,并基于所述条件熵计算该维度的特征对应的被选择概率;
8.基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒子,其中,每个所述粒子对应一个决策变量,决策变量包括d个元素,每个元素与一个维度的特征相对应;
9.针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择,得到该粒子对应的一组被选择的特征子集;
10.基于各个粒子对应的被选择的特征子集确定目标函数的值,所述目标函数的值用于表征每个样本的特征选择比例和特征分类错误率;
11.基于所述目标函数的值确定所述目标函数是否收敛;
12.如果所述目标函数收敛,确定每个样本被选择的特征,作为目标特征;
13.如果所述目标函数未收敛,更新各个粒子,并返回所述针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择的步骤。
14.可选的,所述计算该维度的特征对应的条件熵,包括:
15.采用如下公式计算该维度的特征对应的条件熵:
[0016][0017]
其中,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征fm对应的条件熵,表示fm的子事件,为fm通过聚类算法所得的第t类聚类结果,l为l的子事件,为联合概率,表示训练样本集中的样本同时属于子事件和l类的概率,为条件概率,表示在子事件条件下样本属于l类的概率。
[0018]
可选的,所述基于所述条件熵计算该维度的特征对应的被选择概率,包括:
[0019]
采用如下公式基于所述条件熵计算该维度的特征对应的被选择概率:
[0020][0021]
其中,p(l|fm)为该维度的特征fm对应的被选择概率,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征对应的条件熵,d为样本包括的特征维数。
[0022]
可选的,所述基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒子,包括:
[0023]
设置预设数量个包含d个元素的决策变量对应的粒子;
[0024]
针对每个粒子中的每个元素,生成均匀随机数,若所述均匀随机数小于该元素对应的特征的被选择概率,为该粒子的该元素赋予大于预设特征阈值且小于等于1的值,否则,为该粒子的该元素赋予大于零且小于预设特征阈值的值;得到预设数量个初始化后的粒子。
[0025]
可选的,采用如下公式表示所述目标函数:
[0026][0027]
其中,x={x1,x2,

,xj,

,xd}为决策变量,为决策变量x所选择的特征比例,xj为决策变量x的第j个元素,threshold为预设特征阈值,d为样本包括的特征的维数,n为训练样本集中的样本数量,表示采用决策变量x所选特征集合进行分类的分类错误率,ak表示训练样本集中的第k个样本,ak(x)表示采用决策变量x所选特征的样本ak,lk为ak的真实类别标识,f(ak(x))表示样本ak(x)经过分类后所得类标,若样本ak(x)分类后结果与真实类别标识结果相同,则δ(f(ak(x)),lk)=0,否则δ(f(ak(x)),lk)=1。
[0028]
可选的,所述更新各个粒子,包括:
[0029]
确定每个粒子的当前速度信息和当前位置信息;
[0030]
基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度,得到该粒子更新后的位置信息。
[0031]
可选的,所述基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度,包括:
[0032]
采用如下公式基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度:
[0033][0034]
w=0.9-0.5exp(-r);
[0035][0036]
其中,h(l|fm)为特征fm对应的条件熵,threshold为预设特征阈值,xm为当前粒子的第m个元素,t为迭代的次数,vi(t 1)为第i个粒子在t 1代的速度,r1和r2为为0到1之间的随机数,vi(t)为第i个粒子的当前速度,xi(t)为第i个粒子的当前位置信息,w为惯性权重,r表示当前解所选择特征的平均不确定性,p
ibest
(t)为第i个粒子的当前个体最优解,g
ibest
(t)为全局最优解,w*vi(t)表示子向全局最优解靠近;解的质量越高则r值越小w的值越小,且第i个粒子在当前解周围进行局部搜索的概率越大;反之,解的质量越差,w值越大,且第i个粒子进行全局搜索的概率越大。
[0037]
为了达到上述目的,本发明实施例还提供了一种特征选择装置,包括:
[0038]
样本获取模块,用于获取训练样本集,其中,所述训练样本集包括多个样本,每个所述样本包括d维特征;
[0039]
计算模块,用于针对多个样本的同一维度特征所构成的特征集合中的每一维度的特征,计算该维度的特征对应的条件熵,并基于所述条件熵计算该维度的特征对应的被选择概率;
[0040]
初始化模块,用于基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒子,其中,每个所述粒子对应一个决策变量,决策变量包括d个元素,每个元素与一个维度的特征相对应;
[0041]
特征选择模块,用于针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择,得到该粒子对应的一组被选择的特征子集;
[0042]
目标函数值确定模块,用于基于各个粒子对应的被选择的特征子集确定目标函数的值,所述目标函数的值用于表征每个样本的特征选择比例和特征分类错误率;
[0043]
目标特征确定模块,用于基于所述目标函数的值确定所述目标函数是否收敛;如果所述目标函数收敛,确定每个样本被选择的特征,作为目标特征;如果所述目标函数未收敛,更新各个粒子,并返回所述针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择的步骤。
[0044]
可选的,所述计算模块,具体用于采用如下公式计算该维度的特征对应的条件熵:
[0045][0046]
其中,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征fm对应的条件熵,表示fm的子事件,为fm通过聚类算法所得的第t类聚类结果,l为l的子事件,为联合概率,表示训练样本集中的样本同时属于子事件和l类的概率,为条件概率,表示在子事件条件下样本属于l类的概率。
[0047]
可选的,所述计算模块,具体用于采用如下公式基于所述条件熵计算该维度的特征对应的被选择概率:
[0048][0049]
其中,p(l|fm)为该维度的特征fm对应的被选择概率,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征对应的条件熵,d为样本包括的特征维数。
[0050]
可选的,所述初始化模块,具体用于设置预设数量个包含d个元素的决策变量对应的粒子;针对每个粒子中的每个元素,生成均匀随机数,若所述均匀随机数小于该元素对应的特征的被选择概率,为该粒子的该元素赋予大于预设特征阈值且小于等于1的值,否则,为该粒子的该元素赋予大于零且小于预设特征阈值的值;得到预设数量个初始化后的粒子。
[0051]
可选的,采用如下公式表示所述目标函数:
[0052][0053]
其中,x={x1,x2,

,xj,

,xd}为为决策变量,为决策变量x所选择的特征比例,xj为决策变量x的第j个元素,threshold为预设特征阈值,d为样本包括的特征的维数,n为训练样本集中的样本数量,表示采用决策变量x所选特征集合进行分类的分类错误率,ak表示训练样本集中的第k个样本,ak(x)表示采用决策变量x所选特征的样本ak,lk为ak的真实类别标识,f(ak(x))表示样本ak(x)经过分类后所得类标,若样本ak(x)分类后结果与真实类别标识结果相同,则δ(f(ak(x)),lk)=0,否则δ(f(ak(x)),lk)=1。
[0054]
可选的,所述目标特征确定模块,具体用于确定每个粒子的当前速度信息和当前位置信息;基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度,得到该粒子更新后的位置信息。
[0055]
可选的,所述目标特征确定模块,具体用于采用如下公式基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度:
[0056]
[0057]
w=0.9-0.5exp(-r);
[0058][0059]
其中,h(l|fm)为特征fm对应的条件熵,threshold为预设特征阈值,xm为当前粒子的第m个元素,t为迭代的次数,vi(t 1)为第i个粒子在t 1代的速度,r1和r2为为0到1之间的随机数,vi(t)为第i个粒子的当前速度,xi(t)为第i个粒子的当前位置信息,w为惯性权重,r表示当前解所选择特征的平均不确定性,p
ibest
(t)为第i个粒子的当前个体最优解,g
ibest
(t)为全局最优解,w*vi(t)表示子向全局最优解靠近;解的质量越高则r值越小w的值越小,且第i个粒子在当前解周围进行局部搜索的概率越大;反之,解的质量越差,w值越大,且第i个粒子进行全局搜索的概率越大。
[0060]
为了达到上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0061]
存储器,用于存放计算机程序;
[0062]
处理器,用于执行存储器上所存放的程序时,实现上述任一所述特征选择方法步骤。
[0063]
为了达到上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述特征选择方法步骤。
[0064]
为了达到上述目的,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述特征选择方法步骤。
[0065]
本发明实施例有益效果:
[0066]
采用本发明实施例提供的方法,获取训练样本集,针对多个样本的同一维度特征所构成的特征集合中的每维度的特征,计算该维度的特征对应的条件熵,并基于条件熵计算该维度的特征对应的被选择概率;基于各特征集合对应的被选择概率,初始化预设数量个粒子以优化决策变量,针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择,得到该决策变量对应的一组被选择的特征子集;基于各个决策变量对应的特征子集确定目标函数值,如果目标函数收敛,确定每个样本被选择的特征,作为目标特征;如果目标函数未收敛,更新各个决策变量,并返回针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择的步骤。本发明实施例提供的方法,可以基于某一维度的特征对应的条件熵并基于条件熵计算该维度的特征对应的被选择概率,即基于条件熵对粒子进行初始化,利用了样本的各个特征的先验信息,降低了盲目搜索的概率,提升了初始化质量,进而提高了机器学习算法的收敛速度。
[0067]
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
[0068]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0069]
图1为本发明实施例提供的特征选择方法的一种流程图;
[0070]
图2为本发明实施例提供的特征选择装置的一种结构示意图;
[0071]
图3为本发明实施例提供的电子设备的结构示意图。
具体实施方式
[0072]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
[0073]
图1为本发明实施例提供的特征选择方法的一种流程图,如图1所示,包括如下步骤:
[0074]
步骤101,获取训练样本集。
[0075]
训练样本集包括多个样本,每个样本包括d维特征。例如,训练样本集a={a1,a2,...,an}
t
∈r
n*d
,其中,a1,a2,...,an分别为训练样本集中各个样本。a1,a2,...,an均包括d维度特征。样本具体可以为待分类的样本图像,样本包括的d维特征可以为待分类的图像的d维特征。
[0076]
步骤102,针对多个样本的同一维度特征所构成的特征集合中的每一维度的特征,计算该维度的特征对应的条件熵,并基于所述条件熵计算该维度的特征对应的被选择概率。
[0077]
本发明实施例中,可以将训练样本集中多个样本的同一维度的特征确定为一个特征集合,例如样本a1,a2,

,an的第s维特征所构成的集合,可以作为第s维特征对应的特征集合,其中,1≤s≤d。
[0078]
在一种可能的实施方式中,可以采用如下公式计算每一维度的特征对应的条件熵:
[0079][0080]
其中,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征fm对应的条件熵,为fm的子事件,表示fm通过聚类算法所得的第t类聚类结果,l为l的子事件,为联合概率,表示训练样本集中的样本同时属于子事件和l类的概率,为条件概率,表示在子事件条件下样本属于l类的概率。
[0081]
本发明实施例中,h(l|fm)度量了已知特征fm时训练样本集a能正确分类的不确定
度,h(l|fm)越大,从第m维特征获取的判别性信息越少,因此,条件熵可作为衡量是否选择第m维特征的标准。
[0082]
本发明实施例中,在一种可能的实施方式中,具体可以基于所述条件熵计算每一维度的特征对应的被选择概率,包括:
[0083]
采用如下公式基于所述条件熵计算该维度的特征对应的被选择概率:
[0084][0085]
其中,p(l|fm)为该维度的特征fm对应的被选择概率,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征对应的条件熵,d为样本包括的特征维数。
[0086]
该维特征对应的被选择概率用于表征该维特征被选择作为判别特征的概率。
[0087]
本发明实施例中,p(l|fm)值越大,则选择特征fm的概率越高,通过计算p(l|fm),减少了随机初始化过程中的盲目搜索。
[0088]
步骤103,基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒子。
[0089]
其中,每个粒子对应的决策变量包括d个元素,每个元素与一个维度的特征相对应。
[0090]
在一种可能的实施方式中,具体可以采用如下步骤a1-a2初始化预设数量个决策变量:
[0091]
步骤a1:设置预设数量个包含d个元素的决策变量对应的粒子;
[0092]
步骤a2:针对每个粒子中的每个元素,生成均匀随机数,若所述均匀随机数小于该元素对应的特征的被选择概率,为该粒子的该元素赋予大于预设特征阈值且小于等于1的值,否则,为该粒子的该元素赋予大于零且小于预设特征阈值的值;得到预设数量个初始化后的粒子。
[0093]
具体的,可以采用实数编码方式,设置包含d个零值的元素的决策变量的粒子x={x1,...,xi,...,xd},xi∈[0,1],其中,xj与训练样本集中各个样本的第j维特征所构成的特征集合对应,threshold为预设特征阈值,当xj>threshold,表示训练样本集中各个样本的第j维特征被选取。
[0094]
其中,预设数量可以根据实际应用需求进行设定,例如设定为5个或10个,此处不做具体限定。
[0095]
本发明实施例中,初始化预设数量个含d个元素的决策变量的粒子x={x1,...,xi,...,xd},其中,xi的取值规则如下:
[0096]
生成0-1之间的均匀随机数r,当r<p(l|fm),xi设置为threshold到1之间的随机数,表示该特征被选择,否则,设置为0到threshold之间的随机数,表示该特征未被选择。基于p(l|fm)该初始化粒子,充分利用了训练样本集各个样本的各个特征的先验信息,p(l|fm)越大,选择fm的概率越高,因此可以降低盲目搜索的概率,提升初始化质量。
[0097]
步骤104,针对每个粒子对应的决策变量中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中相应元素对应的特征被选择,得到该粒子对应的一组特征子集。
[0098]
例如,决策变量x中,当x2>threshold,表示训练样本集中各个样本的第2维特征所构成的特征集合被选取,即表示训练样本集中各个样本的第2维特征被选取。
[0099]
步骤105,基于各个粒子对应的被选择的特征子集确定目标函数的值。
[0100]
目标函数的值用于表征每个样本的特征选择比例和特征分类错误率。
[0101]
具体的,本发明实施例中可以采用如下公式表示目标函数:
[0102][0103]
其中,x={x1,x2,

,xj,

,xd}为决策变量,为决策变量x所选择的特征比例,xj为决策变量x的第j个元素,threshold为预设特征阈值,d为样本包括的特征的维数,n为训练样本集中的样本数量,表示采用决策变量x所选特征集合进行分类的分类错误率,ak表示训练样本集中的第k个样本,ak(x)表示采用决策变量x所选特征的样本ak,lk为ak的真实类别标识,f(ak(x))表示样本ak(x)经过分类后所得类标,若样本ak(x)分类后结果与真实类别标识结果相同,则δ(f(ak(x)),lk)=0,否则δ(f(ak(x)),lk)=1。
[0104]
本发明实施例中,可以对特征选择后的样本ak预测分类,得到预测分类的类标f(ak(x)),然后通过比较样本ak的预测分类的类标f(ak(x))和样本ak的真实类别标识lk是否一致,确定对样本ak的预测分类是否正确,得到特征分类错误率δ,若样本ak分类后结果与真实类别标识结果相同,则δ(f(ai(x)),li)=0,否则δ(f(ai(x)),li)=1。
[0105]
步骤106,基于所述目标函数的值确定所述目标函数是否收敛。
[0106]
步骤107,如果目标函数收敛,确定训练样本被选择的特征,作为目标特征。
[0107]
具体的,可以采用现有的任意一个拐点算法确定各个样本被选择的目标特征。其中,例如,可以采用如下步骤b1-b4确定目标特征:
[0108]
步骤b1:将当前非支配解采用b-spline插值方法进行平滑处理;
[0109]
步骤b2:在处理后的曲线上进行均匀采样;
[0110]
步骤b3:计算每一个采样点的曲度变化;
[0111]
步骤b4:曲度变化最大的采样点最近的解即为拐点,将拐点对应的特征确定为目标特征。
[0112]
步骤108,如果目标函数未收敛,更新各个粒子,并返回执行步骤104。
[0113]
采用本发明实施例提供的方法,获取训练样本集,针对多个样本的同一维度特征所构成的特征集合中的每维度的特征,计算该维度的特征对应的条件熵,并基于条件熵计算该维度的特征对应的被选择概率;基于各特征集合对应的被选择概率,初始化预设数量个粒子以优化决策变量,针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择,得到该决策变量对应的一组被选择的特征子集;基于各个决策变量对应的特征子集确定目标函数值,如果目标函数收敛,确定每个样本被选择的特征,作为目标特征;如果目标函数未收敛,更新各个决策变量,并返回针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择的步骤。本发明实施例提供的方法,可以基于某
一维度的特征对应的条件熵并基于条件熵计算该维度的特征对应的被选择概率,即基于条件熵对粒子进行初始化,利用了样本的各个特征的先验信息,降低了盲目搜索的概率,提升了初始化质量,进而提高了机器学习算法的收敛速度。
[0114]
在一种可能的实施方式中,上述更新各个决策变量的步骤,具体可以包括如下步骤c1-c2:
[0115]
步骤c1:确定每个粒子的当前速度信息和当前位置信息;
[0116]
步骤c2:基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度,得到该粒子更新后的位置信息。
[0117]
具体的,本步骤中可以采用如下公式基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度:
[0118][0119]
w=0.9-0.5exp(-r);
[0120][0121]
其中,h(l|fm)为特征fm对应的条件熵,threshold为预设特征阈值,xm为当前粒子的第m个元素,t为迭代的次数,vi(t 1)为第i个粒子在t 1代的速度,r1和r2为为0到1之间的随机数,vi(t)为第i个粒子的当前速度,xi(t)为第i个粒子的当前位置信息,w为惯性权重,r表示当前解所选择特征的平均不确定性,p
ibest
(t)为第i个粒子的当前个体最优解,g
ibest
(t)为全局最优解,w*vi(t)表示第i优解靠近;解的质量越高则r值越小w的值越小,且第i个粒子在当前解周围进行局部搜索的概率越大;反之,解的质量越差,w值越大,且第i个粒子进行全局搜索的概率越大。
[0122]
本发明实施例可以基于多目标粒子群优化的特征选择算法,该算法在监督学习的模式下,结合条件熵初始化决策变量,同时自适应更新决策变量。
[0123]
举例说明,假设一个种群中有m个粒子,在d维空间内进行搜索。第i个粒子在第t代的位置信息为速度个体最优解记为粒子群的全局最优解记为g
best
(t)={g1,...,gj,...,gd},则粒子速度的更新公式vi(t 1)为:
[0124][0125]
w=0.9-0.5exp(-t)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0126][0127]
可以基于公式(1)确定公式(2)中权重w的值,然后将权重w的值代入公式(3)更新
粒子速度公式vi(t 1)。
[0128]
采用本发明实施例提供的方法,可以基于特征集合对应的条件熵并基于条件熵计算该特征对应的被选择概率,基于条件熵的初始化方法基于各个特征的不确定性信息进行初始化,充分利用了训练样本各个特征的先验信息,降低了盲目搜索的概率,提升了初始化质量,并且,基于条件熵的初始化方法的优势在高维特征选择中尤为明显。同时,本发明实施例中,自适应的粒子更新策略基于当前解的质量自适应更新粒子速度信息和位置信息,当前解的质量决定了粒子搜索的范围,当前解的质量越高,粒子进行局部搜索的概率越大;反之,进行全局搜索的概率越大。因此,该自适应更新方法进一步改善的了解的质量,提升了算法的收敛性。
[0129]
本发明实施例所提供的方法可以应用于任何需要进行图像分类的应用场景。具体的,例如交通应用场景中,需要进行车辆和行人的区分,则可以应用本发明实施例提供的特征选择方法对所拍摄的图像分类为“行人”或“车辆”,通过分类结果对驾驶人员进行提醒,保证交通安全。
[0130]
基于同一发明构思,根据本发明上述实施例提供的特征选择方法,相应地,本发明另一实施例还提供了一种特征选择装置,其结构示意图如图2所示,具体包括:
[0131]
样本获取模块201,用于获取训练样本集,其中,所述训练样本集包括多个样本,每个所述样本包括d维特征;
[0132]
计算模块202,用于针对多个样本的同一维度特征所构成的特征集合中的每一维度的特征,计算该维度的特征对应的条件熵,并基于所述条件熵计算该维度的特征对应的被选择概率;
[0133]
初始化模块203,用于基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒子,其中,每个所述粒子对应一个决策变量,决策变量包括d个元素,每个元素与一个维度的特征相对应;
[0134]
特征选择模块204,用于针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择,得到该粒子对应的一组被选择的特征子集;
[0135]
目标函数值确定模块205,用于基于各个粒子对应的被选择的特征子集确定目标函数的值,所述目标函数的值用于表征每个样本的特征选择比例和特征分类错误率;
[0136]
目标特征确定模块206,用于基于所述目标函数的值确定所述目标函数是否收敛;如果所述目标函数收敛,确定每个样本被选择的特征,作为目标特征;如果所述目标函数未收敛,更新各个粒子,并返回所述针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择的步骤。
[0137]
采用本发明实施例提供的装置,获取训练样本集,针对多个样本的同一维度特征所构成的特征集合中的每维度的特征,计算该维度的特征对应的条件熵,并基于条件熵计算该维度的特征对应的被选择概率;基于各特征集合对应的被选择概率,初始化预设数量个粒子以优化决策变量,针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择,得到该决策变量对应的一组被选择的特征子集;基于各个决策变量对应的特征子集确定目标函数值,如果目标函数收敛,确定每个样本被选择的特征,作为目标特征;如果目标函数未收敛,更新各个决策变量,
并返回针对每个粒子对应的决策变量的每个元素,若该元素的值大于预设特征阈值,确定该决策变量中的该元素对应的特征被选择的步骤。本发明实施例提供的方法,可以基于某一维度的特征对应的条件熵并基于条件熵计算该维度的特征对应的被选择概率,即基于条件熵对粒子进行初始化,利用了样本的各个特征的先验信息,降低了盲目搜索的概率,提升了初始化质量,进而提高了机器学习算法的收敛速度。
[0138]
可选的,所述计算模块202,具体用于采用如下公式计算该维度的特征对应的条件熵:
[0139][0140]
其中,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征fm对应的条件熵,为fm通过聚类算法所得的第t类聚类结果的子事件,l为l的子事件,为联合概率,表示训练样本集中的样本同时属于子事件和l类的概率,为条件概率,表示在子事件条件下样本属于l类的概率。
[0141]
可选的,所述计算模块,具体用于采用如下公式基于所述条件熵计算该维度的特征对应的被选择概率:
[0142][0143]
其中,p(l|fm)为该维度的特征fm对应的被选择概率,l为训练样本集中包括的样本所属类别集合,fm为训练样本集中的多个样本的第m维特征所构成的特征集合,h(l|fm)为该维度的特征对应的条件熵,d为样本包括的特征维数。
[0144]
可选的,所述初始化模块203,具体用于设置预设数量个包含d个元素的决策变量对应的粒子;针对每个粒子中的每个元素,生成均匀随机数,若所述均匀随机数小于该元素对应的特征的被选择概率,为该粒子的该元素赋予大于预设特征阈值且小于等于1的值,否则,为该粒子的该元素赋予大于零且小于预设特征阈值的值;得到预设数量个初始化后的粒子。
[0145]
可选的,采用如下公式表示所述目标函数:
[0146][0147]
其中,x={x1,x2,

,xj,

,xd}为决策变量,为决策变量x所选择的特征比例,xj为决策变量x的第j个元素,threshold为预设特征阈值,d为样本包括的特征的维数,n为训练样本集中的样本数量,表示采用决策变量x所选特征集合进行分类的分类错误率,ak表示训练样本集中的第k个样本,ak(x)表示采用决策变量x所选特征的样本ak,lk为ak的真实类别标识,f(ak(x))表示样本ak(x)经过分类后所得类标,若样本ak(x)分类后结果与真实类别标识结果相同,则δ(f(ak(x)),lk)=0,否则δ(f(ak(x)),
lk)=1。
[0148]
可选的,所述目标特征确定模块206,具体用于确定每个粒子的当前速度信息和当前位置信息;基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度,得到该粒子更新后的位置信息。
[0149]
可选的,所述目标特征确定模块206,具体用于采用如下公式基于每个粒子的当前速度信息和当前位置信息,确定该粒子的各个元素在下一时刻的速度:
[0150][0151]
w=0.9-0.5exp(-r);
[0152][0153]
其中,h(l|fm)为特征fm对应的条件熵,threshold为预设特征阈值,xm为当前粒子的第m个元素,t为迭代的次数,vi(t 1)为第i个粒子在t 1代的速度,r1和r2为为0到1之间的随机数,vi(t)为第i个粒子的当前速度,xi(t)为第i个粒子的当前位置信息,w为惯性权重,r表示当前解所选择特征的平均不确定性,p
ibest
(t)为第i个粒子的当前个体最优解,g
ibest
(t)为全局最优解,w*vi(t)表示第i优解靠近;解的质量越高则r值越小w的值越小,且第i个粒子在当前解周围进行局部搜索的概率越大;反之,解的质量越差,w值越大,且第i个粒子进行全局搜索的概率越大。采用本发明实施例提供的装置,可以基于某一维特征对应的条件熵并基于条件熵计算该维特征对应的被选择概率,基于条件熵的初始化方法基于各个特征的不确定性信息进行初始化,充分利用了训练样本各个特征的先验信息,降低了盲目搜索的概率,提升了初始化质量,并且,基于条件熵的初始化方法的优势在高维特征选择中尤为明显。并且,本发明实施例中,自适应的粒子更新策略基于当前解的质量自适应更新粒子速度信息和位置信息,当前解的质量决定了粒子搜索的范围,当前解的质量越高,粒子进行局部搜索的概率越大;反之,进行全局搜索的概率越大。因此,该自适应更新方法进一步改善的了解的质量,提升了算法的收敛性。
[0154]
本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
[0155]
存储器303,用于存放计算机程序;
[0156]
处理器301,用于执行存储器303上所存放的程序时,实现如下步骤:
[0157]
获取训练样本集,其中,所述训练样本集包括多个样本,每个所述样本包括d维特征;
[0158]
针对多个样本的同一维度特征所构成的特征集合中的每一维度的特征,计算该维度的特征对应的条件熵,并基于所述条件熵计算该维度的特征对应的被选择概率;
[0159]
基于各维度的特征对应的被选择概率,通过粒子群优化算法初始化预设数量个粒
子,其中,每个所述粒子对应一个决策变量,决策变量包括d个元素,每个元素与一个维度的特征相对应;
[0160]
针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择,得到该粒子对应的一组被选择的特征子集;
[0161]
基于各个粒子对应的被选择的特征子集确定目标函数的值,所述目标函数的值用于表征每个样本的特征选择比例和特征分类错误率;
[0162]
基于所述目标函数的值确定所述目标函数是否收敛;
[0163]
如果所述目标函数收敛,确定每个样本被选择的特征,作为目标特征;
[0164]
如果所述目标函数未收敛,更新各个粒子,并返回所述针对每个粒子中的每个元素,若该元素的值大于预设特征阈值,确定该粒子中的该元素对应的特征被选择的步骤。
[0165]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0166]
通信接口用于上述电子设备与其他设备之间的通信。
[0167]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0168]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0169]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一特征选择方法的步骤。
[0170]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一特征选择方法。
[0171]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘
solid state disk(ssd))等。
[0172]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0173]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0174]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献