在PCR函数R PLS包中使用预定义拆分

时间:2019-03-27 18:54:36

标签: r cross-validation pls

为了确保良好的总体代表性,我从训练数据中创建了自定义验证集。但是,我不确定如何在R中的PCR中进行交互

我尝试在segments参数中添加一个列表,每个列表的索引类似于您在python预定义的splits cv迭代器中执行的操作,该迭代器可以运行但需要很长时间。所以我觉得我一定在某个地方出错了

 pcr(y~X,scale=FALSE,data=tdata,validation="CV",segments=test_fold)

其中,测试折叠是包含属于索引的验证集的列表

例如,如果训练数据由9个样本组成,而我想将前三个样本用作对儿子的第一个验证集

test_fold<-c(1,1,1,2,2,2,3,3,3) 

这会运行,但是非常慢,如果我执行常规的“ CV”,它会在几分钟内运行。到目前为止,结果看起来还不错,但是我需要进行一千多次运行,并且花费了1个小时才能通过一个。因此,如果有人知道我可以如何加快速度,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

因此,segments参数必须是多个向量的列表。因此,如果我希望前三个出现在第一个验证集中,然后再使用9个样本,则接下来的三个放在第二个验证集中,依此类推

test_vec<-list(c(1,2,3),c(4,5,6),c(7,8,9))