1
我正在設計一個神經網絡模型,使用限制於更多擴展輸入數據(如紋理,體積密度等)來預測van genuchten保水參數(theta_r,thera_s,alpha,n)和一個或兩個保水。研究R項目中的神經網絡我發現了RSNNS包,並創建並訓練了多個多層感知器(MLP),並調整了隱藏單元的數量和學習率。這些模型的訓練和測試RMSE的一般性能非常差和隨機,事實上,我使用對數轉換值的alpha和n參數來避免偏差並考慮它們的近似對數正態分佈,但這並沒有多大幫助:我建議用NNET和尖包工作,但我有麻煩適應的代碼,我不知道我做錯了什麼,有何建議?caret :: train:指定訓練數據參數
#input dataset
basic <- read.table(url("https://dl.dropboxusercontent.com/s/m8qe4k5swz1m3ij/basic.txt?dl=1&token_hash=AAH6Z3d6fWTLoQZYi04Ys72sdufdERE5gm4v7eF0cgMlkQ"), header=T, sep=" ")
#output dataset
fitted <- read.table(url("https://dl.dropboxusercontent.com/s/rjx745ej80osbbu/fitted.txt?dl=1&token_hash=AAHP1zcPQyw4uSe8rw8swVm3Buqe3TP7I1j-4_SOeeUTvw"), header=T, sep=" ")
# Use log-transformed values of alpha and n output parameters
fitted$alpha <- log(fitted$alpha)
fitted$n <- log(fitted$n)
#Fit model with caret package
library(caret)
model <- train(x = basic, y = fitted, method='nnet', linout=TRUE, trace = FALSE,
#Grid of tuning parameters to try:
tuneGrid=expand.grid(.size=c(1,5,10),.decay=c(0,0.001,0.1)))
我不不明白,你的問題是什麼? – David
是否有可能使用插入符號包對更多輸出參數進行NN訓練? – user2806134
好的,我明白了 - 我會稍微爲你發佈一個答案。 – David