国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類)

這篇具有很好參考價值的文章主要介紹了【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類)

針對單輸入多輸出分類預(yù)測,可采用回歸的方式進行預(yù)測。
本文采用BP神經(jīng)網(wǎng)絡(luò)進行演示。

一、導(dǎo)入數(shù)據(jù)

【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類),機器學(xué)習(xí),matlab,BP神經(jīng)網(wǎng)絡(luò),單輸入多輸出,分類預(yù)測,多分類標簽
數(shù)據(jù)為1輸入,5輸出,總共482個樣本。
輸出分為五個指標,每個指標共4個評分維度,即【0 10 20 30】

%%  導(dǎo)入數(shù)據(jù)
load data

二、數(shù)據(jù)樣本劃分

保持樣本均勻多樣性,可將數(shù)據(jù)打亂。

temp = randperm(size(data,1));%打亂數(shù)據(jù)順序

若不需要打亂,上面代碼改成:

temp = 1:size(data,1):;%不打亂數(shù)據(jù)

訓(xùn)練樣本數(shù)量可自行設(shè)置 ,本文設(shè)置為422。
代碼如下:

%%  劃分訓(xùn)練集和測試集
temp = randperm(size(data,1));%打亂數(shù)據(jù)順序

NN=422;%訓(xùn)練數(shù)量
P_train = data(temp(1: NN), 6 )';%422個數(shù)據(jù)為訓(xùn)練,剩余為測試,第6列y為輸入
T_train = data(temp(1: NN), 1: 5)';%x為輸出
M = size(P_train, 2);

P_test = data(temp(NN+1: end), 6 )';
T_test = data(temp(NN+1: end), 1: 5)';
N = size(P_test, 2);

三、歸一化設(shè)置

常用歸一化有兩種,即最大最小值歸一化及標準值歸一化。

method=@mapminmax;%最大最小值歸一化
method=@mapstd;%標準值歸一化

歸一化區(qū)間可自行設(shè)置,默認[-1,1],本文采用[0,1]

%%  數(shù)據(jù)歸一化
method=@mapstd;
[p_train, ps_input] = method(P_train, 0, 1);
p_test = method('apply', P_test, ps_input);

[t_train, ps_output] = method(T_train, 0, 1);
t_test = method('apply', T_test, ps_output);

四、模型創(chuàng)建及預(yù)測

熟悉的BP網(wǎng)絡(luò)建模過程,不多介紹。
若涉及多隱含層,可修改[20,20,5]中的數(shù)字。前2個20代表兩層隱含層的神經(jīng)元數(shù) ,后面的5為輸出節(jié)點,根據(jù)本案例數(shù)據(jù)設(shè)置。
若增加或者減少隱含層,需要更改后面對應(yīng)的激活函數(shù)。

net = newff(minmax(p_train), [20,20,5],{'logsig','logsig','purelin'});

代碼如下:

%%  創(chuàng)建網(wǎng)絡(luò)
%net = newff(minmax(p_train), t_train, 10);
net = newff(minmax(p_train), [20,20,5],{'logsig','logsig','purelin'});
%%  設(shè)置訓(xùn)練參數(shù)
net.trainParam.epochs = 2000;     % 迭代次數(shù) 
net.trainParam.goal = 1e-7;       % 誤差閾值
net.trainParam.lr = 0.01;         % 學(xué)習(xí)率
net.trainFcn = 'trainlm';

%%  訓(xùn)練網(wǎng)絡(luò)
net = train(net, p_train, t_train);

%%  仿真測試
t_sim1 = sim(net, p_train);
t_sim2 = sim(net, p_test );

%%  數(shù)據(jù)反歸一化
T_sim1 = method('reverse', t_sim1, ps_output);
T_sim2 = method('reverse', t_sim2, ps_output);

五、分類預(yù)測結(jié)果

因上一步驟進行了正常的回歸預(yù)測,輸出一般為小數(shù)點,且不是限定標簽的數(shù)值。所以需要通過find函數(shù),將回歸預(yù)測的輸出結(jié)果進行分段賦值。
根據(jù)四舍五入的思路,如數(shù)據(jù)如果在5以下,則賦值為0,
如果為[5,15),賦值為10…
依次進行賦值。

for i = 1: 5
[m1,n1]=find(T_sim(i,:)<5);T_sim1(i,n1)=0;
[m2,n2]=find(T_sim(i,:)<15 & T_sim1(i,:)>=5);T_sim1(i,n2)=10;
end

六、評價指標及繪圖

【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類),機器學(xué)習(xí),matlab,BP神經(jīng)網(wǎng)絡(luò),單輸入多輸出,分類預(yù)測,多分類標簽



%%  繪圖
figure
subplot(2, 1, 1)
plot(1: M, T_train(i, :), 'r-*', 1: M, T_sim1(i, :), 'b-o', 'LineWidth', 1)
legend(['x' num2str(i) '真實值'],['x' num2str(i) '預(yù)測值'])
xlabel('預(yù)測樣本')
ylabel('預(yù)測結(jié)果')
string = {'訓(xùn)練集預(yù)測結(jié)果對比'; ['準確率acc=' num2str(acc1(i, :))]};
title(string)
xlim([1, M])
grid

subplot(2, 1, 2)
plot(1: N, T_test(i, :), 'r-*', 1: N, T_sim2(i, :), 'b-o', 'LineWidth', 1)
legend(['x' num2str(i) '真實值'],['x' num2str(i) '預(yù)測值'])
xlabel('預(yù)測樣本')
ylabel('預(yù)測結(jié)果')
string = {'測試集預(yù)測結(jié)果對比';['準確率acc=' num2str(acc2(i, :))]};
title(string)
xlim([1, N])
grid

%%  分割線
disp('**************************')
disp(['下列是輸出', num2str(i)])
disp('**************************')



end

七、測試新數(shù)據(jù)

若輸入為一個新值,則預(yù)測結(jié)果參考下列代碼:

%% 測試新數(shù)據(jù)
p_newtest=21.6;% 輸入新數(shù)據(jù)
p_newtest1 = method('apply',p_newtest, ps_input);
t_simnew = sim(net, p_newtest1);

T_simnew = method('reverse', t_simnew , ps_output);

T_simnew

八、代碼獲取

后臺私信回復(fù)“56期”,可獲取下載鏈接。文章來源地址http://www.zghlxwxcb.cn/news/detail-580392.html

到了這里,關(guān)于【MATLAB第56期】#源碼分享 | 基于MATLAB的機器學(xué)習(xí)算法單輸入多輸出分類預(yù)測模型思路(回歸改分類)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包