Python/Scikit-learn - 线性回归 - 访问线性回归方程
Python/Scikit-learn - Linear Regression - Access to Linear Regression Equation
我使用同一组预测变量构建了几个不同的线性回归,如下所示:
model=LinearRegression()
model.fit(X=predictor_train,y=target_train)
prediction_train=model.predict(predictor_train)
pred=model.predict(main_frame.iloc[-1:,1:])
为了创建目标变量的预测,我假设 Scikit 算法使用这些 "predictor variables" 创建了一个方程。我的问题是:如何访问该等式?
您正在寻找 params = model.coef_
。 returns 一个包含每个模型输入权重的数组。
请注意,这是一个线性方程,因此要获得自己的预测,如果您有一些名为 input
的输入数组,您需要构建一个方程,使您的预测 y = sum([input[i] * params[i]])
.如果您熟悉参数向量和特征向量之间的线性代数,这就是点积。
from math import fabs
import pandas as pd
from sklearn.linear_model import LinearRegression
def get_regression_formula(df, independent_vars, dependent_var):
X = df[independent_vars]
y = df[dependent_var]
regression = LinearRegression()
regression.fit(X, y)
formula = [f"{regression.intercept_:.2f} "]
for i, var in enumerate(independent_vars):
coef = regression.coef_[i]
coef_abs = fabs(coef)
if coef_abs < 0.1:
continue
formula.append(f"{'+' if coef > 0 else '-'} {coef_abs:.2f} * {var} ")
return f"{dependent_var} = {''.join(formula)}"
用法示例:
>>> df.columns
Index(['x1', 'x2', 'x3', 'y'], dtype='object')
>>> print(get_regression_formula(df, ["x1", "x2", "x3"], "y")
我使用同一组预测变量构建了几个不同的线性回归,如下所示:
model=LinearRegression()
model.fit(X=predictor_train,y=target_train)
prediction_train=model.predict(predictor_train)
pred=model.predict(main_frame.iloc[-1:,1:])
为了创建目标变量的预测,我假设 Scikit 算法使用这些 "predictor variables" 创建了一个方程。我的问题是:如何访问该等式?
您正在寻找 params = model.coef_
。 returns 一个包含每个模型输入权重的数组。
请注意,这是一个线性方程,因此要获得自己的预测,如果您有一些名为 input
的输入数组,您需要构建一个方程,使您的预测 y = sum([input[i] * params[i]])
.如果您熟悉参数向量和特征向量之间的线性代数,这就是点积。
from math import fabs
import pandas as pd
from sklearn.linear_model import LinearRegression
def get_regression_formula(df, independent_vars, dependent_var):
X = df[independent_vars]
y = df[dependent_var]
regression = LinearRegression()
regression.fit(X, y)
formula = [f"{regression.intercept_:.2f} "]
for i, var in enumerate(independent_vars):
coef = regression.coef_[i]
coef_abs = fabs(coef)
if coef_abs < 0.1:
continue
formula.append(f"{'+' if coef > 0 else '-'} {coef_abs:.2f} * {var} ")
return f"{dependent_var} = {''.join(formula)}"
用法示例:
>>> df.columns
Index(['x1', 'x2', 'x3', 'y'], dtype='object')
>>> print(get_regression_formula(df, ["x1", "x2", "x3"], "y")