如何在不欠拟合或过拟合的情况下实现回归模型

Posted

技术标签:

【中文标题】如何在不欠拟合或过拟合的情况下实现回归模型【英文标题】:How to achieve regression model without underfitting or overfitting 【发布时间】:2020-07-01 17:51:19 【问题描述】:

我有我的大学项目,我得到了一个dataset,它几乎所有的特征都与目标的相关性非常弱(只有一个特征与目标具有中等相关性)。它的分布也不正常。我已经尝试应用它导致underfitting 的简单模型线性回归,然后我应用simple random forest regressor 但它导致overfitting 但是当我应用random forest regressor 并使用randomsearchcv 进行优化时花了很长时间。有没有什么方法可以在不欠拟合或过拟合的情况下获得不那么好的dataset 的体面模型?还是根本不可能?

【问题讨论】:

【参考方案1】:

好吧,坦率地说,如果你能在没有欠拟合或过拟合的情况下拟合一个模型,那么你就已经完全解决了 AI。

不过有一些建议:

随机森林的过度拟合

就个人而言,我会尝试破解这条路线,因为您提到您的数据不是强相关的。修复过度拟合通常比修复欠拟合更容易,这也很有帮助。

尝试查看您的树输出。如果您使用的是pythonsci-kit learnexport_graphviz 可能会有所帮助。

尝试减小树的最大深度。

尝试增加一棵树必须具有的最大样本数才能进行分裂(或者类似地,增加一个叶子应具有的最小样本数)。

尝试增加 RF 中的树数。

线性回归欠拟合

添加更多参数。如果您有变量 a、b、... 等,添加它们的多项式特征,即 a^2、a^3 ... b^2、b^3 ... 等可能会有所帮助。如果你添加了足够多的多项式特征,你应该能够过拟合——尽管这并不一定意味着它可以很好地拟合训练集(RMSE 值)。

尝试根据预测值 (y) 绘制一些变量。也许您可以看到非线性模式(即对数关系)。

您对数据有什么了解吗?也许一个变量是倍数,或者两个变量之间的除法可能是一个很好的指标。

如果您正在对回归进行正则化(或软件自动应用),请尝试减少正则化参数。

【讨论】:

有什么方法可以在没有 RandomSearchCV 的情况下找到适合我的 RF 的最佳参数? @potatostudent 是的,但是如果没有您的数据,就很难知道。我建议稍微解释一下您的数据,查看 RF 的一些树输出,以确定适合测试的超参数类型。 感谢您向我解释,我很抱歉,假设我已经解释了我的数据并知道 RF 的树输出,我该如何确定合适的超参数?你知道任何可以帮助我理解根据树输出决定适当超参数的阅读吗?非常感谢 Google 上有很多信息。 This 和 this 似乎是开始的好地方。祝你好运!

以上是关于如何在不欠拟合或过拟合的情况下实现回归模型的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用lm函数拟合回归模型(简单线性回归一元回归simple regression)并解读拟合模型

R语言使用lm函数拟合回归模型(简单线性回归一元回归simple regression)并解读拟合模型

如何从多项式拟合线性回归模型中的给定 Y 值预测 X 值?

拟合回归模型

我无法将逻辑回归拟合到模型中。如何解决这个问题?

R语言使用lm函数拟合回归模型(简单线性回归一元回归)并诊断模型(Regression diagnostics)使用plot函数打印回归模型的Q-Q图残差拟合图标度-位置图残差与杠杆关系图