我找不到对我尝试生成的回归随机森林模型执行交叉验证的方法。

因此,我有一个包含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.randomForestnewdata将返回袋外预测。

关于r - 如何在R中执行随机森林/交叉验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19760169/

10-13 03:06