基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼

基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼

文章目錄

  • 基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼
    • 1.PNN網絡概述
    • 2.變壓器故障診街系統相關背景
      • 2.1 模型建立
    • 3.基于跳蛛優化的PNN網絡
    • 5.測試結果
    • 6.參考文獻
    • 7.Matlab代碼

摘要:針對PNN神經網絡的光滑因子選擇問題,利用跳蛛算法優化PNN神經網絡的光滑因子的選擇,并應用于變壓器故障診斷。

1.PNN網絡概述

概率神經網絡( probabilistic neural networks , PNN )是 D. F. Specht 博士在 1 989 年首先提出的,是一種基于 Bayes 分類規則與 Parzen窗的概率密度面數估計方法發展而來的并行算 法。它是一類結胸簡單、訓練簡潔、應用廣泛的人工神經網絡 。在實際應用中,尤其是在解決分類問題的應用中, PNN 的優勢在于用線性學習算法來完成非線性學 習算法所傲的工作,同 時保持非線性算法的高精度等特性;這種網絡對應的權值就是模式樣本的分布,網絡不需要訓練,因而能夠滿足訓練上實時處理的要求。

PNN 網絡是由徑向基函數網絡發展而來的一種前饋型神經網絡,其理論依據是貝葉斯最小風險準則(即貝葉斯決策理論), PNN作為徑向基網絡的一種,適合于模式分類。當分布密度 SPREAD 的值接近于 0 時,它構成最鄰分類器; 當 SPREAD 的值較大時,它構成對幾個訓練樣本的臨近分類器 。 PNN 的層次模型,由輸入層、模式層、求和層、輸出層共 4 層組成 , 其基本結構如圖 1 所示。
f ( X , w i ) = e x p [ ? ( X ? w i ) T ( X ? W i ) / 2 δ ] (1) f(X,w_i)=exp[-(X-w_i)^T(X-W_i)/2\delta]\tag{1} f(X,wi?)=exp[?(X?wi?)T(X?Wi?)/2δ](1)
式中, w i w_i wi?為輸入層到模式層連接的權值 ; δ \delta δ為平滑因子,它對分類起著至關重要的作用。第 3 層是求和層,是將屬于某類的概率累計 ,按式(1)計算 ,從而得到故障模式的估計概率密度函數。每一類只有一個求和層單元,求和層單元與只屬于自己類的模式層單元相連接,而與模式層中的其他單元沒有連接。因此求和層單元簡單地將屬于自己類的模式層單元 的輸出相加,而與屬于其他類別的模式層單元的輸出無關。求和層單元的輸出與各類基于內 核的概率密度的估計成比例,通過輸出層的歸一化處理 , 就能得到各類的概率估計。網絡的輸 出決策層由簡單的闊值辨別器組成,其作用是在各個故障模式的估計概率密度中選擇一個具 有最大后驗概率密度的神經元作為整個系統的輸出。輸出層神經元是一種競爭神經元,每個神經元分別對應于一個數據類型即故障模式,輸出層神經元個數等于訓練樣本數據的種類個 數,它接收從求和層輸出的各類概率密度函數,概率密度函數最大的那個神經元輸出為 1 ,即 所對應的那一類為待識別的樣本模式類別,其他神經元的輸出全為 0 。

圖1.PNN網絡結構

2.變壓器故障診街系統相關背景

運行中的變壓器發生不同程度的故障時,會產生異常現象或信息。故障分析就是搜集變壓器的異常現象或信息,根據這些現象或信息進行分析 ,從而判斷故障的類型 、嚴重程度和故障部位 。 因此 , 變壓器故障診斷的目的首先是準確判斷運行設備當前處于正常狀態還是異常狀態。若變壓器處于異常狀態有故障,則判斷故障的性質、類型和原因 。 如是絕緣故障、過熱故障還是機械故障。若是絕緣故障,則是絕緣老化 、 受潮,還是放電性故障 ;若是放電性故障又 是哪種類型的放電等。變壓器故障診斷還要根據故障信息或根據信息處理結果,預測故障的可能發展即對故障的嚴重程度、發展趨勢做出診斷;提出控制故障的措施,防止和消除故障;提出設備維修的合理方法和相應的反事故措施;對設備的設計、制造、裝配等提出改進意見,為設備現代化管理提供科學依據和建議。

2.1 模型建立

