11 监督学习与非监督学习

在计算机视觉的应用中,机器学习是核心组成部分,而在机器学习中,我们常常将算法分为两大类:监督学习非监督学习。本篇将深入探讨这两种学习方式,理解它们的基本原理和实际应用。

监督学习

定义

监督学习是指以带标签的数据集进行训练的过程。模型学习输入数据与输出标签之间的映射关系,目标是使模型能够基于新的输入数据预测输出。

典型算法

  1. 线性回归:用于回归问题,通过拟合一条直线来预测连续值。

    示例公式:
    $$
    y = wx + b
    $$
    其中 $y$ 为输出,$x$ 为输入特征,$w$ 为权重,$b$ 为偏置。

  2. 逻辑回归:主要用于二分类问题,通过映射函数(如 Sigmoid 函数)对连续输入进行分类。

    示例公式:
    $$
    P(y=1|x) = \frac{1}{1 + e^{-(wx + b)}}
    $$

  3. 支持向量机(SVM):通过寻找最优超平面来分离不同类别的数据,适用于线性和非线性分类。

案例分析

手写数字识别:图像分类问题的典型案例是手写数字识别(MNIST 数据集)。我们使用 监督学习 方法,通过提供标记的手写数字图像来训练模型,使其能够识别新的手写数字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

# 加载数据
X, y = fetch_openml('mnist_784', version=1, return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)

# 使用随机森林分类器
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# 预测并评估模型
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

在上述代码中,我们使用了随机森林算法来处理 MNIST 数据集,并通过分类报告评估模型性能。

非监督学习

定义

非监督学习是指在没有标签的数据集上进行模型训练,目标是寻找数据中的模式和结构。常见的方法包括聚类和降维。

典型算法

  1. K-means 聚类:一种常见的聚类技术,通过将数据划分为 K 个簇,最小化簇内距离。

    示例公式:
    $$
    J = \sum_{i=1}^{K} \sum_{j=1}^{n} || x^{(j)} - \mu_i ||^2
    $$

  2. 主成分分析(PCA):用于降维,通过线性方式将数据投影到低维空间,以保留尽可能多的方差信息。

  3. 自编码器:一种神经网络架构,通过压缩输入数据,再重建回原始数据,常用于特征学习。

案例分析

客户细分:在市场营销中,企业可能希望根据客户行为对其进行细分,非监督学习(如 K-means)非常有效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 加载数据
data = load_iris()
X = data.data

# 使用 K-means
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
labels = kmeans.labels_

# 可视化
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('特征 1')
plt.ylabel('特征 2')
plt.title('K-means 聚类结果')
plt.show()

在此示例中,我们通过 K-means 将鸢尾花数据集聚类,并使用散点图可视化聚类结果。

小结

在计算机视觉的任务中,监督学习非监督学习各有其优势和适用场景。监督学习能够为特定任务提供精确的预测,而非监督学习则在探索数据结构与模式方面表现优异。在后面的课程中,我们将进一步探索如何评估和选择合适的模型来解决具体问题。

敬请期待,下一篇将深入探讨模型评估与选择

11 监督学习与非监督学习

https://zglg.work/cv-network-tutorial/11/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论