Python:用两个或多个数据点外推趋势

2 投票
1 回答
2996 浏览
提问于 2025-04-17 01:23

我需要用2到n个数据点来推算出一条弯曲的趋势线,这样我就可以根据这条线来查询数据。在我脑海中,这条线大概是这样的(蓝色的线):

示例图表

这是为了一个“卡路里计算器”——我有一些关于不同体重下,进行某项活动时燃烧的卡路里数据。例如,如果你体重65公斤,你大约会燃烧420卡路里;如果你70公斤,你会燃烧480卡路里;如果你75公斤,你会燃烧550卡路里,等等。一个坐标轴表示卡路里,另一个坐标轴表示体重。

显然,如果我想知道一个没有数据点的体重下燃烧的卡路里,我就需要一条趋势线来进行查询,这就引出了我问题的第二部分:我该怎么做呢?

总结一下:

  • 我怎么在Python中推算出一条趋势线?
  • 我怎么查询这条趋势线,以便根据趋势线上的某个点来获取估算值?

1 个回答

4

numpy和scipy这两个库里有一些工具,可以帮助你把数学公式和数据点结合起来。也就是说,一旦你得到了一个公式,就可以在任何你想要的时间范围内画出这个公式的图。

这个回答 - 使用scipy、python和numpy进行非线性e^(-x)回归 - 里有一个非线性回归的例子(这个例子是一个指数函数,跟你提到的问题类似,不过它的指数是负的。一般来说,用正指数来拟合和推测数据是不太好的,因为这种推测对噪声和不确定性非常敏感,容易变得没有意义)。

撰写回答