我正在使用ipython演示numpy中的不同类型的回归,到目前为止,我已经能够毫无困难地绘制简单的线性回归。现在,当我继续对我的数据进行二次拟合并绘制它时,我没有得到二次曲线,而是获得了很多行。这是我正在运行的代码产生问题:
import numpy
from numpy import random
from matplotlib import pyplot as plt
import math
# Generate random data
X = random.random((100,1))
epsilon=random.randn(100,1)
f = 3+5*X+epsilon
# least squares system
A =numpy.array([numpy.ones((100,1)),X,X**2])
A = numpy.squeeze(A)
A = A.T
quadfit = numpy.linalg.solve(numpy.dot(A.transpose(),A),numpy.dot(A.transpose(),f))
# plot the data and the fitted parabola
qdbeta0,qdbeta1,qdbeta2 = quadfit[0][0],quadfit[1][0],quadfit[2][0]
plt.scatter(X,f)
plt.plot(X,qdbeta0+qdbeta1*X+qdbeta2*X**2)
plt.show()
你可以看到,不是只有一个适合数据的抛物线,我有大量的个别线做了我不确定的事情。任何帮助将不胜感激。