29

予測にニューラルネットを使用しようとしています。

X をいくつか作成します。

x <- cbind(seq(1, 50, 1), seq(51, 100, 1))

Y を作成:

y <- x[,1]*x[,2]

彼らに名前を付けてください

colnames(x) <- c('x1', 'x2')
names(y) <- 'y'

data.frame を作成します。

dt <- data.frame(x, y)

そして今、私はエラーが発生しました

model <- neuralnet(y~., dt, hidden=10, threshold=0.01)

terms.formula(式) のエラー: '.' 式であり、「データ」引数なし

たとえば、lm(線形モデル) ではこれが機能します。

4

3 に答える 3

50

私のコメントが述べているように、これはエクスポートされていない関数のバグのようneuralnet:::generate.initial.variablesです。回避策としてdt、 を除くyの名前から長い数式を作成します。

n <- names(dt)
f <- as.formula(paste("y ~", paste(n[!n %in% "y"], collapse = " + ")))
f

## gives
> f
y ~ x1 + x2

## fit model using `f`
model <- neuralnet(f, data = dt, hidden=10, threshold=0.01)

> model
Call: neuralnet(formula = f, data = dt, hidden = 10, threshold = 0.01)

1 repetition was calculated.

        Error Reached Threshold Steps
1 53975276.25     0.00857558698  1967
于 2013-07-22T18:33:57.843 に答える
0

数式を展開するには

f <- formula(terms(f, data= dt))

またはさらに短い

f <- formula(dt, f)

どこfで は式で、dtはデータです。


たとえば、元の式は次のようになります。

f <- as.formula("y ~ .")
于 2021-09-21T12:32:45.587 に答える