所以我有一个数据集,我一直在对其执行机器学习算法。我已经在 180 x 160 的数据集上执行了 MLR、逐步回归、SVM 和随机森林。我正在针对 159 个其他变量(共 179 个案例)对一个变量进行建模。这都是回归建模。我一直在使用 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。有谁知道我做错了什么?

谢谢!

请您参考如下方法:

您需要为 nnet 函数使用选项 linout = TRUE:

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

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!