You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python实现表格数据的线性回归:获取参数、R值及绘图

线性回归模型参数获取、R²值计算及可视化实现

基于你已有的数据导入代码,以下是扩展实现线性回归分析、获取模型参数、计算R²值并绘制可视化图表的完整方案:

完整代码实现

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 导入数据(你的原有代码)
print('basetable')
basetable = pd.read_excel('C:/pythonfiles/wieght_height_data.xlsx',
                          engine='openpyxl',
                          sheet_name='wieght_height_data')
print(basetable)
print('')

# 1. 定义特征变量X和目标变量y
# 这里假设以weight为自变量x,height为因变量y,可根据需求互换
X = basetable[['weight']].values  # sklearn要求特征为二维数组
y = basetable['height'].values

# 2. 初始化并训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 3. 获取模型参数:截距b和系数m(对应y = b + m*x)
intercept_b = model.intercept_
coefficient_m = model.coef_[0]

# 4. 计算R²值(模型拟合优度)
y_pred = model.predict(X)
r_squared = r2_score(y, y_pred)

# 输出结果
print("=== 线性回归模型参数 ===")
print(f"截距b: {intercept_b:.2f}")
print(f"系数m: {coefficient_m:.2f}")
print(f"回归方程: y = {intercept_b:.2f} + {coefficient_m:.2f}*x")
print(f"\nR²值: {r_squared:.4f}")

# 5. 绘制原始数据与回归直线图表
plt.figure(figsize=(8, 6))
# 绘制原始散点图
plt.scatter(X, y, color='blue', label='原始数据')
# 绘制回归直线
plt.plot(X, y_pred, color='red', linewidth=2, label='回归直线')
# 设置图表标签与标题
plt.xlabel('体重 (weight)')
plt.ylabel('身高 (height)')
plt.title('体重与身高的线性回归分析')
plt.legend()
plt.grid(True)
plt.show()

关键说明

  • 变量定义:X需要是二维数组(所以用[['weight']]),这是sklearn线性回归模型的要求;如果要以身高为自变量、体重为因变量,只需互换X和y的取值即可。
  • 模型参数:intercept_对应回归方程的截距b,coef_[0]对应自变量的系数m。
  • R²值:取值范围在0到1之间,越接近1表示模型对数据的拟合效果越好。
  • 可视化:散点图展示原始数据分布,红色直线为拟合的回归直线,直观呈现变量间的线性关系。

内容的提问来源于stack exchange,提问作者diaphol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:28:14