1. 概述

分类(Classification)和聚类(Clustering)是机器学习中最常见的两种方法。它们分别属于监督学习无监督学习,适用于不同场景。本文将系统性地介绍它们的核心思想、适用场景、常见算法以及如何根据任务需求选择合适的方法。

2. 分类(Classification)

2.1 什么是分类?

分类是一种监督学习方法,其核心任务是为数据集中的每个样本分配一个预定义的标签。它适用于已知类别边界、有明确标签的数据集。

分类的基本前提是:

  • 类别是离散的
  • 每个样本属于某个类别
  • 存在一个函数可以将样本映射到类别
  • 这个函数可以在训练数据上学习并泛化到新数据

2.2 分类的关键特点

✅ 有标签数据
✅ 类别数量已知
✅ 需要先验知识
✅ 模型具有较强可解释性

2.3 分类的典型应用场景

  • 图像识别(如识别图片中的字符)
  • 文本处理(如垃圾邮件过滤)
  • 视频分类(如识别视频主题)
  • 语音识别(如识别语音中的单词)
  • 医疗诊断、天气预测、故障检测等

3. 常见分类算法

3.1 逻辑回归(Logistic Regression)

最基础的分类方法之一,通过将输出映射到 (0,1) 区间来表示样本属于某类别的概率。

优点:

  • 简单、易实现
  • 可用梯度下降优化

公式表示:

$$ P(y|x) = \frac{1}{1 + e^{-w^T x}} $$

3.2 朴素贝叶斯(Naive Bayes)

基于贝叶斯定理的分类器,假设特征之间相互独立。

公式表示:

$$ P(y|x_i) = P(x_i|y) \cdot \frac{P(y)}{P(x_i)} $$

优点:

  • 适用于高维数据
  • 对缺失数据和噪声有一定容忍度

3.3 卷积神经网络(CNN)

适用于图像、视频等特征间存在强相关性的数据。

结构特点:

  • 使用卷积层提取局部特征
  • 使用 ReLU、Dropout 等激活函数
  • 输出层常用 Softmax 进行分类

优点:

  • 模型表达能力强
  • 可自动提取特征

3.4 支持向量机(SVM)

通过寻找最优超平面来划分不同类别的样本。

优点:

  • 在高维空间表现良好
  • 小样本下效果稳定

缺点:

  • 训练速度慢
  • 对参数敏感

4. 聚类(Clustering)

4.1 什么是聚类?

聚类是一种无监督学习方法,用于在无标签数据中发现结构。它不依赖于先验知识,而是根据数据之间的相似性进行分组。

聚类的基本前提是:

  • 所有样本在同一个特征空间
  • 有衡量样本相似性的度量方法(如欧氏距离)

4.2 聚类的关键特点

✅ 无标签数据
❌ 类别数量不一定已知
❌ 可解释性较差
✅ 可用于探索性分析

4.3 聚类的典型应用场景

  • 文本聚类(如识别相似文档)
  • 图像处理(如图像分割)
  • 客户细分(如用户行为分析)
  • 地理信息分析(如道路识别)
  • 社交网络分析(如识别社区)

5. 常见聚类算法

5.1 K-Means

最常用的聚类算法之一,需预设聚类数量 k。

原理:

  • 随机初始化 k 个中心点
  • 迭代更新中心点,使簇内样本距离最小

公式表示:

$$ \sum_{j=0}^{n} \min (||x_j - \mu_i||^2) $$

优点:

  • 实现简单
  • 计算效率高

缺点:

  • 需指定 k 值
  • 对异常值敏感

5.2 DBSCAN

基于密度的聚类算法,无需预设聚类数量。

参数:

  • ε:邻域半径
  • min_samples:邻域内最小样本数

优点:

  • 可发现任意形状的聚类
  • 能识别噪声点

缺点:

  • 密度差异大时效果差

5.3 谱聚类(Spectral Clustering)

基于图论,通过构建相似度矩阵进行聚类。

步骤:

  1. 构建相似度矩阵
  2. 计算矩阵的特征向量
  3. 对特征向量使用 K-Means

优点:

  • 适用于稀疏数据
  • 聚类效果好

缺点:

  • 计算复杂度高

5.4 均值漂移(Mean Shift)

基于密度估计的聚类算法,无需预设聚类数量。

优点:

  • 自动确定聚类数量
  • 不需要所有样本参与聚类

缺点:

  • 计算量大

5.5 亲和传播(Affinity Propagation)

通过模拟信息传递确定聚类中心。

优点:

  • 无需预设聚类数量
  • 对样本数量差异容忍度高

缺点:

  • 计算开销大

6. 分类 vs 聚类对比(Checklist)

特性 分类 聚类
是否需要标签 ✅ 是 ❌ 否
类别/聚类数量是否已知 ✅ 是 ❌ 否
是否需要先验知识 ✅ 需要 ❌ 不需要
可解释性 ✅ 强 ❌ 弱
泛化能力 ✅ 仅限标签一致时 ✅ 通常较好

7. 如何选择?

  • 如果你有标签数据、类别明确、需要可解释性 → 选分类
  • 如果你没有标签、想探索数据结构、不关心类别名称 → 选聚类

⚠️ 注意:分类和聚类也可以结合使用。例如,先聚类生成标签,再训练分类模型。

8. 总结

分类和聚类是机器学习的两大支柱,分别适用于监督和无监督任务。选择时应根据以下几点判断:

  • 数据是否有标签?
  • 是否知道类别数量?
  • 是否需要模型可解释?
  • 是否希望模型泛化?

理解它们的差异有助于你更高效地建模和解决问题。在实际项目中,也可以结合使用两者,发挥各自优势。


原始标题:Differences Between Classification and Clustering

» 下一篇: SSH 简介