日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于蜣螂优化的BP神经网络(分类应用) - 附代码

發布時間:2024/1/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于蜣螂优化的BP神经网络(分类应用) - 附代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于蜣螂優化的BP神經網絡(分類應用) - 附代碼

文章目錄

  • 基于蜣螂優化的BP神經網絡(分類應用) - 附代碼
    • 1.鳶尾花iris數據介紹
    • 2.數據集整理
    • 3.蜣螂優化BP神經網絡
      • 3.1 BP神經網絡參數設置
      • 3.2 蜣螂算法應用
    • 4.測試結果:
    • 5.Matlab代碼

摘要:本文主要介紹如何用蜣螂算法優化BP神經網絡,利用鳶尾花數據,做一個簡單的講解。

1.鳶尾花iris數據介紹

本案例利用matlab公用的iris鳶尾花數據,作為測試數據,iris數據是特征為4維,類別為3個類別。數據格式如下:

特征1特征2特征3類別
單組iris數據5.32.11.21

3種類別用1,2,3表示。

2.數據集整理

iris數據總共包含150組數據,將其分為訓練集105組,測試集45組。如下表所示:

訓練集(組)測試集(組)總數據(組)
10545150

類別數據處理:原始數據類別用1,2,3表示為了方便神經網絡訓練,類別1,2,3分別用1,0,0;0,1,0;0,0,1表示。

當進行數據訓練對所有輸入特征數據均進行歸一化處理。

3.蜣螂優化BP神經網絡

3.1 BP神經網絡參數設置

通常而言,利用智能算法一般優化BP神經網絡的初始權值和閾值來改善BP神經網絡的性能。本案例基于iris數據,由于iris數據維度不高,采用簡單的BP神經網絡。神經網絡參數如下:

圖1.神經網絡結構

神經網絡參數如下:

%創建神經網絡 inputnum = 4; %inputnum 輸入層節點數 4維特征 hiddennum = 10; %hiddennum 隱含層節點數 outputnum = 3; %outputnum 隱含層節點數 net = newff( minmax(input) , [hiddennum outputnum] , { 'logsig' 'purelin' } , 'traingdx' ) ; %設置訓練參數 net.trainparam.show = 50 ; net.trainparam.epochs = 200 ; net.trainparam.goal = 0.01 ; net.trainParam.lr = 0.01 ;

3.2 蜣螂算法應用

蜣螂算法具體原理請參照:https://blog.csdn.net/u011835903/article/details/128280084

蜣螂算法的參數設置為:

popsize = 10;%種群數量Max_iteration = 15;%最大迭代次數 lb = -5;%權值閾值下邊界 ub = 5;%權值閾值上邊界 % inputnum * hiddennum + hiddennum*outputnum 為閾值的個數 % hiddennum + outputnum 為權值的個數 dim = inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;% inputnum * hiddennum + hiddennum*outputnum維度

這里需要注意的是,神經網絡的閾值數量計算方式如下:

本網絡有2層:

第一層的閾值數量為:4*10 = 40; 即inputnum * hiddennum;

第一層的權值數量為:10;即hiddennum;

第二層的閾值數量為:3*10 = 30;即hiddenum * outputnum;

第二層權值數量為:3;即outputnum;

于是可知我們優化的維度為:inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 83;

適應度函數值設定:

本文設置適應度函數如下:
f i t n e s s = a r g m i n ( T r a i n D a t a E r r o r R a t e + T e s t D a t a E r r o r R a t e ) fitness = argmin(TrainDataErrorRate + TestDataErrorRate) fitness=argmin(TrainDataErrorRate+TestDataErrorRate)
其中TrainDataErrorRate,TestDataErrorRate分別為訓練集和測試集的錯誤分類率。適應度函數表明我們最終想得到的網絡是在測試集和訓練集上均可以得到較好結果的網絡。

4.測試結果:

從蜣螂算法的收斂曲線可以看到,整體誤差是不斷下降的,說明蜣螂算法起到了優化的作用:

圖2 蜣螂算法收斂曲線

測試統計如下表所示

測試結果測試集正確率訓練集正確率
BP神經網絡100%95%
蜣螂-BP100%98%

5.Matlab代碼

總結

以上是生活随笔為你收集整理的基于蜣螂优化的BP神经网络(分类应用) - 附代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。