当前位置: 首页 > news >正文

机器学习实践项目(二)- 房价预测 - 训练模型

从模型到预测:Kaggle房价预测实战指南

📘 系列第三篇:正式进入建模阶段。我们将训练岭回归与随机森林两种模型,并通过模型融合(Ensemble)提高预测性能。


📖 目录

  1. 回顾数据准备
  2. 岭回归(Ridge)模型
  3. 随机森林(RandomForest)模型
  4. 模型融合(Ensemble)
  5. 生成提交文件
  6. 小结

一、回顾数据准备

在前两篇中,我们已经完成了以下步骤:

  • 对目标值取对数:y_train = np.log1p(train_df.pop("SalePrice"))
  • 将训练集与测试集合并;
  • One-Hot 编码;
  • 缺失值填补与标准化;
  • 生成 X_train, X_test

现在我们要把这些干净的特征输入模型,开始训练预测。


二、岭回归(Ridge Regression)

岭回归是一种带有 L2 正则化 的线性模型,能有效缓解特征之间的多重共线性问题。

我们先使用交叉验证(Cross Validation)寻找最佳正则化系数 α:

from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score
import numpy as np
import matplotlib.pyplot as pltalphas = np.logspace(-3, 2, 50)
test_scores = []for alpha in alphas:ridge = Ridge(alpha=alpha)score = np.sqrt(-cross_val_score(ridge, X_train, y_train,cv=10, scoring='neg_mean_squared_error'))test_scores.append(np.mean(score))plt.plot(alphas, test_scores)
plt.title('Alpha vs CV Error')
plt.xlabel('Alpha')
plt.ylabel('RMSE')
plt.show()

✅ 一般来说,alpha 越小,模型越容易过拟合;alpha 越大,模型越平滑。
通过曲线找到最低 RMSE 对应的 α 值(如 16),即可作为最优参数。


三、随机森林(Random Forest)

随机森林是一种基于多棵决策树的集成模型,能自动捕捉非线性关系。

from sklearn.ensemble import RandomForestRegressormax_features = [.1, .3, .5, .7, .9, .99]
test_scores = []for mf in max_features:rf = RandomForestRegressor(n_estimators=200, max_features=mf)score = np.sqrt(-cross_val_score(rf, X_train, y_train,cv=10, scoring='neg_mean_squared_error'))test_scores.append(np.mean(score))plt.plot(max_features, test_scores)
plt.title('Max Features vs CV Error')
plt.xlabel('max_features')
plt.ylabel('RMSE')
plt.show()

一般来说,max_features 越小,单棵树差异越大,泛化性更好。
我们选择 RMSE 最低对应的参数(例如 0.3)。


四、模型融合(Ensemble)

融合(Blending)能综合不同模型的优势,让预测更稳健。
在这里我们将岭回归(线性趋势)和随机森林(非线性特征)进行平均融合。

ridge = Ridge(alpha=16)
rf = RandomForestRegressor(n_estimators=500, max_features=.3)ridge.fit(X_train, y_train)
rf.fit(X_train, y_train)# 反取对数,恢复到真实价格空间
y_ridge = np.expm1(ridge.predict(X_test))
y_rf = np.expm1(rf.predict(X_test))# 简单平均融合
y_final = (y_ridge + y_rf) / 2

✅ 这种“简单平均”在 Kaggle 比赛中非常常见,
因为它能平衡模型偏差与方差,提升总体稳定性。


五、生成提交文件

将预测结果保存成 Kaggle 要求的格式并输出:

submission_df = pd.DataFrame({'Id': test_df.Id,'SalePrice': y_final
})
submission_df.to_csv('./output/house_submission.csv', index=False)

生成的 house_submission.csv 就可以直接上传到 Kaggle 平台进行评测啦!


六、小结

模型特点适用场景
岭回归稳定、可解释线性趋势主导特征
随机森林捕捉非线性、鲁棒性强特征复杂场景
融合模型兼顾两者优势实战首选方案

🏁 系列总结

篇章内容关键步骤
第一篇数据理解与字段分析明确字段类型与目标分布
第二篇数据清洗与特征工程One-Hot、标准化、缺失处理
第三篇模型训练与融合预测岭回归 + 随机森林 + 提交

🚀 至此,我们完成了 Kaggle 房价预测项目的完整流程:
从数据理解 → 清洗 → 建模 → 融合 → 提交。
如果你希望进一步提升分数,可以尝试 LightGBM、XGBoost 或 Stacking 模型。

http://www.dtcms.com/a/562055.html

相关文章:

  • dedecms做电商网站南昌短视频代运营公司
  • 【第38章】Spring Cloud之Quartz分布式任务调度
  • 济南网站建设 伍际网络海康打开网站显示建设中
  • 【第37章】Spring Cloud之Spring Cloud Stream分布式消息队列
  • 以 NVIDIA Sionna Research Kit 赋能 AI 原生 6G 科研
  • springboot日志处理
  • 华夏名网网站管理助手百度收录入口提交
  • 厦门 网站建设公司电话网站版面如何布局
  • 六级单词11/2
  • 扩散模型去噪:U-Net 复用机制与条件信息的使用原则
  • 公益组织网站源码百度推广联系方式
  • 成都动力无限 网站 差网站流量统计实现
  • RDPWD!SM_Connect函数里面的SM_CHECK_STATE和RDPWD!smStatetable全局变量的关系
  • 建设网站要求有哪些网络技术培训班多少钱
  • 微信公众号上微做网站jquery 网站后台模板
  • 《从零散到闭环:Unity工具链协同的高效搭建方案》
  • AUTOSAR图解==>AUTOSAR_AP_SWS_OperatingSystemInterface
  • 自己做网站在线看pdf龙城网站建设
  • 论应用系统规划
  • JavaScript事件机制详解:捕获、冒泡与事件委托
  • 网站建设哪家好知道万维科技百度成都分公司
  • 做一网站优化要多少钱新媒体营销岗位有哪些
  • 做网站 做好把我踢开推广哪个平台好
  • 在线字体设计网站云安区市场网络营销方法
  • 泉州网站制作运营商专业做网站策划案
  • 3.7 TCP拥塞控制
  • 网站建设代码南京市浦口区建设局网站
  • 电商开放平台API接口的日常实际应用
  • Agent上下文压缩之战!阿里AgentFold v.s.字节FoldAgent
  • DCRNN代码解析