本页讲解类别特征编码——将离散取值映射为模型可用的数值向量。
段末注释:One-Hot 编码(one-hot encoding)为 $K$ 个类别构造 $K$ 维 0/1 向量,恰一类为 1;Target Encoding(目标编码)用训练集目标统计量(如类别均值)替代类别 ID。
系列入口:00.系列规划 | 前置:02/10 分类变量相关
1. 编码方式(D2–D3)

| 方法 | 输出维 | 适用 |
|---|---|---|
| Label / Ordinal | 1 维整数 | 有序类别(低/中/高) |
| One-Hot | $K$ 维 | $K$ 小(通常 $< 20$) |
| Target Encoding | 1 维实数 | 高基数、表格树模型 |
| Hash | 固定 $h$ 维 | 极高基数、内存受限 |
| Embedding | $d$ 维可学 | 深度模型(20) |
2. Target Encoding 与泄漏(D6–D7)

类别 $c$ 的编码:
$$
\hat{\mu}c = \frac{\sum{i: x_i = c} y_i + \alpha \bar{y}}{n_c + \alpha}
$$
$\alpha$ 为平滑(向全局均值收缩)。必须在 CV 每一 fold 的 train 上算 $\hat{\mu}_c$,再 apply 到 val(08/06)。
3. 跨领域应用(D7)

| 领域 | 类别示例 | 编码 |
|---|---|---|
| 电商 | 城市、品牌(高基数) | Target / Embedding |
| 医疗 | ICD 诊断码 | Embedding 或分组 One-Hot |
| 金融 | 行业板块 | One-Hot / Ordinal 等级 |
| NLP | 词类型 | 子词 BPE ID → Embedding |
| 基因组 | 基因 ID、通路 | Embedding |
| 汽车 | 车型年款 | Ordinal + One-Hot 混合 |
| 蛋白 | 氨基酸、二级结构 | 整数索引 + Embedding |
4. 局限(D8)

| 陷阱 | 说明 |
|---|---|
| 无序 Label 编码 | 引入虚假顺序 |
| One-Hot 维数爆炸 | 高基数稀疏 |
| Target 泄漏 | 用全数据均值编码 |
| 测试新类别 | 未见类 → 未知 token 策略 |
| 树 + One-Hot | 可分裂但不如原生类别支持 |
6. sklearn 示例(D12)
1 | import pandas as pd |
7. 小结
低基数 One-Hot;高基数 Target/Embedding;有序用 Ordinal。下一篇:05 缺失与异常。
系列导航:10 Pipeline | 20 领域特化