数据标准化(Standardization)
数据标准化(有时称为Z-score标准化或零均值标准化)是将数据转换成均值为0,标准差为1的分布。标准化的目的是消除数据中的量纲单位差异,使得每个特征对模型的贡献相对平衡。标准化常用于距离度量敏感的算法,例如K近邻(K-NN)、支持向量机(SVM)、线性回归等。
x 标准化 = x − μ σ x_{标准化} = \frac{x-\mu }{σ} x标准化=σx−μ
公式详解
x x x: 原始数据中的某个值。
μ μ μ: 数据所在特征的 均值(所有样本的算术平均值)。
σ σ σ: 数据所在特征的 标准差(反映数据的离散程度)。
计算步骤
Step 1:计算特征的均值 μ = 1 n Σ i = 1 n x i μ= \frac{1}{n}\Sigma{^n_{i=1}}x_i μ=n1Σi=1nxi
Step 2:计算标准差 σ = 1 n ∑ i = 1 n ( x i − μ ) 2 \sigma = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2} σ=n1∑i=1n(xi−μ)2
Step 3:对每个数据点应用公式 x 标准化 = x − μ σ x_{标准化} = \frac{x-\mu }{σ} x标准化=σx−μ
标准化(Z-Score)计算步骤详解
原始数据表:
学生编号 | 数学成绩(X₁) | 语文成绩(X₂) |
---|---|---|
1 | 50 | 40 |
2 | 60 | 55 |
3 | 70 | 75 |
4 | 80 | 85 |
5 | 90 | 95 |
第一步:计算数学成绩(X₁)的标准化
1. 计算均值(μ₁)
μ 1 = 50 + 60 + 70 + 80 + 90 5 = 350 5 = 70 \mu_1 = \frac{50 + 60 + 70 + 80 + 90}{5} = \frac{350}{5} = 70 μ1=550+60+70+80+90=5350=70
2. 计算标准差(σ₁)
σ 1 = ( 50 − 70 ) 2 + ( 60 − 70 ) 2 + ( 70 − 70 ) 2 + ( 80 − 70 ) 2 + ( 90 − 70 ) 2 5 \sigma_1 = \sqrt{\frac{(50-70)^2 + (60-70)^2 + (70-70)^2 + (80-70)^2 + (90-70)^2}{5}} σ1=5(50−70)2+(60−70)2+(70−70)2+(80−70)2+(90−70)2
= 400 + 100 + 0 + 100 + 400 5 = 1000 5 = 200 ≈ 14.14 = \sqrt{\frac{400 + 100 + 0 + 100 + 400}{5}} = \sqrt{\frac{1000}{5}} = \sqrt{200} \approx 14.14 =5400+100+0+100+400=51000=200≈14.14
3. 标准化计算(逐值)
公式:
x 标准化 = x − μ σ x_{\text{标准化}} = \frac{x - \mu}{\sigma} x标准化=σx−μ
学生编号 | 计算过程 | 标准化结果 |
---|---|---|
1 | (50 - 70) / 14.14 | -1.41 |
2 | (60 - 70) / 14.14 | -0.71 |
3 | (70 - 70) / 14.14 | 0.00 |
4 | (80 - 70) / 14.14 | 0.71 |
5 | (90 - 70) / 14.14 | 1.41 |
第二步:计算语文成绩(X₂)的标准化
1. 计算均值(μ₂)
μ 2 = 40 + 55 + 75 + 85 + 95 5 = 350 5 = 70 \mu_2 = \frac{40 + 55 + 75 + 85 + 95}{5} = \frac{350}{5} = 70 μ2=540+55+75+85+95=5350=70
2. 计算标准差(σ₂)
σ 2 = ( 40 − 70 ) 2 + ( 55 − 70 ) 2 + ( 75 − 70 ) 2 + ( 85 − 70 ) 2 + ( 95 − 70 ) 2 5 \sigma_2 = \sqrt{\frac{(40-70)^2 + (55-70)^2 + (75-70)^2 + (85-70)^2 + (95-70)^2}{5}} σ2=5(40−70)2+(55−70)2+(75−70)2+(85−70)2+(95−70)2
= 900 + 225 + 25 + 225 + 625 5 = 2000 5 = 400 = 20 = \sqrt{\frac{900 + 225 + 25 + 225 + 625}{5}} = \sqrt{\frac{2000}{5}} = \sqrt{400} = 20 =5900+225+25+225+625=52000=400=20
3. 标准化计算结果
学生编号 | 计算过程 | 标准化结果 |
---|---|---|
1 | (40 - 70) / 20 | -1.50 |
2 | (55 - 70) / 20 | -0.75 |
3 | (75 - 70) / 20 | 0.25 |
4 | (85 - 70) / 20 | 0.75 |
5 | (95 - 70) / 20 | 1.25 |
验证标准化效果
验证数学成绩(X₁标准化)的均值和标准差
1. 计算均值
μ X 1 标准化 = − 1.41 + ( − 0.71 ) + 0 + 0.71 + 1.41 5 = 0 5 = 0 \mu_{X1标准化} = \frac{-1.41 + (-0.71) + 0 + 0.71 + 1.41}{5} = \frac{0}{5} = 0 μX1标准化=5−1.41+(−0.71)+0+0.71+1.41=50=0
2. 计算标准差
σ X 1 标准化 = ( − 1.41 ) 2 + ( − 0.71 ) 2 + 0 2 + 0.7 1 2 + 1.4 1 2 5 \sigma_{X1标准化} = \sqrt{\frac{(-1.41)^2 + (-0.71)^2 + 0^2 + 0.71^2 + 1.41^2}{5}} σX1标准化=5(−1.41)2+(−0.71)2+02+0.712+1.412
= 1.988 + 0.504 + 0 + 0.504 + 1.988 5 = 5 5 = 1 = \sqrt{\frac{1.988 + 0.504 + 0 + 0.504 + 1.988}{5}} = \sqrt{\frac{5}{5}} = 1 =51.988+0.504+0+0.504+1.988=55=1
验证语文成绩(X₂标准化)的均值和标准差
1. 计算均值
μ X 2 标准化 = − 1.5 + ( − 0.75 ) + 0.25 + 0.75 + 1.25 5 = 0 5 = 0 \mu_{X2标准化} = \frac{-1.5 + (-0.75) + 0.25 + 0.75 + 1.25}{5} = \frac{0}{5} = 0 μX2标准化=5−1.5+(−0.75)+0.25+0.75+1.25=50=0
2. 计算标准差
σ X 2 标准化 = ( − 1.5 ) 2 + ( − 0.75 ) 2 + 0.2 5 2 + 0.7 5 2 + 1.2 5 2 5 \sigma_{X2标准化} = \sqrt{\frac{(-1.5)^2 + (-0.75)^2 + 0.25^2 + 0.75^2 + 1.25^2}{5}} σX2标准化=5(−1.5)2+(−0.75)2+0.252+0.752+1.252
= 2.25 + 0.5625 + 0.0625 + 0.5625 + 1.5625 5 = 5 5 = 1 = \sqrt{\frac{2.25 + 0.5625 + 0.0625 + 0.5625 + 1.5625}{5}} = \sqrt{\frac{5}{5}} = 1 =52.25+0.5625+0.0625+0.5625+1.5625=55=1
应用场景
- 距离度量算法:如K近邻(K-NN)、支持向量机(SVM)、K均值聚类等,这些算法依赖于数据点之间的距离。如果数据的量纲不统一或尺度不一致,模型可能会受到影响。
- 梯度下降算法:例如在线性回归、逻辑回归、神经网络等中,标准化有助于加速梯度下降过程,避免某些特征因量纲不同而导致收敛速度慢。
优点
- 对于大多数机器学习算法,标准化能提高模型的表现,特别是对于距离敏感的算法。
- 可以消除不同特征间的尺度差异,使得所有特征具有相同的权重。
缺点
- 标准化后,数据不再保留原来的数据分布(如正态分布等),因此对于某些需要数据分布特征的算法可能不适用。
- 对异常值(outliers)敏感,异常值会影响均值和标准差的计算,从而影响标准化的效果
数据归一化(Normalization)
数据归一化(又叫最小-最大归一化)是将数据按比例缩放到指定的区间内,通常是[0, 1]区间。归一化的目的是让数据的值落在一个统一的范围内,避免特征值过大或过小对模型造成影响,尤其是那些依赖于数据范围的算法,如神经网络。
归一化公式(Min-Max Normalization)
1. 基础公式(缩放至[a,b]区间)
x norm = a + ( x − x min ) × ( b − a ) x max − x min x_{\text{norm}} = a + \frac{(x - x_{\min}) \times (b - a)}{x_{\max} - x_{\min}} xnorm=a+xmax−xmin(x−xmin)×(b−a)
2. 常用公式(缩放至[0,1]区间)
x norm = x − x min x max − x min x_{\text{norm}} = \frac{x - x_{\min}}{x_{\max} - x_{\min}} xnorm=xmax−xminx−xmin
应用场景
- 神经网络:尤其是深度学习中的神经网络,在训练过程中经常使用归一化处理,因为神经网络的激活函数(如sigmoid、tanh)对输入数据的范围非常敏感。
- 梯度下降优化算法:对于某些需要快速收敛的优化问题,归一化有助于加速训练过程。
- 需要控制数据范围的算法:例如一些基于边界计算的算法(如支持向量机中的核函数)对输入数据的范围比较敏感,因此也需要进行归一化。
优点
- 归一化后的数据保持在固定的范围内,避免了特征值差异较大对算法的影响。
- 对于某些算法(如神经网络),归一化可以加速学习过程,提高模型的收敛速度。
缺点
- 归一化无法处理数据中的异常值,因为极端值(如离群点)可能会影响最大值和最小值,导致归一化后数据的分布不均匀。
- 对于数据分布呈正态分布或具有较大方差的情况,归一化可能不合适。