1. Min-Max 归一化(常见)
公式:
x′=x−min(x)max(x)−min(x)x' = \frac{x - \min(x)}{\max(x) - \min(x)}
- 范围:把数据映射到 [0,1] 或其他区间。
- 优点:直观,保留原始分布比例。
- 缺点:受极端值影响很大。
2. Z-Score 标准化(零均值单位方差)
公式:
x′=x−μσx' = \frac{x - \mu}{\sigma}
其中 μ\mu 是均值,σ\sigma 是标准差。
- 范围:不固定,但均值 = 0,标准差 = 1。
- 优点:对极值更稳健,常用于机器学习。
- 缺点:数据要近似正态分布时效果最佳。
3. 小数定标归一化(Decimal Scaling)
公式:
x′=x10kx' = \frac{x}{10^k}
其中 kk 取使得 ∣x′∣<1|x'| < 1 的最小整数。
- 例子:如果数据在 [–985, 962],则取 k=3k=3,数据缩放到 [–0.985, 0.962]。
- 优点:计算快,适合大整数。
- 缺点:不考虑分布特征。
4. Log/对数缩放
公式:
x′=log(x+1)x' = \log(x+1)
- 适用:数据分布极度偏斜(长尾),如收入、点击次数。
- 优点:压缩大值,放大小值。
- 缺点:要求数据非负。
5. 分位数归一化(Quantile Normalization)
- 方法:将数据映射到分位数(如 0~1 的百分位)。
- 例子:95% 的值 → 0.95。
- 适用:数据分布差异很大,希望结果均匀分布在 [0,1]。
6. Max-Abs 缩放
公式:
x′=xmax(∣x∣)x' = \frac{x}{\max(|x|)}
- 范围:[-1, 1]。
- 适用:稀疏矩阵(文本 TF-IDF),不破坏稀疏性。
7. Robust Scaling(基于中位数和 IQR)
公式:
x′=x−median(x)IQR(x)x' = \frac{x - \text{median}(x)}{IQR(x)}
其中 IQR=Q3−Q1IQR = Q3 - Q1。
- 适用:有极端值时,效果比 Z-Score 更稳健。
8. 单位向量归一化(L2 Norm)
公式:
x′=x∥x∥x' = \frac{x}{|x|}
- 适用:向量(如文本 embedding),保证长度为 1。
- 范围:每个样本向量的范数归一化。
SQL 里能直接做的
- Min-Max ✅
- Z-Score ✅(用
AVG()和STDDEV()) - Max-Abs ✅
- Decimal Scaling ✅
- Log 缩放 ✅
更复杂的(分位数归一化、Robust Scaling、单位向量归一化)通常在 Python/R 里做更方便。
✅ 行动建议
- 如果只是表内数值清洗 → 用 SQL 做 Min-Max 或 Z-Score。
- 如果要喂给机器学习模型 → 推荐 Z-Score 或 Robust。
- 如果数据有极端值/偏斜 → 考虑 Log 或分位数。
- 如果是文本向量 → 单位向量归一化。
评论