使用sklearn的numpy多项式线性回归

时间:2019-09-07 18:38:49

标签: python numpy scikit-learn linear-regression polynomials

我正在尝试将多项式的线性系统拟合到数据。 numpy的{​​{1}}模块包含一个拟合功能,该功能可以完美运行。当我尝试使用polynomial线性求解器拟合模型时,拟合非常糟糕!我不明白怎么了。我构造了一个矩阵X,其中x_ {ij}对应于第sklearn个观察到的输入和第i个多项式。我知道X矩阵是可以的,因为当我用j找到系数时,数据就非常合适。我使用sklearn的numpy函数(我已经尝试了几种线性求解器),但是它所求解的系数(fit对象)是错误的。我究竟做错了什么?如何使coef_线性求解器找到的系数与sklearn找到的系数匹配?

numpy

enter image description here

1 个答案:

答案 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')

enter image description here