标准差标准化(7种不同的数据标准化归一化方法总结)

数据的归一化是数据预处理中重要的的一步,很多种方法都可以被称作数据的归一化,例如简单的去除小数位,而更高级归一化技术才能对我们训练有所帮助,例如 z-score 归一化。 所以本文总结了 7...

数据的归一化是数据预处理中重要的的一步,很多种方法都可以被称作数据的归一化,例如简单的去除小数位,而更高级归一化技术才能对我们训练有所帮助,例如 z-score 归一化。

所以本文总结了 7 种常见的数据标准化(归一化)的方法。

7种不同的数据标准化(归一化)方法总结

Decimal place normalizationData type normalizationFormatting normalization (date abbreviations, date order, & deliminators)Z-Score normalizationLinear normalization (“Max-Min”)Clipping normalizationStandard Deviation NormalizationDecimal place normalization,小数位归一化

小数位归一化发生在具有数字类型的数据表中。 如果你使用过 Excel,你就会知道这是如何发生的。 默认情况下,Excel 会保留小数点后两位数字,也可以设定小数的位数,并在整个表格中进行统一。

Data type normalization,数据类型归一化

另一种常见是对数据类型的归一化。在 Excel 或 SQL 查询数据库中构建数据表时,可能会发现自己查看的数字数据有时被识别为货币,有时被识别为文本,有时被识别为数字,有时被识别为逗号分割的字符串。

问题是这些数值数据对公式和各种分析处理的操作是不一样的。所以就需要将它们统一成相同的类型。。

Formatting normalization,格式的归一化

最后一个简单的技术是格式的归一化。 这对于字符串(文本)是很常见的,并且在印刷和打印方向上出现的更多。虽然这些问题不会对分析产生影响,但是他可能会分散我们的注意力和现实的效果,例如斜体、粗体或下划线或者字体与其他的文字显示不一样。

Z-Score normalization

当我们的数据在多个维度上存在显著的大小差的数值时怎么办?例如,如果一个维度的值从 10 到 100,而另一个维度的值从 100 到 100,000,则很难比较两者的相对变化。

对于这个问题,目前最好的解决方案就是归一化。在日常工作中,最常见的归一化类型是 Z-Score 。 简单来说,Z-Score 将数据按比例缩放,使之落入一个特定区间。 公式如下:

7种不同的数据标准化(归一化)方法总结

其中 X 是数据值,μ 是数据集的平均值,σ 是标准差。

Linear normalization (“Max-Min”)

线性归一化可以说是更容易且更灵活的归一化技术。 它通常被称为“max-min”归一化,它允许分析人员获取集合中最大 x 值和最小 x 值之间的差值,并建立一个基数。

这是一个很好的开始策略,实际上,线性归一化可以将数据点归一化为任何基数。 下是线性归一化的公式:

7种不同的数据标准化(归一化)方法总结

假设“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 的归一化值计算如下:

7种不同的数据标准化(归一化)方法总结

7种不同的数据标准化(归一化)方法总结

7种不同的数据标准化(归一化)方法总结

如果E行的所有值都是相同的,那么E的标准差(std(E))等于0,那么E行的所有值都设为0。

那些算法需要归一化

1、涉及或隐含距离计算的算法,比如K-means、KNN、PCA、SVM等,一般需要进行归一化

2、梯度下降算法,梯度下降的收敛速度取决于:参数的初始位置到local minima的距离,以及学习率η的大小

3、采用sigmoid等有饱和区的激活函数,如果输入分布范围很广,参数初始化时没有适配好,很容易直接陷入饱和区,导致梯度消失,所以才会出现各种BN,LN等算法

那些算法不需要归一化

与距离计算无关的概率模型,比如Naive Bayes,不需要;

与距离计算无关的基于树的模型,比如决策树、随机森林等,树中节点的选择只关注当前特征在哪里切分对分类更好,即只在意特征内部的相对大小,而与特征间的相对大小无关。但是我们前几篇文章中说到了,使用Z-Score归一化会提高模型的准确率。其实归一化的作用就是由绝对变为了相对,所以可以说归一化对于树型模型不那么重要,是一个可选项或者说可以作为一个超参数在训练时进行选择。

作者:Manish

  • 发表于 2022-10-25 19:30:18
  • 阅读 ( 804 )
  • 分类:科技

0 条评论

请先 登录 后评论
刘勇
刘勇

621 篇文章

你可能感兴趣的文章

相关问题