本发明涉及计算机科学与技术领域,涉及数据特征选择方法,可用在生物信息分析,金融数据挖掘,互联网海量文本、图片信息处理等众多研究领域的数据分析中,可提高特征选择的速度。
背景技术:
随着信息技术的发展以及互联网规模和应用领域地不断扩大,生物信息分析,金融数据挖掘,互联网海量文本、图片信息处理等众多研究领域的数据分析需求增多,数据特征域的规模快速增长,给学习算法带来“维度灾难”问题。特征选择可以通过排除不相关的和冗余的特征实现数据降维,从原始特征域中选出最优特征子集。特征选择通过选出具有代表性的特征子集,提高了算法效率,减少了计算开销,同时避免了过拟合问题,提高了泛化能力。
通常特征选择方法可以分为:过滤式,封装式和嵌入式。过滤式方法时间复杂度低,可以快速缩小特征集规模,但是所选特征数量难以确定,而且过滤式方法只关注单独的特征,忽略了特征之间的组合性能。封装式方法可以达到比过滤式方法更高的精确度,但是,封装式方法的时间复杂度远高于过滤式方法。如公开号为105205349A,公开日为2015年12月30日的中国专利文献公开了一种马尔科夫毯嵌入式的基于封装的特征选择方法,其特征是按如下步骤进行:1.利用五折交叉验证方法获得最优特征;2.判断最优特征是否为空集,若为空集,则完成特征选择,否则更新的特征子集;3.利用马尔科夫毯方法删除冗余特征,从而更新特征向量;4.判断特征向量是否为空集,若为空集则完成特征选择,否则重复步骤2。该发明能够获得高质量的特征子集,同时降低基于封装的特征选择方法的时间复杂度,从而获得较好的分类性能和时间性能。如上述对比文件所述,嵌入式方法比封装式方法时间复杂度低,比过滤式方法高,但是精确度没有封装式方法高且鲁棒性差。
技术实现要素:
本发明旨在针对上述现有技术所存在的缺陷和不足,提供一种直接验证的封装式特征选择方法,本方法是对封装式方法提出的优化方案,即针对封装式特征选择算法中时间复杂度最高的交叉验证评价环节,提出了可以替代交叉验证的特征集的直接评价的LW测量方法(SFS-LW和SBS-LW),在不降低分类精度的基础上,具有线性时间复杂度,执行效率高,提高了特征选择速度。
本发明是通过采用下述技术方案实现的:
一种直接验证的封装式特征选择方法,其特征在于:
设定条件:候选特征子集X={xn:n=1,…,N;xn∈RD}为D维空间中的一组向量集合,且该向量集合所对应的标签集合为Y={yn:n=1,…,N;yn∈{1,…,M}};对于每一个D维向量xn有且有一个标签yn把它标识到一个聚类m∈{1,…,M}中,输入,原始特征集Fe;输出,最优特征集Fo;
SFS-LW方法的步骤如下:
a.初始化目标特征集Fo为
b.按序加入fc(fc∈Fe)特征形成候选特征子集Foc=fc∪Fo,fc为原始特征集Fe中的特征;
c.计算候选特征子集Foc的LW值并记录;
d.重复步骤b到c,直到遍历了Fe中的所有特征fc;
e.对记录的所有LW排序,选出最高的LW值并将其所对应的特征fc加入Fo;
f.将特征fc从Fe中移除,重复步骤b到f直到Fe为或达到阈值;
SBS-LW方法的步骤如下:
a.初始化目标特征集Fo为特征全集;
b.按序形成候选特征子集Foc=Fo/fc,特征fc为原始特征集Fε中的特征,“/”代表“不包含”;
c.计算候选特征子集Foc的LW值并记录;
d.重复步骤b到c,直到遍历了Fe中的所有特征fc;
e.对记录的所有LW排序,选出最高的LW值并将其所对应的特征fc从Fo中删除;
f.将特征fc从Fe中移除,重复步骤b到f直到Fe为或达到阈值。
所述c步骤中,计算候选特征子集Foc的LW值并记录具体方法如下:
1)计算特征子集Foc中任意两个聚类Ci和Cj的自由度(FDi|j或FDj|i),方法是:聚类Ci和Cj质心间的距离减去聚类Ci的半径ri和聚类Cj的半径rj之和,即:FDi|j=FDj|i=d(vi,vj)-(ri+rj),其中,vi为聚类Ci的质心向量vj同理;
2)利用公式计算该候选特征子集Foc的LW值并记录该值对应的特征fc。
术语解释:
SFS:序列前向搜索。
SBS:序列后向搜索。
与现有技术相比,本发明所达到的有益效果如下:
(1)、采用a-f的步骤形成的技术方案,能保证良好的分类精确度。
(2)、LW拥有线性时间复杂度,因此,在封装式方法中引入LW,可以极大的减少特征子集评价过程中交叉验证所造成的计算开销。
(3)、可广泛应用在许多特征维度高的领域。
本发明结合LW与序列搜索算法提出了改进的封装式特征选择算法:SFS-LW和SBS-LW,具有线性时间复杂度,执行效率高的优点,可代替传统的交叉验证的评价方法。
附图说明
下面将结合说明书附图和具体实施方式对本发明作进一步的详细说明,其中:
图1为计算特征子集Foc中任意两个聚类Ci和Cj的自由度的示意图。
具体实施方式
本发明结合LW与序列搜索算法提出了改进的封装式特征选择算法:SFS-LW和SBS-LW,具有线性时间复杂度,执行效率高,可代替传统的交叉验证的评价方法。
原始封装式特征选择算法过程:
序列前向搜索(Sequential Forward Selection,SFS)
a.初始化目标特征集Fo为
b.按序加入fc(fc∈Fe)特征形成候选特征子集Foc=fc∪Fo,fc为原始特征集Fe中的特征;
c.对候选特征集Foc进行交叉验证,记录验证误差及所对应的特征fc;
d.重复步骤b到c,直到遍历了Fe中的所有特征fc;
e.选出最小验证误差所对应的特征fc加入Fo;
f.将特征fc从Fe中移除,重复步骤b到f直到Fe为或达到阈值;
序列后向搜索(Sequential Backward Selection,SBS)与序列前向搜索(Sequential Forward Selection,SFS)恰恰相反,它是假设所有的特征都在集合内,逐步减少属性,直至找到(局部)最优属性集。
封装式方法在精确度上有优势,但受限于时间复杂度过高。造成时间复杂度高的根本原因在于封装式方法需要结合分类算法对候选特征子集进行交叉验证评价。本文提出了一种新的特征集评价测量方法(LW),可以极大的减少特征子集评价过程中交叉验证所造成的计算开销。
本方法工作过程:
a.初始化目标特征集Fo为
b.按序加入fc(fc∈Fe)特征形成候选特征子集Foc,fc为原始特征集Fe中的特征;
c.计算候选特征子集Foc的LW值并记录;
d.重复步骤b到c,直到遍历了Fe中的所有特征fc;
e.对记录的所有LW排序,选出最高的LW值并将其所对应的特征fc加入Fo;
f.将特征fc从Fe中移除,重复步骤b到f直到Fe为或达到阈值;
具体步骤如下:
候选特征子集X={xn:n=1,…,N;xn∈RD}为D维空间中的一组向量集合,且该向量集合所对应的标签集合为Y={yn:n=1,…,N;yn∈{1,…,M}}。对于每一个D维向量xn有且有一个标签yn把它标识到一个特定的聚类m∈{1,…,M}中。输入,原始特征集Fe;输出,最优特征集Fo。
SFS-LW发明内容如下:
a.初始化目标特征集Fo为
b.按序加入fc(fc∈Fe)特征形成候选特征子集Foc=fc∪Fo;
c.计算候选特征子集Foc的LW值并记录。
1)计算特征子集Foc中任意两个聚类Ci和Cj的自由度(FDi|j或FDj|i)如图1——聚类Ci和Cj质心间的距离减去聚类Ci的半径ri和聚类Cj的半径rj之和,即:FDi|j=FDj|i=d(vi,vj)-(ri+rj),其中,vi为聚类Ci的质心向量vj同理;
2)利用公式计算该候选特征子集Foc的LW值并记录该值对应的特征fc;
d.重复步骤b到c,直到遍历了Fe中的所有特征fc;
e.对记录的所有LW排序,选出最高的LW值并将其所对应的特征fc加入Fo;
f.将特征fc从Fe中移除,重复步骤b到f直到Fe为或达到阈值。
SBS-LW算法流程与SFS-LW基本相同,区别在于SBS-LW初始化Fo为特征全集,通过删除特征形成候选特征子集Foc。