如何从Scikit-Learn获取回归模型摘要
在这篇文章中,我们将看到如何从sci-kit learn获取回归模型摘要。
它可以通过这些方式来完成。
- Scikit-learn包
- Stats模型包
示例1:使用scikit-learn .
你可能想提取一个用Scikit-learn在Python中创建的回归模型的摘要。Scikit-learn没有很多内置函数来分析回归模型的摘要,因为它一般用于预测。Scikit learn有不同的属性和方法来获得模型的总结。
我们导入了必要的软件包。然后从sklearn.datasets加载虹膜数据集。然后创建特征和目标数组,使用train_test_split()方法创建测试集和训练集,创建简单线性回归模型,然后将训练数据拟合到模型中,使用.predict()方法对测试集进行预测。
# Import packages
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# Load the data
irisData = load_iris()
# Create feature and target arrays
X = irisData.data
y = irisData.target
# Split data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
# predicting on the X_test data set
print(model.predict(X_test))
# summary of the model
print('model intercept :', model.intercept_)
print('model coefficients : ', model.coef_)
print('Model score : ', model.score(X, y))
输出:
[ 1.23071715 -0.04010441 2.21970287 1.34966889 1.28429336 0.02248402
1.05726124 1.82403704 1.36824643 1.06766437 1.70031437 -0.07357413
-0.15562919 -0.06569402 -0.02128628 1.39659966 2.00022876 1.04812731
1.28102792 1.97283506 0.03184612 1.59830192 0.09450931 1.91807547
1.83296682 1.87877315 1.78781234 2.03362373 0.03594506 0.02619043]
model intercept : 0.2525275898181484
model coefficients : [-0.11633479 -0.05977785 0.25491375 0.54759598]
Model score : 0.9299538012397455
例2:使用Stats模型包的summary()方法
在这个方法中,我们使用statsmodels. formula.api软件包。如果你想在Python中提取一个回归模型的摘要,你应该使用statsmodels包。下面的代码演示了如何使用这个包来拟合与前面例子中相同的多元线性回归模型并获得模型摘要。
# import packages
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
# loading the csv file
df = pd.read_csv('headbrain1.csv')
print(df.head())
# fitting the model
df.columns = ['Head_size', 'Brain_weight']
model = smf.ols(formula='Head_size ~ Brain_weight',
data=df).fit()
# model summary
print(model.summary())
输出:
表中一些术语的描述:
- R-squared value: R-squared值的范围是0到1。R-squared为100%表示自变量的变化完全解释了因变量的所有变化。如果R平方值为1,表示完全吻合。在我们的例子中,r-squared值为0.638。
- F-statistic: F-statistic比较了所有变量的综合效应。简单地说,如果你的α水平大于你的p值,你应该拒绝无效假设。
- coef: 回归方程的独立变量的系数。
我们的预测:
如果我们用0.05作为我们的显著性水平,我们拒绝无效假设,接受替代假设,因为p<0.05。因此,我们可以得出结论,头部大小和脑重之间存在着关系。