fbprophet - 添加回归器

数据挖掘 Python 回归 线性回归
2022-03-11 13:37:49

在学术界的线性回归课程中,有人教导说,在模型中包含琐碎/不相关的特征会降低其更准确地预测的能力。

在 fbprophet 中,有一个函数 add_regressor(),它允许我们向模型添加额外的回归量。

我想知道: - 有没有办法检查添加的参数/功能是否真的改进了模型或者它实际上是微不足道的?- 在向 fbprophet 添加回归器的过程中我应该寻找什么?

当然,我更喜欢一种更直观、更智能的方法,而不是简单地检查有无添加回归量的评估指标,因为改进可能只是噪声并导致过度拟合,从而降低了对看不见的数据进行泛化的能力。

2个回答

不,没有什么比重新校准模型并查看它是否能提高性能更好的了。大多数技术将近似于您对主模型所做的事情。如果您碰巧找到了一个更简单的模型,可以完美地解释哪个变量在您的主模型中发挥作用以及如何发挥作用,那么您可能应该只使用更简单的模型。

基本的先验技术(查看与输出的相关性,与其他变量)在复杂的机器学习模型中会失败。

如今,一种实用的方法是查看特征重要性。这些技术取决于您使用的模型,并将为每个实例的每个特征提供一个重要性值。如果某个功能对所有实例的重要性都较低,则应尝试将其删除。(你可以通过批量 k 个最不重要的特征来做到这一点)。

在线性回归模型中,模型的欠规范会导致所谓的“遗漏变量偏差”。通常,拥有一个更大的模型比一个带有遗漏变量的模型要好。

假设您的模型如下所示:

y=Xβ+u,

而真正的模型(数据生成过程,DGP)是:

y=Xβ+Zγ+u.

在这种情况下,当你解决

E(β^)=(XX)1Xy

你代替y与真实模型(真实y),你最终得到:

E(β^)=(XX)1X(Xβ+Zγ+u),
E(β^)=β+(XX)1XZγ+E((XX)1Xu),
E(β^)=β+(XX)1XZγ.

如果最后一个方程的第二项不为零,β^是有偏见的。只有当XZ=O(当两组回归量相互正交时,因此回归量没有相关性)或者如果γ=0(在这种情况下,模型没有被低估)。

检查变量是否实际添加到模型的标准选项是查看调整后的R2以及AkaikeSchwarz标准。万一调整R2添加附加变量/特征后上升,这表明添加变量是有用的。Akaike/Schwarz 更适合嵌套模型。对于这些标准,您将选择具有最低值的模型。