Python sklearn线性回归/系数计算得出的函数方程给出的结果与模型不同。预测(x)
我试图得到用sklearn创建的线性回归模型的方程。然而,当我试图用模型中的系数手工计算预测值时,我得到了奇怪的结果。我想我在某个地方犯了一个错误,但我自己却没能弄明白 这是我的密码:Python sklearn线性回归/系数计算得出的函数方程给出的结果与模型不同。预测(x),python,scikit-learn,linear-regression,Python,Scikit Learn,Linear Regression,我试图得到用sklearn创建的线性回归模型的方程。然而,当我试图用模型中的系数手工计算预测值时,我得到了奇怪的结果。我想我在某个地方犯了一个错误,但我自己却没能弄明白 这是我的密码: # Many data points in Pandas DataFrame "filtered_data" predictors = ["Druckwinkel korrigiert [°]", "Druckwinkel sq.", "Dr
# Many data points in Pandas DataFrame "filtered_data"
predictors = ["Druckwinkel korrigiert [°]", "Druckwinkel sq.", "Drehzahl [1/min]"]
regressant = "Kraft [N]"
x = filtered_data[predictors].to_numpy()
y = filtered_data[regressant].to_numpy()
model = LinearRegression()
model.fit(x, y)
print("Intercept:", model.intercept_)
print("Coefficients:", model.coef_)
print("R²:", model.score(x, y))
这张照片是:
Intercept: 150070.5970260448
Coefficients: [-1.28305930e+04 2.73978667e+02 1.48116871e-01]
R²: 0.9578737003844259
如果我这样做
model.predict(np.array([28, 28**2, 2768]).reshape(1, -1))
我明白了
这似乎是合理的。但是如果我用系数和截距来计算Y,像这样:
def load(contact_angle, shaft_speed):
return 150070.59702 - 12830.59299 * (contact_angle ** 2) + 273.97866 * contact_angle + 0.14811 * shaft_speed
load(28, 2768)
我明白了
这根本不是我所期望的
有人能帮忙吗?我想你预测的是
[28,28**22768]
而你的手动计算通过了[28**2,28,2768]
要解决此问题,请执行以下操作:
def负载(接触角、轴速度):
返回150070.59702-12830.59299*接触角+273.97866*(接触角**2)+0.14811*轴速度
负载(282768)
对不起,我很笨。。。我把系数0和1混淆了。。
def load(contact_angle, shaft_speed):
return 150070.59702 - 12830.59299 * (contact_angle ** 2) + 273.97866 * contact_angle + 0.14811 * shaft_speed
load(28, 2768)
-9901032.920822442