本案例在對油中溶解氣體分 析法進行深入分析后,以改良三比值法為基礎,建立基于概率神經網絡的故障診斷模型。案例數據中的 data. mat 是 33 × 4 維的矩陣,前3列為改良三比值法數值,第 4 列為分類的輸出,也就是故障的類別 。 使用前 23 個樣本作為 PNN 訓練樣本,后10個樣本作為驗證樣本 。

3.基于跳蛛優化的PNN網絡

跳蛛算法原理請參考:https://blog.csdn.net/u011835903/article/details/123832349

利用跳蛛算法對PNN網絡的光滑因子進行優化。適應度函數設計為訓練集與測試集的分類錯誤率:
f i t n e s s = a r g m i n { T r a i n E r r o r R a t e + P r e d i c t E r r o r R a t e } (2) fitness = argmin\{TrainErrorRate + PredictErrorRate\}\tag{2} fitness=argmin{TrainErrorRate+PredictErrorRate}(2)

適應度函數表明,如果網絡的分類錯誤率越低越好。

5.測試結果

跳蛛參數設置如下:

%% 跳蛛參數
pop=20; %種群數量
Max_iteration=20; %  設定最大迭代次數
dim = 1;%維度,即權值與閾值的個數
lb = 0.01;%下邊界
ub = 5;%上邊界

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

從結果來看,跳蛛-pnn能夠獲得好的分類結果。

6.參考文獻

書籍《MATLAB神經網絡43個案例分析》,PNN原理部分均來自該書籍

7.Matlab代碼

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

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

相關文章

7_畫圖常用代碼

plt.figure(dpi200) # 設置 dpi 為 200(可以根據需要調整這個值)

數據結構學習筆記——多維數組、矩陣與廣義表

目錄 一、多維數組(一)數組的定義(二)二維數組(三)多維數組的存儲(四)多維數組的下標的相關計算 二、矩陣(一)特殊矩陣和稀疏矩陣(二)…

從權限跳轉看Activity的data android:scheme

在應用申請懸浮窗權限的時候,可以跳轉到相應的設置界面,并且自動切換到應用的條目,高亮顯示一下, android懸浮窗權限怎么申請 在Android中,要申請懸浮窗權限,需要以下步驟: 在 AndroidManifes…

hp惠普Victus Gaming Laptop 15-fa1025TX/fa1005tx原裝出廠Win11系統ISO鏡像

光影精靈9筆記本電腦原廠W11系統22H2恢復出廠時開箱狀態一模一樣 適用型號:15-fa1003TX,15-fa1005TX,15-fa1007TX,15-fa1025TX 鏈接:https://pan.baidu.com/s/1fBPjed1bhOS_crGIo2tP1w?pwduzvz 提取碼&#xff1a…

每天一道算法題(十一)——滑動窗口最大值_困難(中等)

文章目錄 1、問題2、示例3、解決方法(1)方法1——雙指針 總結 1、問題 給你一個整數數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回 滑動窗…

c++ 函數的申明

1 一個cpp中 兩種情況 1.1 定義 使用 1.2 聲明 使用 定義 2 按 定義 后 直接使用的順序 不用 聲明 函數 #include <iostream> using namespace std;int max(int a, int b) {int max a>b?a:b;return max; }int main() {int a 1;int b 2;cout << max(a, b…

解決vue中引入天地圖顯示不全問題,設置setTimeout即可解決!

index.html中引入天地圖api <script type"text/javascript" src"https://api.tianditu.gov.cn/api?v4.0&tk你的key"></script>map.vue中初始化天地圖 //初始化天地圖 initTMap() {const T window.T;// 3.初始化地圖對象this.tMap new…

flink1.13.6版本的應用程序(maven版)

問題 想要一個指定flink版本的java計算任務hello world最簡工程。 解決 mvn archetype:generate \-DarchetypeGroupIdorg.apache.flink \-DarchetypeArtifactIdflink-quickstart-java \-DarchetypeVersion1.13.6這里直接使用官方mave模版工程&#xff0c;指…

系統架構設計:13 論基于構件的軟件開發

論基于構件的軟件開發 軟件系統的復雜性不斷增長、軟件人員的頻繁流動和軟件行業的激烈竟爭迫使軟件企業提高軟件質量、積累和固化知識財富,并盡可能地縮短軟件產品的開發周期。 集軟件復用、分布式對象計算、企業級應用開發等技術為一體的“基于構件的軟件開發”應運而生,…

LeetCode 2304. 網格中的最小路徑代價:DP

