dreamware怎么做网站,wordpress 无法播放音乐,什么是电子商务模式,网页制作与网站建设江西JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分…JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分类效果
格拉姆矩阵图 GAF-PCNN-MATT GASF-CNN GADF-CNN 基本介绍
1.Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断三个模型对比运行环境matlab2023bPCNN-MATT为并行卷积神经网络融合多头注意力机制。
2.先运行格拉姆矩阵变换进行数据转换然后运行分别GAF_PCNN-MATT.mGADF_CNN.mGASF_CNN.m完成多特征输入数据分类预测/故障诊断
GADF_CNN.m是只用到了格拉姆矩阵的GADF矩阵将GADF矩阵送入CNN进行故障诊断。
GASF_CNN-MATT.m是只用到了格拉姆矩阵的GASF矩阵将GASF矩阵送入CNN进行故障诊断。
GAF_PCNN-MATT.m是将GASF 图与GADF 图同时送入两条并行CNN-MATT中经过卷积-池化后两条CNN-MATT网络各输出一组一维向量然后将所输出两组一维向量进行拼接融合通过全连接层后最终将融合特征送入到Softmax 分类器中。
参考文献 PCNN-MATT结构 CNN结构
程序设计
完整程序和数据获取方式私信博主回复Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断。
fullyConnectedLayer(classnum,Name,fc12)softmaxLayer(Name,softmax)classificationLayer(Name,classOutput)];lgraph layerGraph(layers1);layers2 [imageInputLayer([size(input2,1) size(input2,2)],Name,vinput) flattenLayer(Nameflatten2)bilstmLayer(15,Outputmode,last,name,bilstm) dropoutLayer(0.1) % Dropout层以概率为0.2丢弃输入reluLayer(Name,relu_2)selfAttentionLayer(2,2,Name,mutilhead-attention) %Attention机制fullyConnectedLayer(10,Name,fc21)];
lgraph addLayers(lgraph,layers2);
lgraph connectLayers(lgraph,fc21,add/in2);plot(lgraph)%% Set the hyper parameters for unet training
options trainingOptions(adam, ... % 优化算法AdamMaxEpochs, 1000, ... % 最大训练次数GradientThreshold, 1, ... % 梯度阈值InitialLearnRate, 0.001, ... % 初始学习率LearnRateSchedule, piecewise, ... % 学习率调整LearnRateDropPeriod,700, ... % 训练100次后开始调整学习率LearnRateDropFactor,0.01, ... % 学习率调整因子L2Regularization, 0.001, ... % 正则化参数ExecutionEnvironment, cpu,... % 训练环境Verbose, 1, ... % 关闭优化过程Plots, none); % 画出曲线
%Code introduction
if nargin2error(You have to supply all required input paremeters, which are ActualLabel, PredictedLabel)
end
if nargin 3isPlot true;
end%plotting the widest polygon
A11;
A21;
A31;
A41;
A51;
A61;a[-A1 -A2/2 A3/2 A4 A5/2 -A6/2 -A1];
b[0 -(A2*sqrt(3))/2 -(A3*sqrt(3))/2 0 (A5*sqrt(3))/2 (A6*sqrt(3))/2 0];if isPlotfigure plot(a, b, --bo,LineWidth,1.3)axis([-1.5 1.5 -1.5 1.5]);set(gca,FontName,Times New Roman,FontSize,12);hold on%grid
end% Calculating the True positive (TP), False Negative (FN), False Positive...
% (FP),True Negative (TN), Classification Accuracy (CA), Sensitivity (SE), Specificity (SP),...
% Kappa (K) and F measure (F_M) metrics
PositiveClassmax(ActualLabel);
NegativeClassmin(ActualLabel);
cpclassperf(ActualLabel,PredictedLabel,Positive,PositiveClass,Negative,NegativeClass);CMcp.DiagnosticTable;TPCM(1,1);FNCM(2,1);FPCM(1,2);TNCM(2,2);CAcp.CorrectRate;SEcp.Sensitivity; %TP/(TPFN)SPcp.Specificity; %TN/(TNFP)PrTP/(TPFP);ReTP/(TPFN);F_M2*Pr*Re/(PrRe);FPRFP/(TNFP);TPRTP/(TPFN);KTP/(TPFPFN);[X1,Y1,T1,AUC] perfcurve(ActualLabel,PredictedLabel,PositiveClass); %ActualLabel(1) means that the first class is assigned as positive class%plotting the calculated CA, SE, SP, AUC, K and F_M on polygon
x[-CA -SE/2 SP/2 AUC K/2 -F_M/2 -CA];
y[0 -(SE*sqrt(3))/2 -(SP*sqrt(3))/2 0 (K*sqrt(3))/2 (F_M*sqrt(3))/2 0];if isPlotplot(x, y, -ko,LineWidth,1)set(gca,FontName,Times New Roman,FontSize,12);
% shadowFill(x,y,pi/4,80)fill(x, y,[0.8706 0.9216 0.9804])
end%calculating the PAM value
% Get the number of vertices
n length(x);
% Initialize the area
p_area 0;
% Apply the formula
for i 1 : n-1p_area p_area (x(i) x(i1)) * (y(i) - y(i1));
end
p_area abs(p_area)/2;%Normalization of the polygon area to one.
PAp_area/2.59807;if isPlot%Plotting the Polygonplot(0,0,r)plot([0 -A1],[0 0] ,--ko)text(-A1-0.3, 0,CA,FontWeight,bold,FontName,Times New Roman)plot([0 -A2/2],[0 -(A2*sqrt(3))/2] ,--ko)text(-0.59,-1.05,SE,FontWeight,bold,FontName,Times New Roman)plot([0 A3/2],[0 -(A3*sqrt(3))/2] ,--ko)text(0.5, -1.05,SP,FontWeight,bold,FontName,Times New Roman)plot([0 A4],[0 0] ,--ko)text(A40.08, 0,AUC,FontWeight,bold,FontName,Times New Roman)plot([0 A5/2],[0 (A5*sqrt(3))/2] ,--ko)text(0.5, 1.05,J,FontWeight,bold,FontName,Times New Roman)daspect([1 1 1])
end
Metrics.PAPA;
Metrics.CACA;
Metrics.SESE;
Metrics.SPSP;
Metrics.AUCAUC;
Metrics.KK;
Metrics.F_MF_M;printVar(:,1)categories;
printVar(:,2){PA, CA, SE, SP, AUC, K, F_M};
disp(预测结果打印:)
for i1:length(categories)fprintf(%23s: %.2f \n, printVar{i,1}, printVar{i,2})
end参考资料 [1] https://blog.csdn.net/kjm13182345320/category_11799242.html?spm1001.2014.3001.5482 [2] https://blog.csdn.net/kjm13182345320/article/details/124571691