JCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷

JJCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷

目錄

    • JJCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷
      • 分類效果
        • 格拉姆矩陣圖
        • GAF-PCNN-MATT
        • GASF-CNN
        • GADF-CNN
      • 基本介紹
      • 程序設計
      • 參考資料

分類效果

格拉姆矩陣圖

在這里插入圖片描述

GAF-PCNN-MATT

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

GASF-CNN

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

GADF-CNN

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

基本介紹

1.Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷,三個模型對比,運行環境matlab2023b;PCNN-MATT為并行卷積神經網絡融合多頭注意力機制。

2.先運行格拉姆矩陣變換進行數據轉換,然后運行分別GAF_PCNN-MATT.m,GADF_CNN.m,GASF_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(Name='flatten2')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', ...                 % 優化算法Adam'MaxEpochs', 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 nargin<2error('You have to supply all required input paremeters, which are ActualLabel, PredictedLabel')
end
if nargin < 3isPlot = true;
end%plotting the widest polygon
A1=1;
A2=1;
A3=1;
A4=1;
A5=1;
A6=1;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
PositiveClass=max(ActualLabel);
NegativeClass=min(ActualLabel);
cp=classperf(ActualLabel,PredictedLabel,'Positive',PositiveClass,'Negative',NegativeClass);CM=cp.DiagnosticTable;TP=CM(1,1);FN=CM(2,1);FP=CM(1,2);TN=CM(2,2);CA=cp.CorrectRate;SE=cp.Sensitivity; %TP/(TP+FN)SP=cp.Specificity; %TN/(TN+FP)Pr=TP/(TP+FP);Re=TP/(TP+FN);F_M=2*Pr*Re/(Pr+Re);FPR=FP/(TN+FP);TPR=TP/(TP+FN);K=TP/(TP+FP+FN);[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(i+1)) * (y(i) - y(i+1));
end
p_area = abs(p_area)/2;%Normalization of the polygon area to one.
PA=p_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(A4+0.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.PA=PA;
Metrics.CA=CA;
Metrics.SE=SE;
Metrics.SP=SP;
Metrics.AUC=AUC;
Metrics.K=K;
Metrics.F_M=F_M;printVar(:,1)=categories;
printVar(:,2)={PA, CA, SE, SP, AUC, K, F_M};
disp('預測結果打印:')
for i=1:length(categories)fprintf('%23s: %.2f \n', printVar{i,1}, printVar{i,2})
end

參考資料

[1] https://blog.csdn.net/kjm13182345320/category_11799242.html?spm=1001.2014.3001.5482
[2] https://blog.csdn.net/kjm13182345320/article/details/124571691

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43602.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【45 Pandas+Pyecharts | 去哪兒海南旅游攻略數據分析可視化】

文章目錄 &#x1f3f3;??&#x1f308; 1. 導入模塊&#x1f3f3;??&#x1f308; 2. Pandas數據處理2.1 讀取數據2.2 查看數據信息2.3 日期處理&#xff0c;提取年份、月份2.4 經費處理2.5 天數處理 &#x1f3f3;??&#x1f308; 3. Pyecharts數據可視化3.1 出發日期_…

華南師范大學“大學生校外實踐教學基地”授牌儀式暨見習參觀活動圓滿結束

為促進校企合作的深入發展&#xff0c;培育出具有實際應用技能的人才&#xff0c;7月9日&#xff0c;華南師范大學數學科學院與廣東泰迪智能科技股份有限公司聯合開展“大學生校外實踐教學基地”授牌儀式暨見習參觀活動。華南師范大學數學科學院數據科學系主任陳艷男、副主任陳…

深入理解model.eval()與torch.no_grad()

model.eval() 使用model.eval()切換到測試模式&#xff0c;不會更新模型的w&#xff08;權重&#xff09;&#xff0c;b&#xff08;偏置&#xff09;參數通知dropout層和batchnorm層在train和val中間進行切換&#xff1a; 在train模式&#xff0c;dropout層會按照設定的參數p…

Idea 2023 使用GitLab提交代碼提示輸入Token

項目場景&#xff1a; 今天電腦換硬盤了&#xff0c;安裝了 IDEA2023 款的社區版開發工具&#xff0c;下載代碼后&#xff0c;提交并推送代碼到遠程服務器的時候&#xff0c;提示輸入Token&#xff0c;并不是用戶名和密碼。 問題描述 推送代碼到遠程GitLab本地倉庫的時候&…

單鏈表--續(C語言詳細版)

2.6 在指定位置之前插入數據 // 在指定位置之前插入數據 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x); 分為兩種情況&#xff1a;1. 插入的數據在鏈表中間&#xff1b;2. 插入的數據在鏈表的前面。 // 在指定位置之前插入數據 void SLTInsert(SLTNode** …

AI繪畫何以突飛猛進? 從歷史到技術突破, 一文讀懂火爆的AI繪畫發展史

前言 自從前段時間偶然間被當下AI繪畫的水平震住之后&#xff08;超越一切的AI作畫神器&#xff0c;和它創作的234個盔甲美女未來戰士&#xff09; &#xff0c;作者深感當今AI繪畫的飛速進展或許已遠超所有人的預期。 而這里的前因后果&#xff0c;包括AI繪畫的歷史&#xff…

十九.升職加薪系列-JVM優化-解決JVM性能瓶頸的JIT即時編譯器

前言 在很多年以前&#xff0c;做C或者C的程序員經常說Java語言的運行速度不如C或C&#xff0c;Java運行速度慢主要是因為它是解釋執行的&#xff0c;而C或C是編譯執行的&#xff0c;解釋執行需要通過JVM虛擬機將字節碼實時翻譯成機器碼&#xff08;邊翻譯邊執行&#xff09;&…

Rust 版本升級:rustup update stable 報錯

Rust 版本升級 rustup update stable 報錯 一、報錯內容 error: could not download file from ‘https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256’ to ‘/Users/xxx/.rustup/tmp/rv6vdfu3eupwo64m_file’: failed to make network request: error sendi…

【實戰場景】@Transactional中使用for update的注意點

【實戰場景】Transactional中使用for update的注意點 開篇詞&#xff1a;干貨篇&#xff1a;知識回顧注意點1.鎖的范圍和粒度&#xff1a;2.事務的隔離級別&#xff1a;3.死鎖&#xff1a;4.性能影響&#xff1a;5.事務的邊界&#xff1a;6.異常處理&#xff1a;7. 數據庫和存儲…

【漏洞復現】網神 SecGate 3600 防火墻 sys_export_conf_local_save 任意文件讀取

免責聲明&#xff1a; 本文內容旨在提供有關特定漏洞或安全漏洞的信息&#xff0c;以幫助用戶更好地了解可能存在的風險。公布此類信息的目的在于促進網絡安全意識和技術進步&#xff0c;并非出于任何惡意目的。閱讀者應該明白&#xff0c;在利用本文提到的漏洞信息或進行相關測…

javaweb學習day5--《HTML篇》Springboot的模塊創建、HTML的相關知識點詳解

一、前言 從今天開始&#xff0c;就要啟動后端的學習了&#xff0c;Springboot會貫穿到底&#xff0c;一定要跟著小編嚴謹的去搭建Springboot環境&#xff0c;依賴添加的過程可能需要2分鐘左右&#xff0c;讀者們要耐心等待一下&#xff0c;搭建好Springboot之后才算正式的開始…

算力革命:彈性租賃,解鎖無限可能

華為創始人任正非曾在一場程序設計競賽中說道&#xff0c;我們即將進入第四次工業革命&#xff0c;基礎就是大算力。事實上&#xff0c;隨著5G、人工智能等信息技術的迅猛發展&#xff0c;算力需求持續增長&#xff0c;但高昂的成本和快速的技術迭代讓許多中小企業和個人開發者…

Covalent Network(CXT)通過社區投票將代幣遷移并更名為 CXT,以推動人工智能更深層次的創新

專注于人工智能和 Web3 的模塊化數據基礎設施 Covalent Network&#xff08;CXT&#xff09;宣布&#xff0c;其治理提案已通過社區投票并順利實施&#xff0c;即將原生代幣 CQT 遷移為新的 CXT 代幣&#xff0c;并部署至新的合約。這一關鍵性轉變標志著 Covalent Network&…

git刪除提交記錄,并使用idea將代碼重新提交到gitee倉庫

git 新建分支將之前的記錄刪除重新提交 轉載鏈接 https://blog.csdn.net/qq_37142541/article/details/139860956

03-NoSQL之Redis配置與優化

一、redis與memcache總體對比 1.性能 Redis&#xff1a;只使用單核&#xff0c;平均每一個核上Redis在存儲小數據時比Memcached性能更高。 Memcached&#xff1a;可以使用多核&#xff0c;而在100k以上的數據中&#xff0c;Memcached性能要高于Redis。 2.內存使用效率 MemC…

springboot文達辦公物資管理系統-計算機畢業設計源碼51191

摘要 本文介紹了一種名為"文達辦公物資管理系統"的基于JAVA語言、基于Springboot框架和MYSQL數據庫開發的管理系統。該系統主要分為管理員和員工用戶兩個角色&#xff0c;以滿足不同用戶的需求。 對于管理員用戶&#xff0c;系統提供了儀器設備管理、設備借用管理、設…

【大數據技術】換新電腦了,如何快速遷移MySQL到新電腦上(含程序+數據),這樣既快速又高效,省去了“各種安裝+各種配置+各種遷移數據”帶來的麻煩和時間

【大數據技術】換新電腦了&#xff0c;如何快速遷移MySQL到新電腦上(含程序數據 背景步驟總結 背景 很久沒有寫博文了哦&#xff0c;最近我換了新的筆記本,于是需要在新筆記本電腦上搭建MySQL環境&#xff0c;因為我原電腦上是安裝的MySQL解壓版&#xff0c;故我想偷偷懶&…

可理解性評估:使用Google Gemini優化語音識別的意義保留

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

nftables(5)表達式(3)PAYLOAD EXPRESSIONS

PAYLOAD EXPRESSIONS Payload expressions在nftables中扮演著重要的角色&#xff0c;因為它們允許用戶定義復雜的規則&#xff0c;這些規則可以基于數據包的內容&#xff08;即有效載荷&#xff09;來過濾、修改或允許數據包通過。這些表達式可以執行諸如數據拷貝、比較、位操…

實驗1 —— 安全策略的練習

實驗拓撲圖 實驗要求 1.DMZ區內的服務器&#xff0c;辦公區僅能在辦公時間內&#xff08;9&#xff1a;00-18&#xff1a;00&#xff09;可以訪問&#xff0c;生產區的設備全天可以訪問&#xff1b; 2.生產區不允許訪問互聯網&#xff0c;辦公區和游客區允許訪問互聯網 3.辦公區…