matlab使用神經網路實現分類功能

2021-08-17 19:13:03 字數 1364 閱讀 3439

實驗步驟:通過load進倆個資料集,手動打標籤,混合後按三七比例分訓練集和測試集,訓練集上訓練出神經網路模型後,在測試集上驗證,計算錯誤率。

load('c:\users\administrator\desktop\rc')%載入資料

load('c:\users\administrator\desktop\rc_1')

[imfaa_g,mini,maxi] = premnmx(imfaa) %歸一化

imfaa_label=[imfaa_g,zeros(length(imfaa_g),1)] %加標籤

[imfaa1_g,mini,maxi] = premnmx(imfaa1)

imfaa1_label =[imfaa1_g,ones(length(imfaa1_g),1)]

rc=[imfaa_label;imfaa1_label]

randindex =randperm(length(rc))

rc_new =rc(randindex,:)%隨機化矩陣

[train, test] = crossvalind('holdout',length(rc_new), 0.3)%切分矩陣,三分測試集

rc_train=rc_new(train,:)%訓練集

rc_test=rc_new(test,:)%測試集

train_output=rc_train(:,end)%訓練集的標籤

train_input=rc_train(:,1:end-1)%x訓練集的特徵

test_input=rc_test(:,1:end-1)%測試集的特徵

test_y=rc_test(:,end)%x測試集的標籤

%訓練神經網路

net=newff(minmax(train_input'),[5,1],,'traingdm');

net.trainparam.epochs=1000;

net.trainparam.lr=0.1;

net.trainparam.goal=0.0000004;

[net,tr]=train(net,train_input',train_output')

y=sim(net,test_input')

%計算神經網路錯誤率

test_y(find(test_y>0.5))=1%通過邏輯矩陣賦值1給大於0.5的位置

test_y(find(test_y<=0.5))=0

y(find(y>0.5))=1

y(find(y<=0.5))=0

c=test_y-y'%倆矩陣相減,不一樣的位置為1或-1

error=sum(abs(c))/length(c)%取絕對值求和得到錯誤樣本數,除以測試樣本數得到錯誤率

線性神經網路 matlab神經網路

自適應線性元件20世紀50年代末由widrow和hoff提出,主要用於線性逼近乙個函式式而進行模式聯想以及訊號濾波 模型識別和控制等。線性神經網路和感知器的區別是,感知器只能輸出兩種可能的值,而線性神經網路的輸出可以取任意值。線性神經網路採用widrow hoff學習規則,即lms least me...

Matlab實現BP神經網路

該實現為 資料探勘 課程的一次作業。資料在 上,所以資料為csv格式。但bp神經網路演算法為最一般的實現,所以有參考價值。close all 關閉開啟的檔案 clear 清除記憶體中的資料 echo on 顯示執行的每一條命令 clc 清除命令列視窗 pause 敲任意鍵開始 定義訓練樣本 p為輸入...

MATLAB神經網路

ai 菌這幾天沉迷於數模的ai菌來補發文章啦。深深地體會到雖然神經網路工具的api已經有了非常完備的封裝,但是資料的預處理真的讓人感覺非常的麻煩。當你把所有的異常點一一清理,有一種 掘地求公升終於爬出大氣層 飛向太空的感覺 雖然ai菌連夢想開始的地方都爬不出去 所以今天就來介紹一下這幾天的收穫吧 a...