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

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-learn.org/stable/tutorial涵盖分类、回归、聚类等核心算法
吴恩达 — 机器学习课程Coursera Machine Learning全球最受欢迎的 ML 入门课,中文授课字幕
3Blue1Brown — 线性代数本质youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab可视化理解 ML 背后的线性代数
Kaggle Learn — Machine Learningkaggle.com/learn/intro-to-machine-learning交互式 ML 入门,边学边写代码
StatQuest — 机器学习youtube.com/@statquest用最通俗的例子讲最硬核的 ML 概念

本章内容基于 scikit-learn 官方教程 和机器学习基础理论改编。