我找不到对我尝试生成的回归随机森林模型执行交叉验证的方法。
因此,我有一个包含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等绘制RT(最多1664个变量),因此我可以发现这些变量中哪些是重要的,哪些不是。
我做:-
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
定义要进行的交叉折叠的数量以及每个折叠的大小,并设置子集的开始和结束值。但是,我不知道以后该怎么办。我被告知要遍历,但老实说我不知道该怎么做。我也不知道如何将验证集和测试集绘制到同一张图上以描述准确性/错误级别。
如果您能帮助我,我将非常感激,谢谢!
最佳答案
从source:
特别是,如果没有给出predict.randomForest
,newdata
将返回袋外预测。
关于r - 如何在R中执行随机森林/交叉验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19760169/