03. 机器学习初探——让程序从数据中学习
你每天刷短视频,推荐算法总能猜中你的喜好;手机相册自动把人脸圈出来——这些"智能"的背后,都是一种叫机器学习的技术。传统程序是"人写规则,计算机执行";而机器学习是"人给数据,计算机自己找规则"。
20.1 传统编程 vs 机器学习¶
| 传统编程 | 机器学习 | |
|---|---|---|
| 输入 | 规则 + 数据 | 数据 + 答案 |
| 输出 | 结果 | 规则(模型) |
| 比喻 | 教小孩"1+1=2" | 给小孩一百道算术题,让他自己总结规律 |
20.2 机器学习的三种类型¶
| 类型 | 做什么 | 例子 |
|---|---|---|
| 监督学习 | 给数据 + 标签,学习映射关系 | 房价预测、垃圾邮件识别 |
| 无监督学习 | 只给数据,发现隐藏结构 | 用户分群、异常检测 |
| 强化学习 | 在环境中试错,最大化奖励 | AlphaGo、自动驾驶 |
本章我们聚焦监督学习中的两个经典算法,用 NumPy 亲手实现。
20.3 线性回归——预测连续值¶
假如你是房产中介,你手头有几套房子的面积和售价数据。新来一套 75 平米的房子,你估计卖多少钱?
线性回归的思路:找一条最"贴合"数据的直线,用这条直线来预测。
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
20.4 可视化——让拟合一目了然¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
💡 那条红线就是你的"模型"。以后任何新面积输入进来,直接用公式算价格即可。
20.5 评估模型——它预测得准吗?¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
20.6 K近邻(KNN)——最简单的分类算法¶
KNN 的思路非常简单:“近朱者赤,近墨者黑”。
判断一个新数据属于哪一类?看它周围最近的 K 个邻居,多数邻居是什么,它就是什么。
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
20.7 机器学习的工作流程¶
做完这两个例子,你可能会发现机器学习有一套固定套路:
| 步骤 | 做什么 | 对应代码 |
|---|---|---|
| 1. 准备数据 | 收集特征(X)和标签(y) | X = np.array(...), y = np.array(...) |
| 2. 训练模型 | 用数据让模型"学习" | np.polyfit() / 距离计算 |
| 3. 预测 | 对新数据给出结果 | k * 75 + b / 投票 |
| 4. 评估 | 测量模型准确度 | MAE / 正确率 |
🎯 机器学习的本质就是四个字:从数据中找规律。 无论多么花哨的深度学习模型,都逃不出这个框架。
20.8 动手练习¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
📋 参考答案(点击展开)
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
20.9 本章小结¶
| 你学到了什么 | 具体内容 |
|---|---|
| ✅ ML 核心思想 | 传统编程是"人写规则",ML 是"数据教规则" |
| ✅ 三种类型 | 监督学习、无监督学习、强化学习 |
| ✅ 线性回归 | np.polyfit() 拟合直线,预测连续值 |
| ✅ 模型评估 | MAE(平均绝对误差)衡量预测准确性 |
| ✅ KNN 分类 | 找最近 K 个邻居投票,简单但有效 |
| ✅ ML 工作流 | 准备→训练→预测→评估 四步循环 |
🚀 下一章预告:线性回归和 KNN 只是冰山一角。下一章我们将更进一步——用 NumPy 搭建一个迷你神经网络,让它学会识别手写数字!
20.10 📚 参考资料¶
| 资源 | 链接 | 说明 |
|---|---|---|
| scikit-learn 官方教程 | scikit | 涵盖分类、回归、聚类等核心算法 |
| 吴恩达 — 机器学习课程 | Coursera Machine Learning | 全球最受欢迎的 ML 入门课,中文授课字幕 |
| 3Blue1Brown — 线性代数本质 | youtube | 可视化理解 ML 背后的线性代数 |
| Kaggle Learn — Machine Learning | kaggle | 交互式 ML 入门,边学边写代码 |
| StatQuest — 机器学习 | youtube | 用最通俗的例子讲最硬核的 ML 概念 |
本章内容基于 scikit-learn 官方教程 和机器学习基础理论改编。