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

Posted

技术标签:

【中文标题】预测 - 用于回归的神经网络预测相同的值【英文标题】:Prediction - Neural network for regression predicts same value 【发布时间】:2015-07-05 05:22:21 【问题描述】:

我正在尝试预测自住房屋的中值,这是一个很好的例子。

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。

【问题讨论】:

我明白了,这是由于 linout=TRUE 需要用于连续响应变量。 'nnet.fit 太好了——很高兴看到您解决了问题!我鼓励您使用下面的“发布您的答案”按钮来回答您自己的问题,以便其他人在访问 Stack Overflow 时可以轻松地看到答案。 @josilber - 完成,感谢您告诉我,在这个平台上是新的,所以不知道。 【参考方案1】:

这是由于 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)

这对我来说效果很好,希望对你有帮助。

【讨论】:

以上是关于预测 - 用于回归的神经网络预测相同的值的主要内容,如果未能解决你的问题,请参考以下文章

用于回归的 tensorflow 深度神经网络总是在一批中预测相同的结果

图片无限轮播由于ViewPager的预加载机制所导致的问题

关于通过神经网络进行回归预测的知识总结整理

BP神经网络预测回归-BP多输入多输出预测-Matlab

模糊回归预测基于matlab萤火虫算法优化模糊神经网络回归预测含Matlab源码 2034期

模糊回归预测基于matlab萤火虫算法优化模糊神经网络回归预测含Matlab源码 2034期