机器学习实战:从零实现线性回归完整项目 -w2
本篇通过加州房价预测实战项目,完整走一遍机器学习流程:数据加载 → 数据查看 → 数据集划分 → 模型训练 → 模型预测 → 模型评估。
非常适合新手理解标准机器学习项目的完整套路。
🎯 一、项目目标与流程
本次实战使用线性回归完成加州房价预测,帮助大家掌握:
- 如何加载官方数据集
- 如何构建 DataFrame 并查看数据
- 训练集 / 测试集划分为什么重要
- 线性回归模型训练与预测
- 模型评估指标 MSE、R² 的含义
标准机器学习五步流程:
- 导入库
- 加载数据 & 预处理
- 划分训练集 / 测试集
- 训练模型
- 预测 & 评估
💻 二、完整代码实现(带详细注释)
1 | # 实现一个完整的线性回归项目 |
📌 三、关键知识点补充(新手必看)
- 数据集为什么要分训练集 + 测试集?
训练集(80%):给模型学习规律
测试集(20%):模拟 “新数据”,检验模型泛化能力
如果不划分,直接用全部数据训练 + 测试,会出现过拟合,模型只记住训练数据,遇到新数据就失效。 - random_state=42 是什么意思?
固定随机种子,让代码每次运行结果完全一样
42 只是习惯数字,换成 0、1、100 都可以 - model.fit () 做了什么?
底层使用最小二乘法
自动计算出最优的 $w$(权重) 和 $b$(截距)
公式:
$$
y = w_1x_1 + w_2x_2 + \dots + w_nx_n + b
$$
- 模型评估指标解释
MSE(均方误差):预测值与真实值误差的平方平均,越小越好
R²(决定系数):模型解释数据的能力,越接近 1 越好 - 7 ~ 0.9:优秀
- 5 ~ 0.7:一般
<0.5:较差
⚠️ 四、新手常见误区(必看表格)
| 知识点 / 误区 | 说明 | 错误示例 | 正确做法 |
|---|---|---|---|
| 特征与标签划分 | axis=1 表示删除列,axis=0 删除行 | df.drop('Price') | df.drop('Price', axis=1) |
| 数据集划分 | 必须拆分训练 / 测试,不能用全部数据测试 | 直接用 X 训练、X 预测 | 必须用 train_test_split |
| 模型训练 | fit() 只接受训练集,不能喂测试集 | model.fit(X_test, y_test) | model.fit(X_train, y_train) |
| random_state | 不写会导致每次运行结果不同 | 不写 random_state | 必须写 random_state=42 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 河岳日星的博客!
评论
