基于麻雀搜索算法的同步优化特征选择-带码文章基于麻雀搜索算法的同步优化特征选择-带码1 .数据集2.SVM模型建立3 .麻雀搜索算法同步优化特征选择4 .测试结果5 .参考文献:参考文献
摘要:针对传统支持向量机在打包特征选择中分类效果差、子集选择冗馀、计算性能易受核函数参数影响的不足,采用麻雀优化算法进行了同步优化。
1 .数据集
wine数据的来源是UCI数据库,记录意大利同一区域3种不同品种葡萄酒的化学成分分析。 数据包括178个样本,每个样本包括13个特征成分(化学成分),每个样本的类别标签已经给出。 将该178个样本的50%作为训练集,将剩下的50%作为测试集,在训练集中训练SVM,可以得到分类模型,用得到的模型对测试集进行类标签预测。
总体数据存储在chapter_WineClass. mat中,解释如下: classnumber=3,记录类别数;
在wine、178 13的双精度型矩阵中,记录178个样本的13个属性
wine_ labels、178 1的一个双精度型的列方向盘记录178个样本各自的类别标签。
图1 .数据集2.SVM模型构建是首先从原始数据中提取训练集和测试集,然后进行一定的预处理(必要时也进行特征提取),然后在训练集中训练SVM,利用最后得到的模型进行测试集
图2 .在SVM模型中,数据预处理采用归一化处理。 对训练集和测试集进行归一化预处理,采用以下归一化映射。
y=xxmInxmaxmIn(1) y=(FRAC(x-x_{min} ) x_{max}-x{min} ) tag{1}y=xmaxxminxxmin) ) ) ) ) )
3 .麻雀搜索算法并行优化特征选择在元启发式群智能算法优化计算时,由于优化问题的不同,种群个体表现出不同的含义。 对特征选择问题来说,其本质是二元优化问题,优化后的选择特征结果表示仅限于“0”和“1”,“0”的值表示未选择该特征,“1”的值表示选择了该特征在优化选择特征的情况下,种群个体解可视为一维向量,各维原始数据值与0.5相比,大于或等于0.5时选择该特征,否则排除该特征。 特征选择可以视为多个目标优化问题,分类结果中分类精度高,特征子集个数少时表明所获得的分类效果优良。 在算法迭代过程中,一般采用适应度函数评价各解的质量。 为了取得分类精度和特征子集个数的平衡,根据SVM进行分类
分类准确率与特征选择的所选特征子集个数, 设计适应度函数 如下所示:f i t e n e s s = a r g m a x ( a c c u r a c y [ p r e d i c t ( t r a i n ) ] + a c c u r a c y [ p r e d i c t ( t e s t ) ] + 1 − r / N ) fiteness = argmax(accuracy[predict(train)]+accuracy[predict(test)] + 1 - r/N) fiteness=argmax(accuracy[predict(train)]+accuracy[predict(test)]+1−r/N)
其中accuracy[predict(train)],accuracy[predict(test)]分别为训练集和测试集(验证集)准确率,根据自身需要看是只用训练集准确率还是综合考虑验证集准确率,r为选择的特征个数,N为总特征个数。
由于麻雀是求极小值,将目标求最大值转换为求极小值
f i t n e s s = − f i t n e s s fitness = -fitness fitness=−fitness
麻雀算法参数设置如下:
%% 麻雀参数设置% 定义优化参数的个数,在该场景中,优化参数的个数为数据集特征总数 。%目标函数fobj = @(x) fun(x,train_wine_labels,train_wine,test_wine_labels,test_wine); % 优化参数的个数 特征维度dim = size(train_wine,2); %特征维度% 优化参数的取值下限,[0,1],大于0.5为选择该特征,小于0.5为不选择该特征lb = 0;ub = 1;%% 参数设置pop =10; %麻雀数量Max_iteration=50;%最大迭代次数 %% 优化[Best_pos,Best_score,curve]=SSA(pop,Max_iteration,lb,ub,dim,fobj);
基础SVM训练集最终预测准确率:100
基础SVM测试集最终预测准确率:98.8764
SSA特征选择后SVM训练集最终预测准确率:100
SSA特征选择后SVM测试集最终预测准确率:100
总特征数:13
麻雀算法选择的特征总数:9
麻雀算法选择的特征(0为不选择,1为选择):1 0 0 1 1 1 1 0 0 1 1 1 1
从结果来看,经过特征选择后,特征数明显减少,由13维变为9维,而且训练集和测试集精度均能达到比较好的结果。
5.参考文献:[1]qcdzxc,mldxh,yxdqt.基于改进秃鹰搜索算法的同步优化特征选择[J/OL].控制与决策:1-9[2021-11-02].https://doi.org/10.13195/j.kzyjc.2020.1025.
6.Matlab代码