[英]Trouble with Neuralnet package in R
我正在嘗試使用包Neuronet計算一個神經網絡,以解決回歸問題。 我正在嘗試近似函數:f(x1,x2)= sqrt(x1)+ sin(x2)+ x1 * x2。
這是我的代碼:
library(neuralnet)
library(scatterplot3d)
X1 <- as.data.frame(runif(1000, min = 0 , max = 100))
X2 <- as.data.frame(runif(1000, min = 0 , max = 100))
input <- cbind(X1,X2)
sortie <- sqrt(X1) + sin(X2) + X1*X2
donnee <- cbind(sortie,input)
colnames(donnee) <- c("sortie","entree1","entree2")
f <- as.formula(sortie ~ entree1 + entree2)
net.f <- neuralnet(f , donnee, hidden = c(10,10,10) ,linear.output = FALSE)
這是查看神經網絡輸出散點圖的代碼:
abscisse1 <- 0:100
abscisse2 <- 0:100
net.abscisseformule <- compute(net.f , cbind(abscisse1,abscisse2))
neuralsortie <- c(net.abscisseformule$net.result)
scatterplot3d(abscisse1,abscisse2,neuralsortie)
我很確定結果是錯誤的,因為散點圖看起來不像函數f的散點圖。 我認為問題出在線
f <-as.formula(sortie ~ entree1 + entree2)
這是查看函數散點圖的代碼
x <- seq(0, 100, 1)
y <- seq(0, 100, 1)
z <- sqrt(x) + sin(y) +x*y
scatterplot3d(x,y,z)
這是f的圖https://i.stack.imgur.com/HkpbG.png
這是神經網絡的輸出圖https://i.stack.imgur.com/N38dd.png
有人可以給我一些建議嗎? 非常感謝 !
我找到了我問題的答案。 根據《統計學習的要素》一書(Friedman,Tibshirani和Hastie的著作),在解決回歸問題時,需要在神經網絡的最后一層使用身份函數。 這意味着輸出是上一層的線性組合。 為了使用R進行此操作,需要將“ linear.output”設置為TRUE而不是FALSE。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.