我无法找到对我试图生成的回归随机森林模型执行交叉验证的方法。
所以我有一个数据集,其中包含 1664 个解释变量(不同的化学性质),一个响应变量(保留时间)。我正在尝试生成一个回归随机森林模型,以便能够在给定保留时间的情况下预测某物的化学性质。
ID RT (seconds) 1_MW 2_AMW 3_Sv 4_Se
4281 38 145.29 5.01 14.76 28.37
4952 40 132.19 6.29 11 21.28
4823 41 176.21 7.34 12.9 24.92
3840 41 174.24 6.7 13.99 26.48
3665 42 240.34 9.24 15.2 27.08
3591 42 161.23 6.2 13.71 26.27
3659 42 146.22 6.09 12.6 24.16
这是我拥有的表格的一个示例。我想基本上根据 1_MW 等(最多 1664 个变量)绘制 RT,所以我可以找到这些变量中哪些是重要的,哪些不是。
我愿意:-
r = randomForest(RT..seconds.~., data = cadets, importance =TRUE, do.trace = 100)
varImpPlot(r)
它告诉我哪些变量很重要,哪些不重要,这很好。但是,我希望能够对我的数据集进行分区,以便对其执行交叉验证。我找到了一个在线教程,解释了如何做到这一点,但针对的是分类模型而不是回归。
我明白你这样做:-
k = 10
n = floor(nrow(cadets)/k)
i = 1
s1 = ((i-1) * n+1)
s2 = (i * n)
subset = s1:s2
定义要进行多少次交叉折叠,以及每个折叠的大小,并设置子集的起始值和结束值。但是,我不知道以后该怎么办。我被告知要循环,但老实说我不知道该怎么做。我也不知道如何将验证集和测试集绘制到同一张图上以描述准确度/错误的水平。
如果您能帮我解决这个问题,我将不胜感激,谢谢!