✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
一种基于CNNSVM的软件缺陷预测方法,从软件历史开发数据中提取软件数据特征,将获得的数据特征进行归一化处理;对归一化后的缺陷样本的数据特征进行SMOTE样本扩充;构建CNNSVM模型,正常样本和扩充后的缺陷样本一起输入到CNNSVM模型中,先由CNN网络进行卷积,下采样和扁平化处理,完成特征提取后,输入到SVM层进行缺陷预测;采用RMSProp优化器,基于binary_cross_entroy损失函数进行优化拟合,完成CNNSVM模型的训练;将目标软件缺陷特征输入训练好的CNNSVM模型,输出预测结果.本发明在较为复杂和不平衡问题较大的数据集上,其性能相较于目前性能较好的无监督学习和半监督学习更优.
⛄ 部分代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 读取数据
data1= xlsread('DGAData1.xlsx');
% data1=fillmissing(data,"previous");
input =data1(:,1:end-1);
output=data1(:,end);
data2=log10(input);
data2(data2(:,1:5)==0)=0.001;
%% 分析数据
num_class = length(unique(data1(:, end))); % 类别数(Excel最后1列放类别)
num_dim = size(data1, 2)-1 ; % 特征维度
num_res = size(data1, 1); % 样本数(每一行,是一个样本)
flag_conusion = 1; % 标志位为1,打开混淆矩阵(要求2018版本及以上)
%% 划分训练集和测试集
n = randperm(size(data2,1));
% 2. 训练集――270个样本
P_train =data2(n(1:200),:)';
T_train =output(n(1:200),:)';
M = size(P_train, 2);
% 3. 测试集――111个样本
P_test=data2(n(201:end),:)';
T_test =output(n(201:end),:)';
N = size(P_test, 2);
⛄ 运行结果
⛄ 参考文献
[1]顾嘉运, 刘晋飞, 陈明. 基于SVM的大样本数据回归预测改进算法[J]. 计算机工程, 2014.
[2]雷杨, 朱耀琴. 基于CNN-SVM的软件缺陷预测方法:, CN112631898A[P]. 2021.