R 中随机森林时间序列的可变重要性

Variable importance for Random Forests time series in R

我使用 R 中的 randomForest 包和滚动 window 来预测金融时间序列(股票)的 returns。我为此开发了一篮子功能,我的目标是了解它们的相对预测能力。

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

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

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

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

哇,太棒了,你想到了这些与样本内特征的相关性。

的确,运行 你在测试集上的变量重要性是个更好的主意。我想你可以很容易地自己编程。这是一些伪代码

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

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