# 第三讲：分类、回归、聚类和降维

## 1. 先给直觉

机器学习任务可以先粗略分成两大类：

```text
有标签：监督学习
没标签：无监督学习
```

在监督学习里，最常见的是：

```text
分类：预测类别
回归：预测数值
```

在无监督学习里，最常见的是：

```text
聚类：把相似样本分组
降维：把复杂数据压缩成更简单的表示
```

## 2. 分类：预测类别

分类任务的输出是一个类别。

例子：

| 任务 | 输入 | 输出 |
|---|---|---|
| 垃圾邮件识别 | 邮件内容 | 垃圾/非垃圾 |
| 图像分类 | 一张图片 | 猫/狗/车/人 |
| 情感分析 | 一段评论 | 正面/负面/中性 |
| 疾病筛查 | 检查指标 | 有病/无病 |

分类的标签通常是离散的。

```text
垃圾邮件、非垃圾邮件
猫、狗、车、人
正面、负面、中性
```

## 3. 二分类、多分类、多标签分类

分类还可以继续细分：

| 类型 | 含义 | 例子 |
|---|---|---|
| 二分类 | 两个类别中选一个 | 垃圾/非垃圾 |
| 多分类 | 多个类别中选一个 | 猫/狗/车/人 |
| 多标签分类 | 一个样本可以有多个标签 | 图片里同时有车、人、树 |

注意：

```text
多分类是“多选一”
多标签分类是“可以多选”
```

## 4. 回归：预测数值

回归任务的输出是一个连续数值。

例子：

| 任务 | 输入 | 输出 |
|---|---|---|
| 房价预测 | 房屋信息 | 成交价格 |
| 销量预测 | 历史销售数据 | 下月销量 |
| 温度预测 | 天气数据 | 明天温度 |
| 延迟预测 | 系统指标 | 请求耗时 |

回归的标签通常是数值：

```text
1000000 元
36.5 摄氏度
2300 件
120 毫秒
```

## 5. 分类和回归的关键区别

核心区别看输出：

```text
分类：输出类别
回归：输出数值
```

例如同样是房子：

```text
预测这套房属于高价/中价/低价 -> 分类
预测这套房具体卖多少钱 -> 回归
```

同样是邮件：

```text
预测是否垃圾邮件 -> 分类
预测这封邮件被投诉的概率 -> 可以看成回归或概率预测
```

## 6. 聚类：把相似样本分组

聚类是无监督学习任务，没有人工给出的类别标签。

模型要做的是根据相似性把样本分组。

例子：

```text
给一批用户行为数据，不告诉模型用户类型。
模型可能把用户分成：
- 高频购买用户
- 价格敏感用户
- 只浏览不购买用户
```

这些分组不是人工提前告诉模型的，而是模型根据数据相似性发现的。

## 7. 降维：把复杂数据压缩

现实数据经常有很多特征。

例如一个用户可能有几百个行为特征，一张图片可能有上百万个像素，一个文本 embedding 可能有几千维。

降维的目标是：

```text
尽量保留重要信息，同时把数据变得更简单。
```

降维常用于：

- 可视化：把高维数据压缩到二维或三维画出来。
- 去噪：去掉不重要的变化。
- 压缩：减少计算成本。
- 表示学习：得到更有用的低维表示。

## 8. 和后面内容的关系

这些概念后面会反复出现。

YOLO 里同时有分类和回归：

```text
分类：这个框里是什么物体
回归：这个框的位置坐标是多少
```

大语言模型的 next-token prediction 本质上也可以看成一个巨大分类问题：

```text
从词表里的所有 token 中，预测下一个 token 是哪一个
```

embedding 可视化时经常会用降维：

```text
把几百维或几千维向量压到二维，观察相似样本是否靠近
```

用户画像、文档分组、图片检索中经常会用聚类。

## 9. 本节最小闭环

只需要记住：

```text
分类：预测类别
回归：预测数值
聚类：无标签分组
降维：压缩复杂数据表示
```

以及：

```text
分类和回归通常属于监督学习
聚类和降维通常属于无监督学习
```

## 10. 易混点

### 易混点一：数字标签不一定是回归

如果数字只是类别编号，那还是分类。

例如：

```text
0 = 猫
1 = 狗
2 = 车
```

这里的 0、1、2 只是类别编码，不表示连续数值大小。

### 易混点二：分类模型也可能输出概率

垃圾邮件模型可能输出：

```text
垃圾邮件概率 = 0.92
```

但最终任务仍然是分类，因为目标是判断类别。

### 易混点三：聚类结果不一定天然有业务含义

模型可以把样本分成几组，但这些组代表什么，通常还需要人解释。

## 11. 理解检查

请尝试回答：

1. 判断垃圾邮件属于分类还是回归？为什么？
2. 预测房价属于分类还是回归？为什么？
3. 如果把用户按购买行为自动分组，这属于什么任务？
4. 降维主要解决什么问题？
5. YOLO 为什么同时涉及分类和回归？

