我正在尝试使用 numpy 中的 polyfit 函数在 2 点 x 和 y 之间创建最佳拟合线,次数为 2。
fit = polyfit(x, y, 2)
fit_fn = poly1d(fit)
plot(x, y, 'k.', x, fit_fn(x), '--r', linewidth=1)
plt.xlabel("x")
plt.ylabel("y")
我有点困惑为什么最佳拟合线这么粗而不是简单的线。 你认为我在代码中做错了什么吗?
最佳答案
问题是您的 x
没有排序。尝试
plot(x, y, 'k.', sort(x), fit_fn(sort(x)), '--r', linewidth=1)
绘制从 (x_0, fit_fn(x_0))
到 (x_1, fit_fn(x_1))
的“连接点”。如果您的 x
未排序,则该行到处都是锯齿形,使其看起来很粗。
关于numpy - 2 次多项式回归的最佳拟合线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915341/