中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于BP_Adaboost的強分類器設計是怎樣的

發布時間:2021-12-09 16:54:56 來源:億速云 閱讀:125 作者:柒染 欄目:大數據

本篇文章為大家展示了基于BP_Adaboost的強分類器設計是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。

其算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最后將每次訓練得到的分類器融合起來,作為最后的決策分類器。


這里采用BP神經網絡作為弱分類器,反復訓練BP神經網絡預測樣本輸出,通過Adaboost算法得到多個BP神經網絡弱分類器組成的強分類器。


%%清空環境變量

clc

clear

基于BP_Adaboost的強分類器設計是怎樣的  

%% 下載數據

load data input_train output_train input_test output_test


%% 權重初始化

[mm,nn]=size(input_train);

D(1,:)=ones(1,nn)/nn;


%% 弱分類器分類

K=10;

for i=1:K

    

    %訓練樣本歸一化

    [inputn,inputps]=mapminmax(input_train);

    [outputn,outputps]=mapminmax(output_train);

    error(i)=0;

    

    %BP神經網絡構建

    net=newff(inputn,outputn,6);

    net.trainParam.epochs=5;

    net.trainParam.lr=0.1;

    net.trainParam.goal=0.00004;

    

    %BP神經網絡訓練

    net=train(net,inputn,outputn);

基于BP_Adaboost的強分類器設計是怎樣的  

    %訓練數據預測

    an1=sim(net,inputn);

    test_simu1(i,:)=mapminmax('reverse',an1,outputps);

    

    %測試數據預測

    inputn_test =mapminmax('apply',input_test,inputps);

    an=sim(net,inputn_test);

    test_simu(i,:)=mapminmax('reverse',an,outputps);

    

    %統計輸出效果

    kk1=find(test_simu1(i,:)>0);

    kk2=find(test_simu1(i,:)<0);

    

    aa(kk1)=1;

    aa(kk2)=-1;

    

    %統計錯誤樣本數

    for j=1:nn

        if aa(j)~=output_train(j)

            error(i)=error(i)+D(i,j);

        end

    end

    

    %弱分類器i權重

    at(i)=0.5*log((1-error(i))/error(i));

    

    %更新D值

    for j=1:nn

        D(i+1,j)=D(i,j)*exp(-at(i)*aa(j)*test_simu1(i,j));

    end

    

    %D值歸一化

    Dsum=sum(D(i+1,:));

    D(i+1,:)=D(i+1,:)/Dsum;

    

end


%% 強分類器分類結果

output=sign(at*test_simu);


%% 分類結果統計

%統計強分類器每類分類錯誤個數

kkk1=0;

kkk2=0;

for j=1:350

    if output(j)==1

        if output(j)~=output_test(j)

            kkk1=kkk1+1;

        end

    end

    if output(j)==-1

        if output(j)~=output_test(j)

            kkk2=kkk2+1;

        end

    end

end


disp('第一類分類錯誤  第二類分類錯誤  總錯誤');

% 窗口顯示

disp([kkk1 kkk2 kkk1+kkk2]);

基于BP_Adaboost的強分類器設計是怎樣的  

plot(output)

hold on

plot(output_test,'g')


%統計弱分離器效果

for i=1:K

    error1(i)=0;

    kk1=find(test_simu(i,:)>0);

    kk2=find(test_simu(i,:)<0);

    

    aa(kk1)=1;

    aa(kk2)=-1;

    

    for j=1:350

        if aa(j)~=output_test(j)

            error1(i)=error1(i)+1;

        end

    end

end

disp('統計弱分類器分類效果');

disp(error1)


disp('強分類器分類誤差率')

disp((kkk1+kkk2)/350)


disp('弱分類器分類誤差率')

disp((sum(error1)/(K*350)))

上述內容就是基于BP_Adaboost的強分類器設計是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双流县| 屯昌县| 阿勒泰市| 新竹县| 板桥市| 上饶县| 平昌县| 阳春市| 兖州市| 抚州市| 苏尼特右旗| 钦州市| 东城区| 岑溪市| 喀喇沁旗| 古蔺县| 芮城县| 蒲城县| 交城县| 雷州市| 镇江市| 武陟县| 西昌市| 哈尔滨市| 兴化市| 札达县| 高阳县| 宁安市| 启东市| 当涂县| 逊克县| 卓资县| 交口县| 巴青县| 东安县| 锦屏县| 台东县| 青川县| 自治县| 青岛市| 绥滨县|