如何使用 ropls 包拆分成 80%-20% 的训练和测试集?

问题描述

我第一次尝试使用 ropls 包来执行 PLS-DA 和 OPLS-DA 预测模型,正如我在其文档中看到的那样,该算法提供了选项 subset="odd",它将数据分成两个相等的大小,所以 50%-50%。问题是我需要将我的数据分成 80% 的训练和 20% 的测试,正如我所读到的,它说你可以使用所需子集的索引,但我没能做到。我试过手动执行拆分,然后提取索引并在算法中使用该子集,但由于我对编程非常陌生,恐怕我做得不对......它总是告诉我:错误:“子集”必须设置为“奇数”或“x”行号的整数向量

有人可以帮我吗?非常感谢!!

到目前为止我尝试过的代码看起来像这样(抱歉,如果它是一团糟!):

set.seed(12345)

n_train<-0.8

n<-nrow(cancerx)

train<-sample(n,floor(n*n_train))

trainrf<-cancerx[train,]

testrf<-cancerx[-train,]

#PLS-DA predict

plsda1<-opls(cancerx[-1],cancerx$label,predI=1,subset="train")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)