午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

基于支持向量機(jī)SVM和MLP多層感知神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測(cè)matlab仿真

 簡(jiǎn)簡(jiǎn)單單做算法 2023-12-09 發(fā)布于海南

1.算法運(yùn)行效果圖預(yù)覽

  

  

  

  

  

  

  

2.算法運(yùn)行軟件版本

matlab2022a

3.算法理論概述

       支持向量機(jī)(SVM)和多層感知器(MLP)是兩種常用的機(jī)器學(xué)習(xí)算法,它們?cè)跀?shù)據(jù)預(yù)測(cè)和分類任務(wù)中都有廣泛的應(yīng)用。下面將詳細(xì)介紹這兩種算法的原理和數(shù)學(xué)公式。

一、支持向量機(jī)(SVM)

      支持向量機(jī)是一種二分類算法,其基本思想是在特征空間中找到一個(gè)最優(yōu)超平面,使得該超平面能夠?qū)⒉煌悇e的數(shù)據(jù)點(diǎn)盡可能地分開(kāi)。具體來(lái)說(shuō),對(duì)于一個(gè)二分類問(wèn)題,假設(shè)數(shù)據(jù)集包含n個(gè)樣本{(x1, y1), (x2, y2), ..., (xn, yn)},其中xi是輸入特征向量,yi是對(duì)應(yīng)的類別標(biāo)簽(+1或-1)。SVM的目標(biāo)是找到一個(gè)最優(yōu)超平面wx+b=0,使得該超平面能夠?qū)⒉煌悇e的數(shù)據(jù)點(diǎn)盡可能地分開(kāi),同時(shí)使得超平面兩側(cè)的空白區(qū)域(即“間隔”)最大化。

在數(shù)學(xué)上,SVM的優(yōu)化問(wèn)題可以表示為以下形式:

min 1/2 ||w||^2 + C ∑ ξ_i

s.t. y_i (w^T x_i + b) ≥ 1 - ξ_i, i=1,2,...,n

ξ_i ≥ 0, i=1,2,...,n

       其中,w是超平面的法向量,b是超平面的截距,C是一個(gè)懲罰參數(shù),用于控制誤分類的懲罰力度,ξ_i是第i個(gè)樣本的松弛變量,用于容忍一些不可分的樣本。該優(yōu)化問(wèn)題的目標(biāo)是最小化超平面的法向量長(zhǎng)度(即||w||^2)和誤分類的懲罰項(xiàng)(即C ∑ ξ_i)。

       對(duì)于非線性可分的情況,可以通過(guò)核函數(shù)將輸入特征映射到高維空間,使得在高維空間中數(shù)據(jù)變得線性可分。此時(shí),優(yōu)化問(wèn)題中的內(nèi)積運(yùn)算需要用核函數(shù)來(lái)替代。常見(jiàn)的核函數(shù)包括線性核、多項(xiàng)式核和高斯核等。

二、多層感知器(MLP)

       多層感知器是一種前向傳播的神經(jīng)網(wǎng)絡(luò),其基本結(jié)構(gòu)包括輸入層、隱藏層和輸出層。在數(shù)據(jù)預(yù)測(cè)任務(wù)中,MLP通過(guò)學(xué)習(xí)輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的非線性映射關(guān)系,來(lái)對(duì)新的輸入數(shù)據(jù)進(jìn)行預(yù)測(cè)。具體來(lái)說(shuō),對(duì)于一個(gè)回歸問(wèn)題,假設(shè)數(shù)據(jù)集包含n個(gè)樣本{(x1, y1), (x2, y2), ..., (xn, yn)},其中xi是輸入特征向量,yi是對(duì)應(yīng)的輸出值。MLP的目標(biāo)是找到一個(gè)最優(yōu)的網(wǎng)絡(luò)參數(shù)θ,使得對(duì)于任意一個(gè)新的輸入x,都能夠輸出一個(gè)盡可能接近真實(shí)值y的預(yù)測(cè)值。

在數(shù)學(xué)上,MLP的預(yù)測(cè)過(guò)程可以表示為以下形式:

