监督学习、无监督学习与强化学习
学习者将归纳机器学习的三种主要范式,考察每种范式的具体用例,并将现实问题匹配到恰当的学习类型。
监督学习、无监督学习与强化学习 是 CoddyKit 上的免费 Machine Learning Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Machine Learning Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Machine Learning Academy 课程共包含 4 节课。
三大主流学习范式概览
机器学习不是单一技术,而是一个家族,它们根据学习方式(反馈)的不同而划分。主要分为三大类:监督学习、无监督学习和强化学习。
监督学习:带标签的学习
监督学习通过带有正确答案(即标签)的示例进行训练。大多数你使用的机器学习应用都基于监督学习,包括分类和预测任务。
# Supervised learning example: predict house price
from sklearn.linear_model import LinearRegression
import numpy as np
# Features (size in sq ft) and labels (price in $)
X = np.array([[500], [1000], [1500], [2000]])
y = np.array([100000, 200000, 300000, 400000])
model = LinearRegression()
model.fit(X, y) # supervised: model sees both X and y
# Predict on new data
print(model.predict([[1200]])) # ~$240,000监督学习应用场景
监督学习无处不在:垃圾邮件过滤器、医疗诊断、信用评分和图像识别等。在这些应用中,模型都是从过去带有标签的示例中学习的。
无监督学习:发现隐藏结构
无监督学习完全不需要标签。算法会自行探索数据,并发现其中隐藏的结构——最常见的方式是聚类。
# Unsupervised learning example: K-Means clustering
from sklearn.cluster import KMeans
import numpy as np
# No labels — only features
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
kmeans = KMeans(n_clusters=2, random_state=42)
kmeans.fit(X) # no y — discovers structure on its own
print('Cluster assignments:', kmeans.labels_)
# Automatically finds two groups without any labels无监督学习应用场景
当标签成本过高时,无监督学习就能大显身手:例如客户分组、发现网络流量异常或从海量文章中提取主题。
强化学习:边做边学
在强化学习中,智能体(agent)在一个环境中行动,并获得奖励或惩罚。它通过试错的方式学习最佳策略,就像训练狗狗一样。🐕
强化学习应用场景
强化学习催生了一些著名的成功案例:AlphaGo 通过自我对弈掌握围棋、机器人学习走路,以及智能体在模拟环境中学习驾驶。
自监督学习:第四范式
一种现代的变体是自监督学习:数据能够自我标注。像 BERT 这样的语言模型就是通过预测句子中的遮蔽词来学习的。
问题与范式匹配
要选择合适的范式,可以问自己:是否有标签?输出是类别还是数值?学习是否由奖励驱动?一个稳妥的默认选项是监督学习。
半监督学习:两全其美
半监督学习结合了少量有标签数据和大量无标签数据——当标签成本高昂但原始数据充裕时,这种方法非常适用。
Scikit-learn 统一 API
scikit-learn 以其一致的 API 而著称:创建一个估计器(estimator),调用 fit(),然后是 predict() 或 transform()。更换算法几乎不需要修改代码。
# Consistent API across paradigms
from sklearn.linear_model import LogisticRegression # supervised
from sklearn.cluster import KMeans # unsupervised
from sklearn.decomposition import PCA # unsupervised
import numpy as np
X = np.random.randn(100, 5)
y = np.random.randint(0, 2, 100)
# Supervised
clf = LogisticRegression()
clf.fit(X, y) # needs labels
# Unsupervised
km = KMeans(n_clusters=3)
km.fit(X) # no labels needed
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)快速检测
检验你对本课中 Python 机器学习概念的理解。
课程回顾
干得好!监督学习从标签中学习,无监督学习发现隐藏结构,强化学习通过奖励学习。接下来:完整的机器学习工作流程。
常见问题解答
「监督学习、无监督学习与强化学习」课时是免费的吗?
是的 — 「监督学习、无监督学习与强化学习」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Machine Learning Academy 课程的其余内容,请升级到 CoddyKit PRO。 Machine Learning Academy 课程共包含 4 节课。
「监督学习、无监督学习与强化学习」这节课中我会学到什么?
学习者将归纳机器学习的三种主要范式,考察每种范式的具体用例,并将现实问题匹配到恰当的学习类型。 你通过在浏览器中直接运行的动手代码来练习 Machine Learning Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Machine Learning Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Machine Learning Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「监督学习、无监督学习与强化学习」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Machine Learning Academy 课中编写并运行代码吗?
能。每节 Machine Learning Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 传统编程与机器学习
- 监督学习、无监督学习与强化学习
- 机器学习工作流:从数据到预测
- 现实世界中的机器学习:用例与局限