【LetMeFly】2304.網格中的最小路徑代價&#xff1a;DP 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/minimum-path-cost-in-a-grid/ 給你一個下標從 0 開始的整數矩陣 grid &#xff0c;矩陣大小為 m x n &#xff0c;由從 0 到 m * n - 1 的不同整數組成。你可以…

【python基礎(二)】列表詳解

文章目錄 一. 訪問列表元素二. 使用列表中的各個值三. 修改、添加和刪除元素1. 修改列表元素2. 在列表中添加元素3. 從列表中刪除元素 四.組織列表1. sort()對列表永久排序2. sorted()對列表臨時排序3. 倒著打印列表4. 確定列表的長度 列表由一系列按特定順序排列的元素組成。可…

Django框架之Cookie和Session和CBV加裝飾器的三種方法

【一】Cookie與Session Cookie和Session是用來在Web應用程序中跟蹤用戶會話數據的兩種常用技術。 【1】Cookie和Session的發展史 【1】Cookie的發展史&#xff1a; 1994年&#xff0c;網景通信公司推出了第一個瀏覽器Cookie技術。Cookie是存儲在用戶計算機上的小型文本文件…

redis五種基本數據類型

redis存儲任何類型的數據都是以key-value形式保存&#xff0c;并且所有的key都是字符串&#xff0c;所以討論基礎數據結構都是基于value的數據類型 常見的5種數據類型是&#xff1a;String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的類型&#xff0c;v…

linux日志不循環問題診斷

有一臺Linux虛擬機的messages日志文件自2023年7月下旬開始沒有按周為周期重新生成新的日志&#xff0c;一直累積在同一個messages文件中&#xff0c;如下所示&#xff1a; [root logrotate.d]# ls -l /var/log|grep me -rw-r--r-- 1 root root 107170 Nov 15 1…

地圖導航測試用例,你get了嗎?

地圖導航是我們經常使用的工具&#xff0c;能幫助我們指引前進的方向。 接下來&#xff0c;會從功能測試、UI測試、兼容測試、安全測試、網絡測試、性能測試、易用性測試、文檔和國際化語言測試8個方面來編寫地圖導航測試用例。 一 功能測試 輸入起點和終點&#xff0c;驗證…

python3.7升級為更高版本并遷移庫

創建虛擬環境 # 在進入當前的虛擬環境【py3.7的環境】使用pip導出全部包txt文件 pip freeze > all_package.txt# 創建虛擬環境 conda create -n py39 python3.9# 激活新創建的虛擬環境 conda activate py39# 用 pip 一鍵文件安裝 # pip install --help 查看-r命令的作用 # …

LeetCode48旋轉圖像

思路是沿對角線交換元素,之后沿矩陣中線交換元素 參考鏈接 &#x1f517;:【LeetCode 每日一題】48. 旋轉圖像 | 手寫圖解版思路 代碼講解-嗶哩嗶哩】 class Solution {public void rotate(int[][] matrix) {int i0,j0;if(matrixnull){return;}int n matrix.length;// int[]…

優先級隊列(priority_queue)

文章目錄 優先級隊列的定義定義&#xff1a;接口頭文件優先隊列和堆的關系使用&#xff1a;排序的規則容器 仿函數應用 隊列存指針問題&#xff1a; 優先級隊列的定義 定義&#xff1a; 黃色部分是仿函數 接口 頭文件 這里不需要包含其他的頭文件只需要使用隊列的頭文件就可以…

mysql 與 Oracle 的區別,oracle 與 mysql分頁查詢的區別

文章目錄 mysql 與 Oracle 的區別1、并發性2、一致性3、事務4、數據持久性5、提交方式6、邏輯備份7、熱備份8、sql語句的擴展和靈活性9、復制10、性能診斷11、權限與安全12、分區表和分區索引13、管理工具 oracle 與 mysql分頁查詢1.Oracle分頁查詢中提供了一個偽列&#xff1a…

LeetCode算法題解(動態規劃)|LeetCode343. 整數拆分、LeetCode96. 不同的二叉搜索樹

一、LeetCode343. 整數拆分 題目鏈接&#xff1a;343. 整數拆分 題目描述&#xff1a; 給定一個正整數 n &#xff0c;將其拆分為 k 個 正整數 的和&#xff08; k > 2 &#xff09;&#xff0c;并使這些整數的乘積最大化。 返回 你可以獲得的最大乘積 。 示例 1: 輸入…