我在R中学习plsr
,遇到了几个不同的例子,这些例子让我感到困惑。我看到了以下两种方法拟合和找到最佳组件的两种方法。我只想知道哪一种是正确的方式,并且首选?如何在R中正确使用plsr()?
1)假设我们有一个称为数据的数据帧,它被分成列车数据data.train
和测试数据data.test
。然后PLSR安装为
plsr.fit = plsr(formula, data = data.train, validation = "CV", scale = TRUE)
summary(plsr.fit)
然后根据最小CV
价值得到ncomp
值。
2)而没有任何数据分裂,简单地拟合模型充分数据
plsr(formula, data = data, validation = "CV", scale = TRUE)
summary(plsr.fit)
然后基于最小CV
值越来越ncomp
值。
我感到困惑的部分是第一种方法。由于validation = "CV"
已经包含在内,并且它会自动应用10倍简历,为什么该模型适合训练数据而不是完整数据?是不是在这种情况下,训练数据会再次分成训练和测试数据,并自动应用10倍交叉验证?
“plsr”是您定义的函数,还是来自程序包? – bouncyball
不是,它是内置(偏最小二乘回归)函数,它在'pls'库下。 –