4 机器学习基础之监督学习与非监督学习
系列进度
机器学习入门 · 第 4 / 21 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
监督学习像有答案的练习题,模型学习输入和标签之间的对应关系;无监督学习像整理一堆未标注材料,重点是发现相似性和结构。
遇到一个任务,先问有没有可靠标签。没有标签时不要硬做分类,可以先做聚类、降维或数据探索。
在前一篇中,我们探讨了机器学习的发展历程,如何从早期的数据挖掘技术演变为如今广泛应用的智能算法。随着对机器学习的深入理解,我们接下来要讨论的就是机器学习的两大主要类型:监督学习和非监督学习。
监督学习
监督学习是一种机器学习任务,其中模型在具有标签的数据集上进行训练。换句话说,监督学习的目标是根据输入的特征(feature)预测输出的标签(label)。这是通过建立输入和标签之间的模型来实现的。
区分监督学习和非监督学习时,先看训练数据有没有明确答案。分类回归看标签,聚类降维更关注结构发现。
监督学习的工作原理
在监督学习中,我们通常有一个包含输入特征和对应标签的数据集。训练过程会用这些已标记的数据来调整模型的参数,使得模型能够捕捉到特征与标签之间的关系。一旦模型训练完成,它就可以用在新的、未标记的数据上进行预测。
监督学习的常见算法
-
线性回归:对于回归问题,线性回归尝试找到一个最适合的直线来描述特征与标签之间的关系。
-
逻辑回归:用于二分类任务,逻辑回归通过一个Sigmoid函数将输出映射到[0, 1]的范围内。
-
决策树:通过创建树形结构来对数据进行分类,决策树根据特征的值做出不同的决策。
-
支持向量机(SVM):寻找一个最优超平面,将不同类的数据点分开。
案例:线性回归
假设我们想要根据房屋面积预测房价。我们可以使用线性回归来建立一个模型。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 生成一些示例数据
X = np.array([[100], [150], [200], [250], [300]]) # 房屋面积
y = np.array([150, 200, 250, 300, 350]) # 房价
# 创建线性回归模型
model = LinearRegression()
model.fit(X, y)
# 进行预测
X_new = np.array([[120], [170], [220]]).reshape(-1, 1)
y_pred = model.predict(X_new)
# 可视化结果
plt.scatter(X, y, color='blue', label='实际房价')
plt.plot(X_new, y_pred, color='red', label='预测房价')
plt.xlabel('房屋面积')
plt.ylabel('房价')
plt.legend()
plt.show()
在这个例子中,我们建立了一个简单的线性回归模型,利用房屋面积预测房价。X是面积,y是对应的房价。通过模型的训练,我们能够得到对新房屋面积的房价预测。
非监督学习
非监督学习与监督学习相反,它不依赖于标签数据。非监督学习的目标是从未标记的数据中发现模式和结构,寻找数据的内在关系。
学习《机器学习基础之监督学习与非监督学习》不必一口气吃完所有细节。先挑一个能动手验证的小问题,再顺着图和正文补齐概念。
非监督学习的工作原理
在非监督学习中,模型通过输入数据的特征进行自主学习,寻找数据之间的相似性或差异性。这类学习常用于聚类、降维以及图像处理等任务。
非监督学习的常见算法
-
K-均值聚类:将数据点划分为
K个聚类,使得同一聚类内的数据点彼此尽可能相似,而不同聚类的数据点则更为不同。 -
主成分分析(PCA):用于数据降维,通过找到数据的主成分来减少特征的数量,同时保留大部分的信息。
-
异常检测:识别与正常模式显著不同的数据点。
案例:K-均值聚类
假设我们想要对一组客户进行分群,以便更好地制定市场策略。我们可以使用K-均值聚类算法来完成这一任务。
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 客户数据(例如:年收入与消费水平)
X = np.array([[15, 200], [16, 250], [17, 230], [30, 150], [35, 145], [40, 100]])
# 创建K均值聚类模型
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='rainbow')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], color='black', marker='X', s=200)
plt.xlabel('年收入')
plt.ylabel('消费水平')
plt.title('客户聚类结果')
plt.show()
在这个例子中,我们对客户数据进行了K-均值聚类分析。通过将客户分为两类,我们可以更好地理解他们的行为模式,并针对性地进行营销策略的制定。
读到这里,可以把《机器学习基础之监督学习与非监督学习》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。
读完《机器学习基础之监督学习与非监督学习》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。
结论
在本篇中,我们详细探讨了监督学习和非监督学习的基本概念,并结合实际案例进行了说明。这两种学习模式各自有其优缺点,选择哪种模式往往取决于待解决问题的具体需求和数据的可用性。在下一篇教程中,我们将继续深入探索常见的机器学习算法,这将为读者提供更广泛的工具和技术,以解决实际问题。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
机器学习基础之监督学习与非监督学习适合谁读?
这是 机器学习入门 系列第 4 / 21 篇,适合正在学习机器学习入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇机器学习入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读