正态分布和随机森林

数据挖掘 scikit-学习 回归 随机森林 过拟合 分配
2022-01-26 11:20:19

我在数据帧(600k 行)中有一个大表,其中有 y 列(我要预测的变量)和其他 4 个其他列是 X。我运行RF 回归器当我在训练和测试。

然而,当我试图预测另一组数据(非常相似,有 1M 行)时,我得到了 0.65 的分数。 所以我认为这是过度拟合。当我试图理解它为什么会发生时,我回到了 y 列的分布,它看起来像这样:

在此处输入图像描述

我的问题是,是不是因为我的数据没有正态分布(或非常偏斜......)我的模型性能很差?所有变量都需要服从正态分布吗?随机森林回归的分数是如何计算的?id 值为 0.25 并且 predict 为 0.26 它算作正确的预测吗?

1个回答

如果您使用随机森林等基于树的算法,则数据分布应该不是问题。线性算法更依赖于变量的分布。要检查您是否过拟合,可以尝试预测您的训练数据并将结果与​​测试数据进行比较。分数取决于您的评估指标。如果你使用scikit-learn你得到 R^2 作为你的指标。

系数 R^2 定义为 (1 - u/v),其中 u 是残差平方和 ((y_true - y_pred) ** 2).sum(),v 是总平方和 ((y_true - y_true.mean()) ** 2).sum()。