实验 线性回归实现
实验目标
本实验的目标是通过线性回归模型来预测加利福尼亚州各区域的房价,并对模型的性能进行评估。通过该实验,我们将掌握数据的加载与预处理、模型训练与测试、模型评估以及结果可视化的完整流程。
实验环境
o Python编程语言
o Scikit-learn库
o Matplotlib(用于数据可视化)
o NumPy和Pandas库(用于数据处理)
o Jupyter Notebook或类似IDE(用于代码编写和结果展示)
实验数据集
使用 California Housing 数据集:此数据集包含加利福尼亚州的房屋数据,包括多个特征(如房间数量、人口、平均收入等)以及目标变量 MedHouseVal(房价中位数,单位为千美元)。
实验步骤
1. 数据加载与初步探索
o 使用 fetch_california_housing 函数加载 California Housing 数据集。
o 将数据加载为 Pandas DataFrame,并对数据的基本统计信息、分布情况等进行探索性分析。
o 使用 Pandas、Matplotlib 等工具对数据进行初步探索。
2. 数据集划分
o 使用 train_test_split 方法将数据集分为训练集和测试集(80% 用于训练,20% 用于测试)。
3. 模型训练与预测
o 使用 LinearRegression 创建线性回归模型,并使用训练集对模型进行训练。
o 利用训练好的模型对测试集进行预测,并生成预测的房价数据。
4. 模型性能评估
o 使用 mean_squared_error 计算均方误差(MSE),评估预测值与实际值的差异。
o 使用 r2_score 计算 R² 分数,评估模型的拟合优度。
5. 结果可视化
o 绘制测试集实际房价与预测房价的对比图,直观展示模型的预测效果。
o 添加参考线帮助理解模型的预测偏差。
实验结果展示
o 均方误差(MSE):展示测试集上的均方误差,以量化模型的平均预测误差。
o R² 分数:展示模型的 R² 分数,表示模型解释目标变量方差的比例。
o 实际房价与预测房价对比图:图表展示了测试集上实际房价与预测房价的关系,以便直观理解模型的表现。
实验总结
o 数据预处理的重要性:数据分割和特征选取是影响模型性能的关键,且在实际应用中,数据预处理对模型的效果提升具有明显帮助。
o 模型性能分析:通过 MSE 和 R² 的结果可以看出,线性回归模型在此数据集上的表现受限,表明可能存在非线性关系。未来可以考虑更复杂的模型来提高预测效果。
o 实验改进方向:可以进一步探索多项式回归或其他非线性模型,以提高房价预测的精度。同时,特征工程和更多变量的引入也可能提升模型的解释力。
实验代码参考
以下是一个通过线性回归模型来预测加利福尼亚州各区域房价的代码实例:
——————————————
# 导入必要的库
import numpy as np # 用于科学计算的库,提供数组支持
import pandas as pd # 用于数据处理的库
import matplotlib.pyplot as plt # 用于绘图
import seaborn as sns # 提供更美观的绘图样式
from sklearn.datasets import fetch_california_housing # 加载California房价数据集
from sklearn.model_selection import train_test_split # 数据集划分函数
from sklearn.linear_model import LinearRegression # 线性回归模型
from sklearn.metrics import mean_squared_error, r2_score # 评价指标:均方误差和R²分数
# 加载加利福尼亚房价数据集
# 将数据集转换为DataFrame并添加列名
# 将目标值转为Series对象
# 拆分数据集,80%用于训练,20%用于测试
# 创建线性回归模型
# 在训练集上训练模型
# 在测试集上进行预测
# 评估模型性能
# 可视化实际房价与预测房价的对比
# 设置图表大小
# 绘制散点图表示实际值和预测值的关系
# 设置x轴标签
# 设置y轴标签
# 设置图表标题
# 添加参考线,用于显示理想预测效果的对比
# 显示网格
# 显示图表
——————————————

