> 文章列表 > 数据处理:归一化与标准化

数据处理:归一化与标准化

数据处理:归一化与标准化

归一化与标准化

归一化和标准化是数据预处理时常用的方法,它们都可以将数据映射到特定的区间内,但是具体的实现方式和应用场景有所不同。


1 归一化与标准化的相同点

  • 都能够处理特征值之间的差异性,避免特征值之间的度量不一致或者差异过大
  • 都可以提高模型的稳定性和准确性

2 归一化与标准化的异同点

归一化和标准化的差异在于:归一化是将特征值缩放到0-1的范围内,而标准化是将数据按照均值为0、方差为1进行缩放。具体来说:

  • 归一化:可以消除不同规模或数量级的特征值之间的差异,但是无法处理异常值或数据分布不均的情况。归一化方法有最小-最大归一化、对数函数归一化等
  • 标准化:可以处理任意分布的数据,适用于特征值呈正态分布或者近似正态分布的情况,并且能够处理异常值。标准化方法有z-score标准化、小数定标标准化等
  • 归一化不会改变数据分布,标准化会改变数据分布

3 归一化标准化的适用场景

  • 归一化:适用于特征值的规模较大,需要将其缩放到[0,1]范围内的情况
  • 标准化:适用于数据分布不均匀,需要进行均值和方差的调整

4 计算方式

  • 最小-最大标准化(离差标准化)公式为:x′=x−min⁡(x)max⁡(x)−min⁡(x)x' = \\frac{x - \\min(x)}{\\max(x) - \\min(x)}x=max(x)min(x)xmin(x)
  • 对数函数归一化: x′=log⁡(xc)x' = \\log(\\frac{x}{c})x=log(cx)
  • 均值归一化:x′=x−meanmax⁡(x)−min⁡(x)x' = \\frac{x - mean}{\\max(x) - \\min(x)}x=max(x)min(x)xmean
  • z-score标准化:x′=x−μσx' = \\frac{x - \\mu}{\\sigma}x=σxμ
  • 小数定标标准化:x′=x10kx' = \\frac{x}{10^k}x=10kx

其中,xxx 是原始数据,x′x'x 是归一化或标准化后的数据,min⁡(x)\\min(x)min(x)max⁡(x)\\max(x)max(x) 分别是原始数据的最小值和最大值,ccc 是常数,μ\\muμσ\\sigmaσ 分别是原始数据的均值和标准差,kkk 是位移数,mean是均值。


补充:对数函数归一化常数c的计算
对数函数的归一化常数可以通过求解积分或利用已知的归一化条件来确定。

假设我们要归一化的对数函数为f(x)f(x)f(x),其形式可能是log⁡(x)\\log(x)log(x)ln⁡(x)\\ln(x)ln(x)等。首先,我们需要确定函数的定义域,通常情况下,对数函数的定义域为正实数集(0,∞)(0,\\infty)(0,)

接下来,我们可以根据归一化条件求解归一化常数。如果已知对数函数在某个区间上的积分值,则可以通过求解该积分并将结果与1相除来确定归一化常数。例如,对于ln⁡(x)\\ln(x)ln(x)函数在[1,e][1,e][1,e]上归一化,我们可以按照以下步骤进行:

∫1e(1x)2dx=∫1e1x2dx=[−1x]1e=−1e+1\\begin{aligned} \\int_1^e \\left(\\frac{1}{x} \\right)^2 dx &= \\int_1^e \\frac{1}{x^2}dx \\\\ &= \\left[-\\frac{1}{x}\\right]_1^e \\\\ &= -\\frac{1}{e} + 1 \\end{aligned} 1e(x1)2dx=1ex21dx=[x1]1e=e1+1

因此,归一化常数为:

c=1−1e+1=ec = \\frac{1}{-\\frac{1}{e}+1} = ec=e1+11=e

即归一化后的函数为1xln⁡(x)\\frac{1}{x}\\ln(x)x1ln(x)

另外,还存在其他的归一化条件,比如要求归一化后的函数在整个定义域上面积为1。这种情况下,我们需要对函数在整个定义域上的积分进行求解并将结果与1相除,以得到归一化常数。