第十章:机器学习初探——让程序从数据中学习
你每天刷短视频,推荐算法总能猜中你的喜好;手机相册自动把人脸圈出来——这些"智能"的背后,都是一种叫机器学习的技术。传统程序是"人写规则,计算机执行";而机器学习是"人给数据,计算机自己找规则"。
10.1 传统编程 vs 机器学习
| 传统编程 | 机器学习 | |
|---|---|---|
| **输入** | 规则 + 数据 | 数据 + 答案 |
| **输出** | 结果 | 规则(模型) |
| **比喻** | 教小孩"1+1=2" | 给小孩一百道算术题,让他自己总结规律 |
10.2 机器学习的三种类型
| 类型 | 做什么 | 例子 |
|---|---|---|
| **监督学习** | 给数据 + 标签,学习映射关系 | 房价预测、垃圾邮件识别 |
| **无监督学习** | 只给数据,发现隐藏结构 | 用户分群、异常检测 |
| **强化学习** | 在环境中试错,最大化奖励 | AlphaGo、自动驾驶 |
本章我们聚焦监督学习中的两个经典算法,用 NumPy 亲手实现。
10.3 线性回归——预测连续值
假如你是房产中介,你手头有几套房子的面积和售价数据。新来一套 75 平米的房子,你估计卖多少钱?
线性回归的思路:找一条最"贴合"数据的直线,用这条直线来预测。
Python
Loading editor...
10.4 可视化——让拟合一目了然
Python
Loading editor...
💡 那条红线就是你的"模型"。以后任何新面积输入进来,直接用公式算价格即可。
10.5 评估模型——它预测得准吗?
Python
Loading editor...
10.6 K近邻(KNN)——最简单的分类算法
KNN 的思路非常简单:"近朱者赤,近墨者黑"。
判断一个新数据属于哪一类?看它周围最近的 K 个邻居,多数邻居是什么,它就是什么。
Python
Loading editor...
10.7 机器学习的工作流程
做完这两个例子,你可能会发现机器学习有一套固定套路:
| 步骤 | 做什么 | 对应代码 |
|---|---|---|
| 1. 准备数据 | 收集特征(X)和标签(y) | `X = np.array(...)`, `y = np.array(...)` |
| 2. 训练模型 | 用数据让模型"学习" | `np.polyfit()` / 距离计算 |
| 3. 预测 | 对新数据给出结果 | `k * 75 + b` / 投票 |
| 4. 评估 | 测量模型准确度 | `MAE` / 正确率 |
🎯 机器学习的本质就是四个字:从数据中找规律。 无论多么花哨的深度学习模型,都逃不出这个框架。
本章小结
| 你学到了什么 | 具体内容 |
|---|---|
| ✅ ML 核心思想 | 传统编程是"人写规则",ML 是"数据教规则" |
| ✅ 三种类型 | 监督学习、无监督学习、强化学习 |
| ✅ 线性回归 | `np.polyfit()` 拟合直线,预测连续值 |
| ✅ 模型评估 | MAE(平均绝对误差)衡量预测准确性 |
| ✅ KNN 分类 | 找最近 K 个邻居投票,简单但有效 |
| ✅ ML 工作流 | 准备→训练→预测→评估 四步循环 |
🚀 下一章预告:线性回归和 KNN 只是冰山一角。下一章我们将更进一步——用 NumPy 搭建一个迷你神经网络,让它学会识别手写数字!
本章内容基于 [scikit-learn 官方教程](https://scikit-learn.org/stable/tutorial/) 和机器学习基础理论改编。