y_pred = f(x; θ)

        其中,f(·)表示MLP的網(wǎng)絡(luò)結(jié)構(gòu),θ表示網(wǎng)絡(luò)參數(shù)。通常,MLP的網(wǎng)絡(luò)結(jié)構(gòu)包括多個(gè)隱藏層和非線性激活函數(shù),如ReLU、sigmoid或tanh等。網(wǎng)絡(luò)參數(shù)的優(yōu)化通常采用梯度下降算法及其變種,如批量梯度下降、隨機(jī)梯度下降和小批量梯度下降等。在訓(xùn)練過(guò)程中,通過(guò)反向傳播算法計(jì)算損失函數(shù)對(duì)網(wǎng)絡(luò)參數(shù)的梯度,并根據(jù)梯度更新網(wǎng)絡(luò)參數(shù),以最小化預(yù)測(cè)誤差。常見(jiàn)的損失函數(shù)包括均方誤差損失、交叉熵?fù)p失等。

        需要注意的是,MLP的訓(xùn)練過(guò)程容易陷入局部最優(yōu)解和過(guò)擬合等問(wèn)題。為了避免這些問(wèn)題,可以采用一些正則化技術(shù),如L1正則化、L2正則化和dropout等。此外,還可以采用一些集成學(xué)習(xí)技術(shù),如bagging和boosting等,以提高模型的泛化能力和魯棒性。

4.部分核心程序

%SVM
% 以下是關(guān)于SVM模型的設(shè)置。  
% 并行計(jì)算設(shè)置,使用多核CPU進(jìn)行計(jì)算。  
svm_opt      = statset('UseParallel',true);
 
tic% 開(kāi)始計(jì)時(shí),計(jì)算模型訓(xùn)練時(shí)間。  
% 使用fitcsvm函數(shù)訓(xùn)練SVM模型,其中標(biāo)準(zhǔn)化設(shè)為真,核函數(shù)、多項(xiàng)式階數(shù)、盒子約束等參數(shù)進(jìn)行設(shè)置。結(jié)果為最優(yōu)的SVM模型svm_optimal。  
svm_models   = fitcsvm(xTrain,yTrain, 'Standardize', true,...
                                     'KernelFunction',"polynomial",...% "polynomial"核函數(shù)是一個(gè)多項(xiàng)式核函數(shù),它對(duì)應(yīng)于無(wú)窮維特征空間中的點(diǎn)積。  
                                     'PolynomialOrder' ,2,...% "2"定義了多項(xiàng)式的階數(shù)
                                     'BoxConstraint',0.8);%"0.8"定義了約束條件。  
% 計(jì)算并存儲(chǔ)SVM模型訓(xùn)練時(shí)間。
Time_svm     = toc;  
% 對(duì)測(cè)試集進(jìn)行預(yù)測(cè)和評(píng)價(jià)。  
yr_svm       = predict(svm_models, xTest);
 
........................................................................
%MLP
% 以下是關(guān)于多層感知器(MLP)模型的設(shè)置。  
% MLP的超參數(shù)
mlp_models.divideFcn = 'dividerand';  %將數(shù)據(jù)隨機(jī)劃分  
mlp_models.divideMode = 'sample';     %對(duì)每個(gè)樣本進(jìn)行劃分  
mlp_models.divideParam.trainRatio = 0.85;% 訓(xùn)練集占85%  
mlp_models.divideParam.valRatio   = 0.15;% 驗(yàn)證集占15%  
% 創(chuàng)建一個(gè)有35個(gè)隱藏層節(jié)點(diǎn)的模式識(shí)別神經(jīng)網(wǎng)絡(luò),訓(xùn)練函數(shù)為'trainrp'(反向傳播) 
mlp_models = patternnet(35, 'trainrp'); 
mlp_models.trainParam.lr = 0.004;% 設(shè)置學(xué)習(xí)率為0.004 
mlp_models.trainParam.mc = 0.35;% 設(shè)置動(dòng)量系數(shù)為0.35  
% 設(shè)置第一層的傳遞函數(shù)為'transig'(Sigmoid函數(shù))  
mlp_models.trainParam.epochs=300;% 設(shè)置訓(xùn)練次數(shù)為300次  
tic% 開(kāi)始計(jì)時(shí),計(jì)算模型訓(xùn)練時(shí)間。
 % 使用訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,結(jié)果存儲(chǔ)在net中,同時(shí)返回訓(xùn)練記錄tr,預(yù)測(cè)輸出y和誤差e。  
..........................................................................
figure
plot(xSVM,ySVM,'r')
hold on
plot(xMLP,yMLP,'b')
legend('SVM','MLP')
xlabel('FP'); 
ylabel('TP');
title('ROC曲線')
grid on
 
 
figure
bar([aucSVM,aucMLP]);
xlabel('模型類型');
ylabel('R auc');
xticklabels({'SVM','MLP'});
ylim([0.75,1]);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    該文章已關(guān)閉評(píng)論功能
    類似文章 更多