我在R中使用带有滚动窗口的randomForest程序包来预测财务时间序列(股票)的回报。为此,我已经开发了一系列功能,目的是了解它们的相对预测能力。

我面临的挑战是,我无法使用随机森林的可变重要性特征,因为我的大多数特征都与它们的过去高度相关。例如,移动平均线跨越几天的窗口,这意味着它包含我数据集中多个观测值的信息。

这意味着由随机森林生成的袋外样本将与随机森林用来训练我的模型的样本内特征相关。因此,我从中得到的可变的重要性将是高度乐观和过分适合的。

我看到的解决方案是以某种方式在样本外测试集上计算变量重要性,而不是使用OOB交叉验证。目的是确保与训练集绝对不相关。

我的问题:R中是否存在一个软件包,用于从测试集中而不是标准的OOB交叉验证集中计算和提取变量重要性?如果没有,您可以建议实现此目标的方法吗?谢谢您的帮助。

最佳答案

太棒了,您想到了与样本内功能的这些相关性。

确实,在测试集上运行可变的重要性是一个更好的主意。我认为您可以轻松地对此进行编程。这是一些伪代码

check baseline performance metric
for variable in variables:
    random shuffle variable
    check performance metric
    save performance metric to disk
barplot(performance metrics)


您的绩效指标可以是任何东西:交叉熵,准确性,ROC-AUC等

关于r - R中随机森林时间序列的变量重要性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37261673/

10-12 19:09