點滴學習,貴在記錄
在做乙個關於水質反演的專案時,常規模型精度較低,因此考慮採用bp神經網路來做反演。我要實現的是基於樣本資料訓練bp神經網路,然後基於此匯入tif影像資料,然後得到水質引數的空間分布影像(帶座標系)。
讀取樣本點。將k個樣本點分成訓練集和測試集,我的樣本點資料為k*4的矩陣,k為樣本點個數,4為波段數。資料需要轉置後並進行歸一化處理才可匯入net模型。建立神經網路採用newff()函式,訓練後的資料性需要進行轉成反演值。
% 神經網路建立
net=
feedforwardnet
(hiddensizes,trainfcn)
hiddensizes:神經元個數,預設單層10個。
trainfcn:訓練函式,預設』trainlm』
% 資料歸一化
[input_train, ps_input]
=mapminmax
(input_train,0,
1);
% 反歸一化
t_sim =
mapminmax
('reverse'
,t_sim,ps_output)
;
模型訓練完成便可做**,對水質引數進行反演
首先讀取影像,
影像為m×n×l的多光譜影像。需要轉成m×n行,l 列的矩陣,然後轉置成l行,m×n列的矩陣,**實現如下
[a,r]
=geotiffread
('f:\demo\demo1.tif'
)info =
geotiffinfo
('f:\demo\demo1.tif'
)%轉為m*n,l矩陣
a =double
(reshape
(a,[info.height*info.width,4]
))%影像轉置
inputimg =a(
:,:)';
歸一化後做**測試,得到反演結果並輸出tif格式的影像。
outimg = sim(net,inputimg)
更新
新版本的matlab裡面,前饋神經網路已經函式已經改為feedforwardnet()
BP神經網路(基於MATLAB)
clc clear all 匯入資料 load s data.mat s含量所用資料 n 12 n 是自變數的個數 m 1 m 是因變數的個數 讀取訓練資料 train num 1600 訓練樣本數 train data s data 1 train num,特徵值歸一化 train input,m...
Matlab實現BP神經網路
該實現為 資料探勘 課程的一次作業。資料在 上,所以資料為csv格式。但bp神經網路演算法為最一般的實現,所以有參考價值。close all 關閉開啟的檔案 clear 清除記憶體中的資料 echo on 顯示執行的每一條命令 clc 清除命令列視窗 pause 敲任意鍵開始 定義訓練樣本 p為輸入...
基於BP神經網路的分類
使用的是乙個簡單的資料集fisheriris,該資料集資料類別分為3類,setosa,versicolor,virginica。每類植物有50個樣本,共150個樣本代表150朵花瓣。每個樣本有4個屬性,分別為花萼長,花萼寬,花瓣長,花瓣寬。其中meas是150 4的矩陣代表著有150個樣本每個樣本有...