L3 · 专题文章

无监督学习

机器学习聚类降维异常检测

本页只讲 3 条最关键判断:选对算法、正确评估、避免误用。

3核心点
先记住无监督学习的结果必须由业务验证

算法只输出数学结构,是否“有意义”取决于业务上下文与人工解释。

LIVE
CORE 无监督学习
01 WHAT

是什么

无监督学习是从未标注数据中自动发现隐藏结构(如分组、分布、低维表示)的机器学习范式。

02 WHY

为什么

业务中大量数据缺乏人工标注,数据科学家与算法工程师需借此进行探索性分析、特征工程与异常发现。

03 HOW

怎么做

选择合适算法(如 K-Means、PCA、DBSCAN),对数据进行标准化后训练,通过轮廓系数或可视化评估结果。

04 WHEN

什么时候

适用于标签缺失或获取成本极高、需探索数据结构或做预处理的场景;当目标明确且标签充足时应优先使用监督学习。

FOCUS

先记住这些

只留最重要的判断,细节见下方实践
01 核心点1

算法选择决定成败

K-Means 适合球形簇,DBSCAN 适合任意形状与噪声,PCA 用于线性降维,选择错误会导致结果无业务意义。

02 核心点2

评估必须结合业务

轮廓系数等指标仅反映数学质量,最终需通过业务指标(如转化率、留存率)或人工标注验证簇的有效性。

03 核心点3

数据预处理是前提

未标准化或含异常值的数据会严重扭曲距离计算,导致聚类或降维结果失效。

PROBLEM / POSITION / INTERFACE

先弄清它为什么存在,以及谁在使用

不从历史开始,从真实工作关系开始。
  1. 01 解决的问题

    拥有大量未标注数据且需要理解其内在结构或发现异常时。

    人工标注成本过高或不可行,传统规则方法无法捕捉复杂模式。

    成功标准
    成功识别出有意义的簇、低维特征或异常点,并能解释其业务含义。
  2. 02 AI 生态位

    位于数据预处理与特征发现层,为下游监督任务或业务决策提供结构化输入。

    上游
    依赖清洗后的原始数据与合理的特征工程。
    下游
    为监督学习提供特征、为业务提供分群策略或异常告警。
  3. 03 人的生态位

    负责定义分析目标、选择算法、调参、解释结果并验证业务价值。

    适合使用
    标签稀缺、需探索数据结构、做特征压缩或异常检测时。
    不必使用
    目标明确且标签充足、业务要求可解释性强或实时性极高时。
  4. 04 独特价值

    无需昂贵标注即可揭示数据内在结构,适合探索性分析与冷启动。

    结果解释困难、对超参数敏感、缺乏统一评估标准,易受数据分布与噪声影响。

    复杂度判断
    复杂度不是功能数量,而是控制与验证成本。

INTERFACE FLOW

谁在操作,信息怎样流动

  1. WHO OPERATES

    HUMAN定义目标、选择算法、调参、解释与验收结果

    SYSTEM执行数据标准化、模型训练、评估指标计算

  2. INPUT

    未标注的数值型或可嵌入的特征向量数据集。

  3. CONTROL

    算法选择、超参数(如簇数、邻域半径)、距离度量、标准化策略。

  4. OUTPUT

    簇标签、降维坐标、异常分数或概率分布,供下游系统或人工分析使用。

FLOW

最小可用流程

01数据标准化使用 StandardScaler 或 MinMaxScaler 统一量纲。
02选择并训练算法如 KMeans(n_clusters=3).fit(X)。
03评估与解释计算轮廓系数,可视化簇分布,结合业务验证。
CODE / PYTHON最小 Python 调用
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_blobs
import numpy as np

# 1. 生成示例数据
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)

# 2. 标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. 训练 K-Means
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X_scaled)

# 4. 获取结果
labels = kmeans.labels_
print("簇标签分布:", np.bincount(labels))

最短闭环:生成数据 → 标准化 → 训练 K-Means → 输出簇标签。

JSON / RESPONSE典型返回(示意)
{
  "labels": [
    0,
    1,
    2,
    0,
    1,
    2,
    0,
    1,
    2
  ],
  "cluster_centers": [
    [
      0.5,
      -0.3
    ],
    [
      -0.2,
      0.8
    ],
    [
      0.9,
      0.1
    ]
  ],
  "inertia": 123.45,
  "n_iter": 10
}

FAQ

常见问题

选型、用法与失败,不复述定义。
01无监督学习和监督学习怎么选?

有明确预测目标且标签充足时用监督学习;标签稀缺或需探索数据结构时用无监督学习。

避免在可监督场景下盲目使用无监督方法,导致结果不可解释或性能低下。
02如何确定 K-Means 的簇数量?

使用肘部法则、轮廓系数或业务先验知识综合判断。

簇数选择错误会导致过拟合或欠拟合,直接影响结果可用性。
03什么时候不需要无监督学习?

当业务目标明确、标签充足且监督模型已满足需求时。

无监督学习结果解释成本高,不应在简单场景增加复杂度。