2014-12-02 111 views
0

我有一個數據幀,Data,它有10列。前6個是輸入值,後4個是輸出值。神經網絡爲多元迴歸

head(Data) 
x1  x2  x3  x4  x5  x6  y1  y2  y3  y4 
200  400  1.8  100  50  10  3884  3.9 5.98  1.91 

我想用神經網絡通過使用neuralnet包來預測輸出值。當我使用以下代碼時,出現如下錯誤:

model <- neuralnet(Data[1:30,1:6], Data[1:30,7:10], data=Data, hidden=c(5,7), err.fct="ce", linear.output=FALSE) 

Error in varify.variables(data, formula, startweights, learningrate.limit, : 
    (list) object cannot be coerced to type 'double' 

請問您可以告訴我這段代碼有什麼問題嗎?

回答

0

看起來你沒有正確使用neuralnet。

  1. 首先應指定您的公式是這樣的: Y1 + Y2 + Y3 + Y4〜X1 + X2 + X3 + X4 + X5 + 5233

  2. 因爲你要解決一個迴歸問題,你應該使用默認值「sse」對於err.fct,而不是「ce」

  3. 再次,對於迴歸問題,我相信你應該選擇線性激活函數,因此沒有必要指定「linear.output = FALSE 「

所以,你可能想調用neuralnet這樣的:

模型< - neuralnet(Y1 + Y2 + Y3 + Y4〜X1 + X2 + X3 + X4 + X5 + 5233,數據=數據,隱藏= C( 5,7))

此外,在調用neuralnet之前,您可能需要重新調整輸入功能。

查閱此處的文檔: http://cran.r-project.org/web/packages/neuralnet/neuralnet.pdf