数据的归一化是数据预处理中重要的的一步,很多种方法都可以被称作数据的归一化,例如简单的去除小数位,而更高级归一化技术才能对我们训练有所帮助,例如 z-score 归一化。
所以本文总结了 7 种常见的数据标准化(归一化)的方法。
- Decimal place normalization
- Data type normalization
- Formatting normalization (date abbreviations, date order, & deliminators)
- Z-Score normalization
- Linear normalization (“Max-Min”)
- Clipping normalization
- Standard Deviation Normalization
Decimal place normalization,小数位归一化
小数位归一化发生在具有数字类型的数据表中。如果你使用过 Excel,你就会知道这是如何发生的。默认情况下,Excel 会保留小数点后两位数字,也可以设定小数的位数,并在整个表格中进行统一。
Data type normalization,数据类型归一化
另一种常见是对数据类型的归一化。在 Excel 或 SQL 查询数据库中构建数据表时,可能会发现自己查看的数字数据有时被识别为货币,有时被识别为文本,有时被识别为数字,有时被识别为逗号分割的字符串。
问题是这些数值数据对公式和各种分析处理的操作是不一样的。所以就需要将它们统一成相同的类型。。
Formatting normalization,格式的归一化
最后一个简单的技术是格式的归一化。这对于字符串(文本)是很常见的,并且在印刷和打印上出现的更多。虽然这些问题不会对分析产生影响,但是他可能会分散我们的注意力和现实的效果,例如斜体、粗体或下划线或者字体与其他的文字显示不一样。
Z-Score normalization
当我们的数据在多个维度上存在显著的大小差的数值时怎么办?例如,如果一个维度的值从 10 到 100,而另一个维度的值从 100 到 100,000,则很难比较两者的相对变化。
对于这个问题,目前最好的解决方案就是归一化。在日常工作中,最常见的归一化类型是 Z-Score 。简单来说,Z-Score 将数据按比例缩放,使之落入一个特定区间。公式如下:
其中 X 是数据值,μ 是数据集的平均值,σ 是标准差。
Linear normalization (“Max-Min”)
线性归一化可以说是更容易且更灵活的归一化技术。 它通常被称为“max-min”归一化,它允许分析人员获取集合中最大 x 值和最小 x 值之间的差值,并建立一个基数。
这是一个很好的开始策略,实际上,线性归一化可以将数据点归一化为任何基数。下是线性归一化的公式:
假设“x”值为 20,最大数字为 55,最小数字为 5。为了归一化这个数字,让我们从分母开始,结果为50 (55-5) 。现在用同样的想法计算分子:x - min=15 (20–5)。所以我们标准化的 x 或 x ' 是 15/50 = 0.3。
Clipping normalization,剪裁归一化
裁剪并不完全是一种归一化技术,他其实是在使用归一化技术之前或之后使用的一个操作。简而言之,裁剪包括为数据集建立最大值和最小值,并将异常值重新限定为这个新的最大值或最小值。
例如有一个由数字 [14, 12, 19, 11, 15, 17, 18, 95] 组成的数据集。数字 95 是一个很大的异常值。我们可以通过重新分配新的最大值将其从数据中剔除。由于删除95后,数据集的范围是 11-19,因此可以将最大值重新分配为 19。最小值也同理
需要注意的是,裁剪不会从数据集中删除点,它只是重新计算数据中的统计值。
Standard Deviation Normalization,标准差归一化
假设我们的数据有五行 ,他们的ID 为 A、B、C、D 和 E,每行包含 n 个不同的变量(列)。我们在下面的计算中使用记录 E 作为示例。其余行以相同方式进行标准化。
第 i 列中 E 行的 ei 的归一化值计算如下:
当
如果E行的所有值都是相同的,那么E的标准差(std(E))等于0,那么E行的所有值都设为0。
哪些算法需要归一化
1、涉及或隐含距离计算的算法,比如K-means、KNN、PCA、SVM等,一般需要进行归一化
2、梯度下降算法,梯度下降的收敛速度取决于:参数的初始位置到local minima的距离,以及学习率η的大小,其实还是距离的计算
3、采用sigmoid等有饱和区的激活函数,如果输入分布范围很广,参数初始化时没有适配好,很容易直接陷入饱和区,导致梯度消失,所以才会出现各种BN,LN等算法
哪些算法不需要归一化
与距离计算无关的概率模型不需要,比如Naive Bayes;
与距离计算无关的基于树的模型,比如决策树、随机森林等,树中节点的选择只关注当前特征在哪里切分对分类更好,即只在意特征内部的相对大小,而与特征间的相对大小无关。但是我们前几篇文章中说到了,使用Z-Score归一化会提高模型的准确率。其实归一化的作用就是由绝对变为了相对,所以可以说归一化对于树型模型不那么重要,是一个可选项或者说可以作为一个超参数在训练时进行选择。
https://www.overfit.cn/post/767ff89fdb544dc1a20aad896d80859f
作者:Manish
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。