如何从 scikit-learn 模型中提取回归系数
您可以使用以下基本语法从 Python 中使用 scikit-learn 构建的回归模型中提取回归系数:
p.d. DataFrame ( zip ( X.columns , model.coef_ ))
以下示例展示了如何在实践中使用此语法。
示例:从 Scikit-Learn 模型中提取回归系数
假设我们有以下 pandas DataFrame,其中包含有关班级 11 名学生的学习时间、准备考试次数以及期末考试成绩的信息:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})
#view DataFrame
print (df)
hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
我们可以使用以下代码来拟合多元线性回归模型,使用小时数和考试作为预测变量,分数作为响应变量:
from sklearn. linear_model import LinearRegression
#initiate linear regression model
model = LinearRegression()
#define predictor and response variables
x, y = df[[' hours ', ' exams ']], df. score
#fit regression model
model. fit (x,y)
然后我们可以使用以下语法来提取学时和考试的回归系数:
#print regression coefficients
p.d. DataFrame ( zip ( X.columns , model.coef_ ))
0 1
0 hours 5.794521
1 exams -1.157647
从结果中,我们可以看到模型中两个预测变量的回归系数:
- 小时系数:5.794521
- 考试系数:-1.157647
如果需要,我们还可以使用以下语法从回归模型中提取原始值:
#print intercept value
print (model. intercept_ )
70.48282057040197
使用每个值,我们可以编写拟合回归模型的方程:
分数 = 70.483 + 5.795(小时)– 1.158(考试)
然后,我们可以使用这个方程根据学习时间和练习考试次数来预测学生的期末考试成绩。
例如,学习了 3 个小时并参加了 2 次预备考试的学生最终成绩应为85.55 :
- 分数 = 70.483 + 5.795(小时)– 1.158(考试)
- 分数 = 70.483 + 5.795(3) – 1.158(2)
- 分数 = 85.55
相关:如何解释回归系数
其他资源
以下教程解释了如何在 Python 中执行其他常见操作:
如何在 Python 中执行简单线性回归
如何在 Python 中执行多元线性回归
如何用Python计算回归模型的AIC