基于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
相关产品推荐
相关产品推荐

