%% Whale Optimization Algorithm (CSA_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
%% CSA参数
opts.AP = 0.1; % awareness probability
opts.fl = 1.5; % flight length
%% 划分数据集
HO = cvpartition(label,'HoldOut',ho);
opts.Model = HO;
%% 返回选取的特征
FS = jfs('csasvm',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('CSASVM');
%% 绘制 ROC 曲线
figure
plot(PX, PY, '-');
xlabel('CSAlse Positive Rate (FP / N)');
ylabel('True Positive Rate (TP / P)');
title(['ROC Curve (AUC = ', num2str(Auc), ')']);
%% 输出运行时间
time = toc;
fprintf('\n测试时间 %f',time)
%% 输出准确率
fprintf('\n CSASVM训练集准确率平均值: %g %% ',100 *mean(train_acc));
fprintf('\n CSASVM测试集准确率平均值: %g %%',100 *mean(test_acc));
%% 输出筛选特征个数 最差 最好 平均 方差
fprintf('\n CSASVM选择特征的最多个数: %d ',max(bf_num));
fprintf('\n CSASVM选择特征的最少个数: %d ',min(bf_num));
fprintf('\n CSASVM选择特征的平均个数: %d ',mean(bf_num));
fprintf('\n CSASVM选择特征的方差个数: %d \n', std(bf_num));
%% 统计每个特征被选择的次数
for d = 1:size(feat,2)
% 使用逻辑索引统计整数出现的次数
count = sum(s_idx(:)== d);
disp(['特征 ', num2str(d), ' 出现的次数为:', num2str(count)]);
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
智能优化特征选择-基于CSA乌鸦优化的特征选择分类算法KNN和SVM分类器(matlab程序) 1.程序功能已完成调试,用户可以通过一键操作生成图形和评价指标。 2.数据输入以Excel格式保存,只需更换文件,即可运行以获得个人化的实验结果。 3.代码中包含详细注释,具有较强的可读性,特别适合初学者和新手。 4.在实际数据集上的效果可能较差,需要对模型参数进行微调。
资源推荐
资源详情
资源评论
收起资源包目录
基于乌鸦搜索优化的特征选择分类算法.zip (11个子文件)
基于乌鸦搜索优化的特征选择分类算法
jCrowSearchAlgorithm.m 2KB
jCrowSearchAlgorithmSVM.m 2KB
jFitnessFunctionSVM.m 1KB
data.xls 215KB
CSA_SVM.m 3KB
CSA_KNN.m 2KB
jfs.m 393B
jsvc.m 1KB
jknn.m 958B
auc.m 752B
jFitnessFunction.m 1KB
共 11 条
- 1
资源评论
机器不会学习CL
- 粉丝: 2706
- 资源: 71
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOv11模型开发中的性能测试策略与实践
- 基于Java+Vue的仿淘宝电商平台设计源码
- Swift脚本在iOS开发中的高效应用与实践
- 基于JNA、OPENCV、win32API的梦幻西游手游任务自动化辅助设计源码
- Matlab含新能源(风电光伏)和多类型电动汽车配电网风险评估 软件:matpower+Matlab: 关键词:蒙特卡洛、时序、
- 基于FastApi与PostgreSQL的PostCommitBackEnd在线投稿系统后端设计源码
- 20kW的三相三电平并网 逆变器; 控制器为28335和28035, 资料料包括:控制板硬件PCB,和原理图,源码;28335和
- 基于Python和Web技术的养生头条网站设计源码
- (嵌入式开发)单片机开发和嵌入式开发过程中自己写的库.zip
- 基于Python语言的Odoo中医门诊模块设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功