我无法找到对我尝试生成的回归随机森林模型执行交叉验证的方法。
因此,我有一个数据集,其中包含 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,这样我就可以找到这些变量中哪些重要,哪些不重要。
I do:-
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
定义要进行的交叉折叠次数以及每次折叠的大小,并设置子集的起始值和结束值。但是,我不知道之后要做什么。有人告诉我要循环,但老实说我不知道该怎么做。我也不知道如何将验证集和测试集绘制到同一个图表上以描述准确性/错误水平。
如果您能帮我解决这个问题,我将不胜感激,谢谢!