テクスチャ、バルク密度、1 つまたは 2 つの保水などのより拡張された入力データに限定して使用して、van genuchten 保水パラメーター (theta_r、thera_s、alpha、n) の推定を予測するニューラル ネットワーク モデルを設計しています。R プロジェクトでのニューラル ネットワークの調査 RSNNS パッケージを見つけ、隠れユニットの数と学習率を調整して、複数の多層パーセプトロン (MLP) を作成およびトレーニングしました。これらのモデルの RMSE のトレーニングとテストで特徴付けられる一般的なパフォーマンスは、非常に貧弱でランダムです。実際、バイアスを回避し、ほぼ対数正規分布を説明するために、alpha および n パラメータの対数変換値を使用しましたが、これはあまり役に立ちません :( . nnet と caret パッケージを使用するように勧められましたが、コードを適応させるのに苦労しました。何が間違っているのかわかりません。
#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)))