我已经开发了一个多项式回归模型来预测我的目标值。问题是,使用“predict”方法的预测结果是合理的,但是当我通过系数和截距计算目标变量时,得到的值与“predict”方法给出的值相差甚远。
pol = PolynomialFeatures(degree= 9) xp = pol.fit_transform(x_train) poly_reg = LinearRegression()poly_reg.fit(xp,y_train) poly_test = pol.fit_transform(x_test) pred = poly_reg.predict(poly_test)poly_reg.predict(pol.fit_transform([[2]]))Output:array([[6.07673981]])
如果我通过系数和截距计算 x = 2 的 y 值,我得到的值大约是 90。
[[ 0.00000000e+00, 4.66507179e+00, -7.69101941e-01 ,-5.47401755e-01,2.92321976e-01, -5.57600284e-02, 5.44143396e-03, -2.91464609e-04,8.16565621e-06, -9.36811416e-08]][[0.99640058]]
回答:
在多项式变换中,变量的值会以某种方式转换,使其适应线性模型。所以如果方程是
x^3+x^2+x+c 这是多项式方程
当你应用多项式特征时,它会创建 X 的值,使我们可以在线性方程中使用,从而应用线性模型。
因此,使用线性系数和实际的多项式 x 值将会得到不同的答案