實驗步驟:通過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...