发布时间:2026-09-28 18:53:01 浏览次数:1
线性回归模型是回归分析中广泛使用的一种模型。对于线性回归模型,通常需要对其进行检验来验证其可靠性。其中一项重要的检验指标是拟合优度,本文将详细讲解拟合优度的计算和含义。
拟合优度(Goodness of Fit)是一种衡量模型拟合程度的指标,通常用 $R^2$ 表示。$R^2$ 的值介于 0 到 1 之间,表示因变量样本的变异有多少可以用自变量拟合解释。当 $R^2$ 越接近于 1 时,说明模型拟合效果越好。实际上,$R^2$ 可以理解为模型解释因变量差异的能力。
拟合优度是通过比较实际值与模型预测值的离差平方和(SSres)和因变量总离差平方和(SStot)来计算得到。具体公式如下:
$$ R^2 = 1- \frac{SS_{\rm res}}{SS_{\rm tot}} $$
其中,$SS_{\rm res}$ 是实际值与模型预测值之间的离差平方和,$SS_{\rm tot}$ 是因变量总离差平方和。
计算拟合优度的过程可以通过 python 的 scikit-learn 库实现,具体代码如下:
from sklearn.linear_model import LinearRegressionfrom sklearn.metrics import r2_score# 训练线性回归模型model = LinearRegression()model.fit(X_train, y_train)# 计算拟合优度y_pred = model.predict(X_test)r2 = r2_score(y_test, y_pred)print("拟合优度为:{0:.2f}".format(r2))其中 X_train 和 y_train 分别是训练集的自变量和因变量,X_test 和 y_test 分别是测试集的自变量和因变量。
下面通过两个实例来说明如何使用拟合优度计算线性回归模型的可靠性。
首先,我们使用 scikit-learn 库生成一个简单的样本数据集用于模型训练和测试。
from sklearn.datasets import make_regressionfrom sklearn.model_selection import train_test_split# 生成样本数据X, y = make_regression(n_samples=1000, n_features=5, noise=0.3, random_state=42)# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)然后,我们训练一个线性回归模型并计算拟合优度。
from sklearn.linear_model import LinearRegressionfrom sklearn.metrics import r2_score# 训练线性回归模型model = LinearRegression()model.fit(X_train, y_train)# 计算拟合优度y_pred = model.predict(X_test)r2 = r2_score(y_test, y_pred)print("拟合优度为:{0:.2f}".format(r2))输出结果为:
拟合优度为:1.00可见,在这个简单的人口增长模型中,线性回归拟合优度非常高,说明模型对实际数据拟合非常好。
接下来,我们以波士顿房价数据集为例,使用线性回归进行房价预测,并计算拟合优度。
from sklearn.datasets import load_bostonfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import r2_score# 导入波士顿房价数据集boston = load_boston()# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)# 训练线性回归模型model = LinearRegression()model.fit(X_train, y_train)# 计算拟合优度y_pred = model.predict(X_test)r2 = r2_score(y_test, y_pred)print("拟合优度为:{0:.2f}".format(r2))输出结果为:
拟合优度为:0.67可见,在波士顿房价数据集上,线性回归拟合优度略低,说明模型对实际数据拟合效果一般。由此,我们可以进一步探索如何优化模型拟合效果。