【发布时间】:2017-07-19 21:45:28
【问题描述】:
我正在学习 plsrin R 并遇到几个不同的例子,这让我感到困惑。我已经看到了以下两种方式来拟合和找到最佳组件数量的两种方式。我只是想知道哪些是正确的方法和首选的方法?
1) 假设我们有一个名为 data 的数据框,它分为训练数据 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 倍 CV,为什么该模型适合训练数据,而不是完整数据?在这种情况下,训练数据是否会再次拆分为训练和测试数据,并自动应用 10 倍交叉验证?
【问题讨论】:
-
plsr是您定义的函数还是来自包? -
没有。它是
pls库下的内置(偏最小二乘回归)函数。
标签: r cross-validation