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

标签 r neural-network regression prediction predict

我正在尝试预测自有住房的中位数,这是一个行之有效的例子,给出了很好的结果。
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进行回归(而不是分类)时,我需要设置linout = TRUE来告诉nnet使用线性输出'

nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=10, linout=TRUE, skip=TRUE, MaxNWts=10000, trace=FALSE, maxit=100)
这对我来说效果很好,希望对您有所帮助。

关于r - 预测-回归的神经网络预测相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884183/

相关文章:

java - 神经网络反向传播训练中的误差下降太慢

html - vglm 回归对象 (VGAM) 的 Latex 或 HTML 摘要输出表

r - 如何打印\n 作为文本而不在 R cat 中的引号内创建换行符

r - 在 R 中仅删除带有 NA 的整行

r - 更新数据框列中值的子集

machine-learning - 反向传播神经网络 - 错误不收敛

java - 使用感知器 1 层进行错误学习

r - 选择单行矩阵作为矩阵

python - 如何提高 R 在机器学习中的性能?

R - 在组内使用回归函数