学习记录:机器学习入门案例——波士顿房价预测(三)-波士顿房价预测与加州房价预测对比
2026年4月7日波士顿房价预测与加州房价预测都已经运行成功不禁疑惑二者都是线性回归模型有什么区别呢。一、核心共同点骨架完全相同从代码层面看这两个例子本质上执行的是同一套工作流程这也是任何机器学习项目的基础流程步骤具体操作波士顿房价加州房价1. 加载数据从CSV文件读取数据✅pd.read_csv()✅pd.read_csv()2. 数据探索查看基本信息、统计描述、缺失值✅ 详细形状、列名、缺失值逐列⚠️ 简化版3. 处理缺失值填充或删除缺失数据✅中位数填充❌缺失未处理4.特征标准化StandardScaler均值0标准差1✅ 完整实现✅ 完整实现5. 划分数据集训练集/测试集分割✅ test_size0.2, random_state42✅ test_size0.2, random_state426. 训练模型LinearRegression().fit()✅✅7. 预测model.predict()✅✅8. 评估模型MSE、R²、SSE等指标✅ 完整含RMSE✅ 基础版9. 可视化分析散点图、残差图、热力图✅有残差图⚠️ 无残差图二、关键不同点细节里的差异2.1 数据来源和背景不同对比项波士顿房价加州房价数据年代1978年1990年样本数量506条20640条特征数量13个加上目标共14列8个加上目标共9列目标变量MEDV千美元medianHouseValue美元当前状态sklearn 1.2已移除仍在使用是官方推荐的替代数据集2.2 数据预处理差异这是初学者最容易忽略但非常重要的区别处理步骤波士顿代码加州代码缺失值检查✅ 检查并显示每列缺失数❌ 只检查总数没逐列显示缺失值处理✅用中位数填充❌完全没有处理加州代码的坑pythonprint(检查缺失值) print(data.isnull().sum()) # 只打印不处理如果原始数据有缺失值比如某些房子的房龄没填加州代码会直接报错或产生错误预测。波士顿代码的正确做法pythonfor column in df.columns: if df[column].isnull().any(): median_value df[column].median() df[column].fillna(median_value, inplaceTrue)注意缺失值处理是数据清洗的必修课实际工作中你拿到的数据几乎总是不干净的要学会像波士顿代码那样处理。2.3 输出信息的详细程度输出内容波士顿代码加州代码数据形状✅ 打印❌ 没打印数据列名✅ 打印❌ 没打印缺失值详情✅ 逐列显示⚠️ 只显示总数特征系数✅ 循环打印所有特征❌ 手动一个个写死回归方程式✅ 动态构建⚠️ 手动拼接易错特征重要性排序✅ 按绝对值排序❌ 没有波士顿代码更专业的例子python# 动态构建回归方程优雅、可扩展 equation f回归方程式: y {intercept:.4f} for name, coef in zip(feature_names, model.coef_): equation f ({coef:.4f} * {name})加州代码的硬编码问题python# 手动写死8个特征如果特征数量变化代码就要改 slope0 model.coef_[0] slope1 model.coef_[1] # ... 一共8行 print(fy{slope0}*x0 {slope1}*x1 ...)对初学者的启示波士顿代码的写法更专业——尽量用循环和动态拼接而不是硬编码。这样当数据变化时比如换成有20个特征的数据集代码不需要重写。2.4 可视化分析深度可视化波士顿代码加州代码目标变量分布图✅ 带KDE的直方图✅ 带KDE的直方图相关性热力图✅ 带相关系数标注✅ 热力图实际vs预测散点图✅有理想预测参考线✅ 有参考线残差图✅有检验模型假设❌ 没有残差图的意义残差图是检验线性回归假设是否成立的重要工具。波士顿代码多做了这一步说明它更注重模型诊断而不仅仅是预测结果。原来有这么多区别那么我不是可以参照波士顿代码优化一下加州代码啊。优化代码放到加州房价预测文章中吧
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2495815.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!