KPCA-ISSA-SVM分类预测,基于核主成分分析和改进的麻雀搜索算法优化支持向量机故障诊断分类预测,MATLAB代码(。
KPCA-ISSA-SVM分类预测,基于核主成分分析和改进的麻雀搜索算法优化支持向量机故障诊断分类预测,MATLAB代码(含SVM、SSA-SVM、ISSA-SVM、KPCA-ISSA-SVM四个模型的对比,目标函数使用5折交叉验证确定最佳参数)。

%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 参数设置
P_train=res(:,1:end-1)';
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
%% 矩阵转置
p_train = p_train';
%% 参数设置
para = 2; % 核函数参数
dim = 8; % 降维后维度
%% 降维
[zes, ~, kes] = kPCA(p_train, dim, 'poly', para);
%% 贡献率
Vars = kes(1: dim) / sum(kes);
%% 降维后各特征的信息占比
figure
bar(Vars)
legend('降维后特征信息占比')
xlabel('特征')
ylabel('信息占比')
string = {'降维后信息的特征占比'};
title(string)
grid
%% 重新安排数据
res = [zes';res(:,end)']';
%% 分析数据
num_class = length(unique(res(:, end))); % 类别数(Excel最后一列放类别)
num_res = size(res, 1); % 样本数(每一行,是一个样本)
num_size = 0.7; % 训练集占数据集的比例
res = res(randperm(num_res), :); % 打乱数据集(不打乱数据时,注释该行)
flag_conusion = 1; % 标志位为1,打开混淆矩阵(要求2018版本及以上)
outdim = 1; % 最后一列为输出
f_ = size(res, 2) - outdim; % 输入特征维度

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)