如何使用 Python 计算决定系数(R²)

决定系数 R² 是用于评估线性回归模型拟合优度的重要统计量。它代表了因变量的变异中有多少比例可以被自变量解释。在本文中,我将教你如何使用 Python 计算 R²,并展示这些步骤。

整体流程

为了更好地理解这个过程,我们可以将步骤整理成表格形式:

步骤编号 步骤描述
1 导入需要的库
2 创建或加载数据集
3 拆分数据集为训练集和测试集
4 训练线性回归模型
5 使用模型进行预测
6 计算决定系数 R²
7 可视化结果(可选)

接下来,我们将详细介绍每一个步骤。

步骤详细说明

1. 导入需要的库

我们首先需要引入一些库,包括 pandassklearnmatplotlib

# 导入数据处理库
import pandas as pd
# 导入机器学习库
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
# 导入可视化库
import matplotlib.pyplot as plt

2. 创建或加载数据集

这里我们可以通过 pandas 创建一个简单的数据集。

# 创建一个示例数据集
data = {
    'X': [1, 2, 3, 4, 5],
    'y': [2, 3, 5, 7, 11]
}
df = pd.DataFrame(data)

3. 拆分数据集为训练集和测试集

我们将数据集分为训练集和测试集,用于模型训练和性能评估。

# 拆分训练集和测试集(80% 训练集, 20% 测试集)
X = df[['X']]
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

4. 训练线性回归模型

我们将使用训练集来训练线性回归模型。

# 创建线性回归模型
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)

5. 使用模型进行预测

使用我们的模型对测试集进行预测。

# 使用模型进行预测
y_pred = model.predict(X_test)

6. 计算决定系数 R²

计算我们模型的决定系数 R²。

# 计算 R²
r2 = r2_score(y_test, y_pred)
print(f"决定系数 R²: {r2}")

7. 可视化结果(可选)

我们可以绘制图表来可视化拟合结果。

# 绘制数据点和回归线
plt.scatter(X, y, color='blue', label='数据点')
plt.plot(X_test, y_pred, color='red', label='回归线')
plt.xlabel('X')
plt.ylabel('y')
plt.title('线性回归')
plt.legend()
plt.show()

流程图

下面是整个流程的可视化表示:

flowchart TD
    A[导入需要的库] --> B[创建或加载数据集]
    B --> C[拆分为训练集和测试集]
    C --> D[训练线性回归模型]
    D --> E[使用模型进行预测]
    E --> F[计算决定系数 R²]
    F --> G[可视化结果]

饼状图

你也可以使用饼状图展示数据的构成:

pie
    title 数据分布
    "数据点": 5
    "训练集": 4
    "测试集": 1

结尾

通过以上步骤,你已经学会了如何用 Python 计算线性回归模型的决定系数 R²。掌握这个技能将帮助你更好地评估和优化你的模型表现。如果你有任何疑问,总是可以回顾这些步骤,或者在网上查找更多相关资料。祝你在数据科学的路上越走越远!