⛄ 内容介绍

一种基于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);

⛄ 运行结果

【CNN-SVM回归预测】基于CNN-SVM实现数据回归预测附matlab代码-LMLPHP

【CNN-SVM回归预测】基于CNN-SVM实现数据回归预测附matlab代码-LMLPHP

【CNN-SVM回归预测】基于CNN-SVM实现数据回归预测附matlab代码-LMLPHP

【CNN-SVM回归预测】基于CNN-SVM实现数据回归预测附matlab代码-LMLPHP

⛄ 参考文献

[1]顾嘉运, 刘晋飞, 陈明. 基于SVM的大样本数据回归预测改进算法[J]. 计算机工程, 2014.

[2]雷杨, 朱耀琴. 基于CNN-SVM的软件缺陷预测方法:, CN112631898A[P]. 2021.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

11-27 07:47