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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Matlab-bp神经网络

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab-bp神经网络 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、工作流程

  1、加載數(shù)據(jù),產(chǎn)生訓(xùn)練集與測(cè)試集(驗(yàn)證集)

    首先加載樣本,其中樣本的輸入叫做:特征(變量),其輸出值叫做:理想值,將樣本分為訓(xùn)練樣本(學(xué)習(xí)所用)和測(cè)試樣本(效果測(cè)試仿真所用)

    需要注意的是樣本矩陣的列代表的是樣本的個(gè)數(shù),行代表每個(gè)樣本的數(shù)據(jù)

    代碼如下:

    load spectra_data.mat    

    %% 隨機(jī)產(chǎn)生訓(xùn)練集測(cè)試集序列
    temp = randperm(size(attributes,2));
    %產(chǎn)生訓(xùn)練集樣本
    P_train = attributes(:,temp(1:80));%選取前80個(gè)作為訓(xùn)練集樣本
    T_train = strength(:,temp(1:80));
    %產(chǎn)生測(cè)試集樣本
    P_test = attributes(:,temp(81:end));%將80之后的樣本作為測(cè)試集樣本
    T_test = strength(:,temp(81:end));

    %保存測(cè)試集的樣本個(gè)數(shù)

    N = size(P_test,2);

?

  2、數(shù)據(jù)歸一化處理

    由于輸入數(shù)據(jù)的單位不一樣,所以有些數(shù)據(jù)的范圍可能比較大,導(dǎo)致的結(jié)果可能是神經(jīng)網(wǎng)絡(luò)收斂慢、訓(xùn)練時(shí)間長(zhǎng)

    代碼如下:

    %% 數(shù)據(jù)歸一化處理

    %訓(xùn)練集歸一化

    [p_train,ps_input] = mapminmax(P_train,0,1);
    [t_train,ps_output] = mapminmax(T_train,0,1);
    %測(cè)試集輸入數(shù)據(jù)歸一化
    p_test = mapminmax('apply',P_test,ps_input);? %將訓(xùn)練集的歸一化的“標(biāo)準(zhǔn)”應(yīng)用在測(cè)試集的歸一化上

?

  3、神經(jīng)網(wǎng)絡(luò)的創(chuàng)建、神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整、神經(jīng)網(wǎng)絡(luò)的訓(xùn)練、神經(jīng)網(wǎng)絡(luò)的仿真、仿真結(jié)果的反歸一化

    代碼如下:

?

    %% BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建、訓(xùn)練及仿真測(cè)試
    %創(chuàng)建網(wǎng)絡(luò)
    net = newff(p_train,t_train,9);%創(chuàng)建一個(gè)具有9個(gè)神經(jīng)元的bp神經(jīng)網(wǎng)絡(luò)
    %設(shè)置訓(xùn)練參數(shù)
    net.trainParam.epochs = 1000;%最多循環(huán)次數(shù)為1000次
    net.trainParam.goal = 1e-3;%目標(biāo)誤差小于。。。
    net.trainParam.lr = 0.01;%學(xué)習(xí)率設(shè)定為0.01
    %訓(xùn)練網(wǎng)絡(luò)
    net = train(net,p_train,t_train);
    %仿真測(cè)試
    t_sim = sim(net,p_test);
    %數(shù)據(jù)反歸一化
    T_sim = mapminmax('reverse',t_sim,ps_output);

?

  4、神經(jīng)網(wǎng)絡(luò)的性能評(píng)價(jià)(相對(duì)誤差計(jì)算、決定系數(shù)計(jì)算)

    代碼如下:    

    %% 性能評(píng)價(jià)
    %相對(duì)誤差
    error = abs(T_sim - T_test)./T_test;
    %決定系數(shù)
    R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) -     (sum(T_test))^2));?

  5、結(jié)果對(duì)比、繪圖處理

    代碼如下:    

    %% 結(jié)果對(duì)比
    result = [T_test' T_sim' error']

?

    %% 繪圖
    figure
    plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
    legend('標(biāo)簽','標(biāo)簽')
    xlabel('標(biāo)簽')
    ylabel('標(biāo)簽')
    string = {'標(biāo)題'};
    title(string)

?

轉(zhuǎn)載于:https://www.cnblogs.com/KZLEARNER/p/8641051.html

總結(jié)

以上是生活随笔為你收集整理的Matlab-bp神经网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。