我正在尝试将多项式的线性系统拟合到数据。 numpy
的{{1}}模块包含一个拟合功能,该功能可以完美运行。当我尝试使用polynomial
线性求解器拟合模型时,拟合非常糟糕!我不明白怎么了。我构造了一个矩阵X,其中x_ {ij}对应于第sklearn
个观察到的输入和第i
个多项式。我知道X矩阵是可以的,因为当我用j
找到系数时,数据就非常合适。我使用sklearn的numpy
函数(我已经尝试了几种线性求解器),但是它所求解的系数(fit
对象)是错误的。我究竟做错了什么?如何使coef_
线性求解器找到的系数与sklearn
找到的系数匹配?
numpy
答案 0 :(得分:1)
您的omp.coef_.dot(X.T)
不包含截距;手动添加或直接使用omp.predict
。
即:
plt.scatter(xnorm, omp.coef_.dot(X.T) + omp.intercept_, label='linear regression')
plt.scatter(xnorm, evals, label='data', s=15, marker='x')
或
plt.scatter(xnorm, omp.predict(X), label='linear regression')
plt.scatter(xnorm, evals, label='data', s=15, marker='x')