预测 - 神经网络用于回归预测相同的值

9
我正在尝试预测自住房屋的中位数价值,这是一个可行的示例,结果良好。

https://heuristically.wordpress.com/2011/11/17/using-neural-network-for-regression/

library(mlbench)

data(BostonHousing)
require(nnet)

# scale inputs: divide by 50 to get 0-1 range
nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=2) 

# multiply 50 to restore original scale
nnet.predict <- predict(nnet.fit)*50 

nnet.predict
        [,1]
1   23.70904
2   23.70904
3   23.70904
4   23.70904
5   23.70904
6   23.70904
7   23.70904
8   23.70904
9   23.70904
10  23.70904
11  23.70904
12  23.70904
13  23.70904
14  23.70904
15  23.70904

我在所有506个观测值的预测中得到了23.70904相同的值?为什么会这样?我做错了什么吗?
我的R版本是3.1.2。

2
我明白了,这是由于需要针对连续响应变量使用linout=TRUE参数所导致的。 'nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=10, linout=TRUE, skip=TRUE, MaxNWts=10000, trace=FALSE, maxit=100) ' 这行代码完成了任务。 - Sam
1
太好了——很高兴看到你解决了问题!我鼓励你使用下面的“发布答案”按钮回答自己的问题,这样其他人在访问 Stack Overflow 时就可以轻松地看到答案。 - josliber
@josilber - 好的,谢谢告诉我,我是新来的这个平台还不知道。 - Sam
1个回答

10

这是由于需要针对连续响应变量使用linout = TRUE。由于我正在使用nnet进行回归(而不是分类)问题,因此需要设置linout = TRUE来告诉nnet使用线性输出。

nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=10, linout=TRUE, skip=TRUE, MaxNWts=10000, trace=FALSE, maxit=100)

这对我很有帮助,希望能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接