3

所以我有一个数据集,我一直在上面执行机器学习算法。我在一个 180 x 160 的数据集上执行了 MLR、逐步回归、SVM 和随机森林。我正在针对 179 个案例中的 159 个其他变量对一个变量进行建模。这都是回归建模。我一直在使用 caret 包,其中我使用 train 函数使用不同的机器学习算法进行 10 次交叉验证 10 次。我被告知要阅读一篇使用神经网络模型并获得更好结果的论文,所以我一直在尝试找到一种方法来做同样的事情,但使用神经网络模型。

我已经看过以下内容:-

model <- train(RT..seconds.~., data = cadets, method = "AMORE", trControl = ctrl)

但它不起作用。有人告诉我它不起作用,因为火车功能还没有包装 AMORE 包装。所以我想用 nnet 代替:-

model <- train(RT..seconds.~., data = cadets, method = "nnet", trControl = ctrl)

这有效。然而,我得到的 RMSE 值是 171,当我查看我的预测值和观察值时,预测值都只有 1s 和 0.9999s。有谁知道我做错了什么?

谢谢!

4

1 回答 1

2

您需要使用该linout = TRUE功能的选项nnet

model <- train(RT..seconds.~., data = cadets, 
               method = "nnet", trControl = ctrl,
               linout = TRUE)

如果不这样做,则使用 sigmoidal 激活函数,并且所有预测都将被限制在 [0, 1] 上。

于 2014-02-08T03:16:43.180 回答