下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验1基于线性回归的房价预测一、实验目的及要求理解监督学习中回归任务的基本思想,掌握“数据准备→选择模型→定义损失函数→训练模型→评估与应用”的机器学习基本流程。掌握使用scikit-learn构建线性回归模型的方法,理解模型参数(权重、偏置)的含义及其对预测结果的影响。掌握训练集/测试集的划分方法,理解划分的目的在于客观评估模型在未见过数据上的泛化能力。掌握均方误差(MSE)、平均绝对误差(MAE)、决定系数(R²)等回归评估指标的计算方法与业务含义。能够对预测结果进行可视化分析,并能够结合线性回归的假设条件(线性关系、异常值敏感性等)判断模型的适用性与局限性。二、实验学时2学时(建议时间分配:讲解10分钟,任务实践80分钟,总结报告10分钟)三、实验前准备软件环境:Python3.8及以上,建议使用JupyterNotebook或VSCode。依赖库:NumPy、Pandas、Matplotlib、scikit-learn。安装命令如下:pipinstallnumpypandasmatplotlibscikit-learn知识储备:已学习教材第4.1、4.2、4.3.1、4.4.1节内容,了解回归与分类的区别。四、实验任务任务1环境准备与数据集加载(10分钟)实验采用模拟生成的房价数据集,不依赖网络下载。数据集包含面积、卧室数、距市中心距离、楼层、房龄5个数值型特征,以及房价(万元)1个连续型目标变量。任务2数据探索与划分(15分钟)使用Pandas观察样本量、特征名称与统计分布;按8:2划分为训练集与测试集。注意:划分必须在任何预处理之前完成,避免测试集信息泄漏。任务3特征标准化(10分钟)由于面积、房龄、楼层等特征量纲不同,使用StandardScaler对训练集进行标准化,并用训练集的均值和标准差转换测试集。任务4模型训练与预测(15分钟)使用LinearRegression训练模型;训练完成后,对测试集进行预测。记录模型学习到的特征权重与截距,并解释其业务含义。任务5模型评估(15分钟)计算MSE、MAE、R²三个指标,理解它们各自的侧重点:MSE惩罚大误差;MAE更鲁棒;R²越接近1表示模型拟合越好。任务6结果可视化(15分钟)绘制真实房价vs预测房价散点图,以及残差图,直观判断模型效果。参考代码以下为完整可运行代码。若图表中文显示为方框,请根据本地环境修改plt.rcParams中的字体名称:#实验二:基于线性回归的房价预测
importnumpyasnp
importpandasaspd
importmatplotlib.pyplotasplt
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.preprocessingimportStandardScaler
fromsklearn.linear_modelimportLinearRegression
fromsklearn.metricsimportmean_squared_error,mean_absolute_error,r2_score
#设置中文字体(根据本地环境选择合适字体)
plt.rcParams['font.sans-serif']=['SimHei','MicrosoftYaHei','ArialUnicodeMS']
plt.rcParams['axes.unicode_minus']=False
#1.构造模拟房价数据集
np.random.seed(42)
n=500
data=pd.DataFrame({
"面积":np.random.uniform(50,200,n),
"卧室数":np.random.randint(1,6,n),
"距市中心距离":np.random.uniform(1,20,n),
"楼层":np.random.randint(1,30,n),
"房龄":np.random.uniform(0,40,n),
})
#真实房价(万元)=面积*3-距市中心距离*2-房龄*0.5+楼层*0.3+卧室数*5+噪声
noise=np.random.normal(0,15,n)
price=(
data["面积"]*3
-data["距市中心距离"]*2
-data["房龄"]*0.5
+data["楼层"]*0.3
+data["卧室数"]*5
+noise
)
X=data
y=price
feature_names=list(X.columns)
print("特征名称:",feature_names)
print("样本数:",X.shape[0])
print(X.describe().round(2))
#2.划分训练集与测试集
X_train,X_test,y_train,y_test=train_test_split(
X,y,test_size=0.2,random_state=42
)
#3.特征标准化(仅使用训练集参数)
scaler=StandardScaler()
X_train_scaled=scaler.fit_transform(X_train)
X_test_scaled=scaler.transform(X_test)
#4.训练线性回归模型
model=LinearRegression()
model.fit(X_train_scaled,y_train)
#5.预测
y_pred=model.predict(X_test_scaled)
#6.评估
mse=mean_squared_error(y_test,y_pred)
mae=mean_absolute_error(y_test,y_pred)
r2=r2_score(y_test,y_pred)
print(f"\nMSE={mse:.4f}")
print(f"MAE={mae:.4f}")
print(f"R²={r2:.4f}")
#输出模型参数
print("\n特征权重:")
forname,coefinzip(feature_names,model.coef_):
print(f"{name}:{coef:.4f}")
print(f"截距(偏置):{ercept_:.4f}")
#7.可视化
plt.figure(figsize=(12,5))
plt.subplot(1,2,1)
plt.scatter(y_test,y_pred,alpha=0.5,edgecolors="none")
plt.plot([y_test.min(),y_test.max()],[y_test.min(),y_test.max()],"r--",lw=2)
plt.xlabel("真实房价(万元)")
plt.ylabel("预测房价(万元)")
plt.title("真实值vs预测值")
plt.subplot(1,2,2)
residuals=y_test-y_pred
plt.scatter(y_pred,residuals,alpha=0.5,edgecolors="none")
plt.axhline(0,color="r",linestyle="--")
plt.xlabel("预测房价(万元)")
plt.ylabel("残差")
plt.title("残差图")
plt.tight_layout()
plt.show()
预期结果(参考)运行代码后,你应看到类似以下的结果(具体数值因随机种子固定而一致):MSE=203.3851
MAE=11.4276
R²=0.9885
特征权重:
面积:135.6966
卧室数:7.5606
距市中心距离:-9.8135
楼层:1.5095
房龄:-5.1109
截距(偏置):365.6645结果解读:R²接近0.99,说明线性模型能很好地解释房价变异;面积系数为正且最大,说明面积是房价最重要的正向影响因素;距市中心距离和房龄系数为负,说明距离市中心越远、房龄越老,房价越低。结果记录表请将你的实验结果填入下表,用于撰写实验报告:项目数值含义解读MSE预测误差的平方均值MAE预测误差的绝对值均值R²模型解释数据变异的比例面积系数面积每增加1单位,房价平均变化多少距市中心距离系数距离每增加1单位,房价平均变化多少房龄系数房龄每增加1单位,房价平均变化多少五、实验重点、难点重点:线性回归的建模流程、训练集/测试集划分原则、回归评估指标(MSE/MAE/R²)的含义与计算。难点:理解特征标准化的必要性;理解模型系数的业务含义;识别线性假设的局限。六、操作要点建议在JupyterNotebook中按代码块逐步执行,每执行一步观察输出,确认无误后再进行下一步。训练集与测试集的划分应在使用StandardScaler之前完成,严禁先对整个数据集标准化再划分。特征标准化仅对数值特征进行,本实验所有特征均为数值型,因此可直接对整个特征矩阵标准化。若运行环境缺少中文字体,图表标签可能显示为方框,可尝试将plt.rcParams['font.sans-serif']中的字体改为本地可用字体。七、注意事项线性回归对异常值较为敏感,若加入极端样本,可能对模型参数产生较大影响。线性回归假设特征与目标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能客服响应效率考核表
- 2026人工智能视觉检测行业市场竞争格局需求预测与发展报告
- 2026零售行业新时代挑战与市场适应性和投资策略研究
- 2026中国新能源材料行业市场深度调研及发展趋势和投资前景预测研究报告
- 2026汽车零部件产业市场调研及供应链优化升级与投资布局方案研究报告
- 2026人工智能决策系统行业市场供需调研及投资布局路径分析
- 2026人工智能写作助手应用市场前景智能文本生成技术评估说明
- 2026能源节能行业市场现状供需分析及投资评估规划分析研究报告
- 2026贸易投资孵化器行业市场深度调研及发展前景与投资前景研究报告
- 2026区块链技术在供应链管理中的应用现状分析报告
- 山东省菏泽市2025-2026学年高一下学期期末考试英语试卷
- 2026年兽医实验室安全知识培训考试题库(含答案)
- 2026年金华市公安辅警招聘知识考试题库及答案
- LY/T 3426-2025直接为林业生产经营服务工程设施用地规范
- 混凝土搅拌站设备维护保养计划
- 2026年浙江中考科学试卷及答案
- 2025年黄石阳新县事业单位考试及答案
- 合同审查之思维体系与实务技能
- 人工智能在医疗设备故障诊断中的应用
- 消防检测维保管理制度
- 2025年热烈庆祝建党104周年党史知识竞赛题库及答案(共300题)
评论
0/150
提交评论