【问题标题】:How do I do multivariate non-linear regression in Python?如何在 Python 中进行多元非线性回归?
【发布时间】:2019-09-18 12:06:16
【问题描述】:

假设我的实际方程式是 y = a * b + c

所以我的数据集看起来像

a b c y
2 5 4 14
3 7 2 23
1 7 4 15
4 1 7 11
3 2 1 7
1 2 3 5

等等。我使用什么模块来获得告诉我“y = a * b + c”的输出?这甚至可能吗?

y = a * a + b 怎么样?任何关于我应该尝试的文档或解释的指针都会很棒。

编辑:

副本显然是不同的场景。在那个例子中,有一个公式描述了一条线;在我的示例中,有许多变量最适合结果。另一个不谈论平方项。

【问题讨论】:

  • 您是否尝试在 Google 搜索栏中输入完全相同的问题?
  • 我找到了,但我以为我什么也没找到。我错过了吗?请指点我,我不擅长谷歌。干杯。
  • @G.Anderson:正如 OP 已经指出的那样,该链接不适合这个问题。
  • 这是我在 Python 组一年看到 2-3 次的话题。很难搜索,很难回答,而且我无法找到以前的参考资料以将其作为重复项关闭。

标签: python python-3.x


【解决方案1】:

没有模块。你的一般问题是“什么简单的函数最适合这个数据?”没有通用的解决方案,因为“简单”需要适当的定义和限制才能产生有意义的答案。

代数的基本定理表明,N 点上的数据集可以用一个次数不超过N-1 的多项式进行拟合。超出此范围的限制要求您定义搜索空间并在该定义内进行探索。

是的,存在设置最大度数并在此范围内工作的方法;你可以写一个循环来增加这个度,直到你找到一个精确的解决方案。

我建议您查看Scikit 的曲线拟合方法,并将其用于您自己设计的解决方案中。您可能需要完成所选学位的所有组合,每次增加学位时添加新术语。您可能还需要编写探索以按照您定义的复杂性顺序考虑这些术语。


对 OP 评论的回应:

我明白了;您有点追随 FiveThirtyEight.com 的脚步,该网站以美国棒球和选举的准确性而闻名。根据您想要的准确性,这个问题很快就会变得很糟糕。你会得到诸如((MY_OFF-OPP_DEF) ^ 1.28 + 2.1 - sqrt(OPP_GK)) / BLAH之类的术语。

在任何情况下,您都可能会进入深度学习回归应用程序,它比“简单”的产品总和方案稍微复杂一些。您可能会通过“单纯的”机器学习获得可接受的结果,但即使是预测获胜者这一更简单的任务,也要做好失望的准备。

【讨论】:

  • 感谢您的回复(以及对我的 OP 的编辑),Prune。找到这个页面 (towardsdatascience.com/…) 后,我玩了一下 scikit-learn 机器学习。为了透明起见,我正在使用曲棍球统计数据并尝试获取各种输入并模拟它们与目标的相关程度,以及哪些是最能预测目标的。这不是简单的线性关系,这些指标对目标有不同程度的影响,因此机器学习管道似乎可以解决问题。
  • 是的,它相当复杂,基本上无法预测,曲棍球更糟糕,因为进球是非常罕见的事件,因此“打得更好”的球队可能并不总是赢,因为另一支球队团队只是获得了几次幸运反弹。从长远来看,这些情况平均下来,更好的球队通常会获胜。所以我只是希望让 python/机器学习为我做跑腿工作:) 我当然知道不可能以 60% 的确定性来预测获胜者,否则无论谁知道这一点都会从投注中发财。再次感谢!我很欣赏有用的见解:)
【解决方案2】:

您有没有想过尝试一下scikit-learn Gradient Boosting Regressor?请参阅code examples 的用户指南,了解如何将此方法用于回归问题。

另请注意,文档指出

scikit-learn 0.21 引入了两个新的实验性实现 梯度提升树,即 HistGradientBoostingClassifier 和 HistGradientBoostingRegressor,受 LightGBM 启发。这些 基于直方图的估计器可以比 GradientBoostingClassifier 和 GradientBoostingRegressor 当 样本数大于数万个。

【讨论】:

    猜你喜欢
    • 2019-03-27
    • 2018-06-10
    • 2013-07-14
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多