%% Whale Optimization Algorithm (DE_SVM)
clear, clc, close;
%% 读取数据
res = xlsread('data.xls');
feat = res(1:end,1:21);
label =res(1:end,22);
%% 设置迭代次数
test_num = 5;
%% 设置接收准确率的数组
train_acc=zeros(1,test_num);
test_acc=zeros(1,test_num);
%% 设置接收适应度的数组
value_fit = rand(test_num,100);
%% 设置接收选择最佳子集的索引的数组
s_idx = zeros(test_num,test_num);
%% 设置接收选择最佳子集个数
bf_num=zeros(1,test_num);
tic
for i =1:test_num
fprintf('\n 这是第%d次测试',i);
%% SVM超参数参数
opts.c = 4.0;
opts.g = 0.8;
%% 验证集比例
ho = 0.2;
%% 公共参数
opts.N = 30; % number of solutions %种群数
opts.T = 100; % maximum number of iterations
%% DE参数
opts.alpha = 50; % depth weight
opts.beta = 0.2; % multiplier weight
%% 划分数据集
HO = cvpartition(label,'HoldOut',ho);
opts.Model = HO;
%% 返回选取的特征
FS = jfs('DEsvm',feat,label,opts);
%% 返回特征索引
sf_idx = FS.sf;
s_idx(i,1:length(sf_idx)) = sf_idx;
%% 返回最佳子集个数
bf_num(i) = FS.nf;
%% 计算准确率
[train_Acc, test_Acc, PX, PY, Auc] = jknn(feat(:,sf_idx),label,opts);
train_acc(i) = train_Acc;
test_acc(i) = test_Acc;
%% 适应度值
value_fit(i,:)=FS.s;
end
%% 绘制图像
figure
plot(FS.s); grid on;
xlabel('Number of Iterations');
ylabel('Fitness Value');
title('DESVM');
%% 绘制 ROC 曲线
figure
plot(PX, PY, '-');
xlabel('DElse Positive Rate (FP / N)');
ylabel('True Positive Rate (TP / P)');
title(['ROC Curve (AUC = ', num2str(Auc), ')']);
%% 输出运行时间
time = toc;
fprintf('\n测试时间 %f',time)
%% 输出准确率
fprintf('\n DESVM训练集准确率平均值: %g %% ',100 *mean(train_acc));
fprintf('\n DESVM测试集准确率平均值: %g %%',100 *mean(test_acc));
%% 输出筛选特征个数 最差 最好 平均 方差
fprintf('\n DESVM选择特征的最多个数: %d ',max(bf_num));
fprintf('\n DESVM选择特征的最少个数: %d ',min(bf_num));
fprintf('\n DESVM选择特征的平均个数: %d ',mean(bf_num));
fprintf('\n DESVM选择特征的方差个数: %d \n', std(bf_num));
%% 统计每个特征被选择的次数
for d = 1:size(feat,2)
% 使用逻辑索引统计整数出现的次数
count = sum(s_idx(:)== d);
disp(['特征 ', num2str(d), ' 出现的次数为:', num2str(count)]);
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
智能优化特征选择|基于DE差分进化优化的特征选择分类算法(matlab程序) 1.程序功能已完成调试,用户可以通过一键操作生成图形和评价指标。 2.数据输入以Excel格式保存,只需更换文件,即可运行以获得个人化的实验结果。 3.代码中包含详细注释,具有较强的可读性,特别适合初学者和新手。 4.在实际数据集上的效果可能较差,需要对模型参数进行微调。 CSDN:机器不会学习CL 智能优化特征选择|基于DE差分进化优化的特征选择分类算法(matlab程序) 1.程序功能已完成调试,用户可以通过一键操作生成图形和评价指标。 2.数据输入以Excel格式保存,只需更换文件,即可运行以获得个人化的实验结果。 3.代码中包含详细注释,具有较强的可读性,特别适合初学者和新手。 4.在实际数据集上的效果可能较差,需要对模型参数进行微调。 CSDN:机器不会学习CL
资源推荐
资源详情
资源评论
收起资源包目录
基于差分进化优化的特征选择分类算法.zip (11个子文件)
基于差分进化优化的特征选择分类算法
jDifferentialEvolution.m 2KB
jFitnessFunctionSVM.m 1KB
data.xls 215KB
jDifferentialEvolutionSVM.m 2KB
jfs.m 395B
DE_SVM.m 2KB
DE_KNN.m 2KB
jsvc.m 1KB
jknn.m 958B
auc.m 752B
jFitnessFunction.m 1KB
共 11 条
- 1
资源评论
机器不会学习CL
- 粉丝: 2802
- 资源: 71
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功