Python 基于sklearn的多项式回归

Python 基于sklearn的多项式回归,python,scikit-learn,non-linear-regression,Python,Scikit Learn,Non Linear Regression,这是我的密码: import numpy as np from sklearn.preprocessing import PolynomialFeatures X=np.array([[1, 2, 4]]).T print(X) y=np.array([1, 4, 16]) print(y) model = PolynomialFeatures(degree=2) model.fit(X,y) print('Coefficients: \n', model.coef_) print('Othe

这是我的密码:

import numpy as np
from sklearn.preprocessing import PolynomialFeatures

X=np.array([[1, 2, 4]]).T
print(X)
y=np.array([1, 4, 16])
print(y)
model = PolynomialFeatures(degree=2)
model.fit(X,y)
print('Coefficients: \n', model.coef_)
print('Others: \n', model.intercept_)

#X_predict=np.array([[3]])
#model.predict(X_predict)
我有以下错误:


多项式特征
没有名为
coef
的变量。多项式特征不会进行多项式拟合,它只是将初始变量转换为更高阶。实际执行回归的完整代码如下:

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline

X=np.array([[1, 2, 4]]).T
print(X)
y=np.array([1, 4, 16])
print(y)
model = make_pipeline(PolynomialFeatures(degree=2), LinearRegression(fit_intercept = False))
model.fit(X,y)
X_predict = np.array([[3]])
print(model.named_steps.linearregression.coef_)
print(model.predict(X_predict))

我有系数:[3.55300751e-15-5.10702591e-15 1.00000000e+00]>但是模型是y=a*x*x+b*x+c(a=1,b=0,c=0)…系数是[c,b,a],所以从1e-15~0开始它就工作得很好。看看打印时X_poly的样子好吗?我可以用X_predict=np.array([[3]])model.predict(X_predict)进行预测吗?这给了我y=a*3*3+b*3+c=9I更新了答案以使用scikit学习管道。在构建管道时,您说模型应该首先使用多项式特征转换数据,然后使用线性回归进行回归。我可以同时进行预测和显示系数吗?使用此代码我无法显示系数这是否回答了您的问题?