对this question的公认回答

提供了

您只需将x和y点的数组以及所需的拟合度(顺序)传递到multipolyfit。这将返回系数,然后可以使用numpy的polyval绘制。

注意:下面的代码已修改为进行多变量拟合,但绘图图像是早期非多变量答案的一部分。import numpy

import matplotlib.pyplot as plt

import multipolyfit as mpf

data = [[1,1],[4,3],[8,3],[11,4],[10,7],[15,11],[16,12]]

x, y = zip(*data)

plt.plot(x, y, 'kx')

stacked_x = numpy.array([x,x+1,x-1])

coeffs = mpf(stacked_x, y, deg)

x2 = numpy.arange(min(x)-1, max(x)+1, .01) #use more points for a smoother plot

y2 = numpy.polyval(coeffs, x2) #Evaluates the polynomial for each x2 value

plt.plot(x2, y2, label="deg=3")

注意:这是之前答案的一部分,如果没有多元数据,它仍然是相关的。使用coeffs = numpy.polyfit(x,y,3),而不是coeffs = mpf(...

对于非多元数据集,最简单的方法可能是使用numpy的^{}:numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)

Least squares polynomial fit.

Fit a polynomial p(x) = p[0] * x**deg + ... + p[deg] of degree deg to points (x, y). Returns a vector of coefficients p that minimises the squared error.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