我正在处理相当高维数据(光谱数据),我使用 PCA 对其进行预处理,然后应用所选的学习算法。当我使用线性回归时,使用 Caret 包,我得到一个然而,在我的 300 个 PCA 组件的测试集上,当我在同一集上使用随机森林时:
modelFit <- train(train$age~.,data=trainPC[,1:300],method = "rf")
我的表现更差,与在测试集上要低得多。RMSE 对于随机森林与线性回归也没有那么好。
为清楚起见 - 我正在使用 Caret 的内置交叉验证,并正在评估独立测试集的性能。
当我使用xgboost、神经网络等时,我得到了类似的结果。我知道不同的机器学习算法在不同的情况下可以表现得更好,但我仍然对线性回归似乎表现最好感到惊讶,这让我怀疑我正在接近事情不正确,或使用 Caret 包时出现基本错误。
我也尝试过使用 PLS(用于我的特定示例的主要特征选择方法)并得到一个. 文献表明神经网络/非线性方法应该优于我正在使用的线性方法,但目前,我无法重现这一点。
有人对此有任何建议/提示吗?我还附上了我正在使用的数据集(我正在尝试预测年龄) -数据链接
我还附上了我当前用于学习的 R 脚本 - 任何帮助将不胜感激!- R 脚本