Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyFirst

第十章:机器学习初探——让程序从数据中学习

你每天刷短视频,推荐算法总能猜中你的喜好;手机相册自动把人脸圈出来——这些"智能"的背后,都是一种叫机器学习的技术。传统程序是"人写规则,计算机执行";而机器学习是"人给数据,计算机自己找规则"。


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/) 和机器学习基础理论改编。