归一化和标准化(Z-Score)

发布时间:2023年12月19日

在处理数据过程中,通常会有不同规格的数据,比如年龄的取值范围是0-130,收入的取值范围是0-100000等等,如果不进行归一化或标准化处理,梯度下降每次走过的相对长度就不一样,就导致某个参数很快就找到了最优解,另一个参数还早得很。

归一化(Normalization)

归一化是将数据缩放到固定范围内的过程,最常见的是0到1之间。这种方法尤其适用于参数的尺度相差很大的情况。归一化的原理就是整体缩放数据刀0-1之间,公式是:

x normalized = x ? x min x max ? x min x_{\text{normalized}} = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} xnormalized?=xmax??xmin?x?xmin??

其中, x x x是原始数据点, x min x_{\text{min}} xmin? x max x_{\text{max}} xmax?分别是数据集中的最小值和最大值。

归一化适用于不假设数据分布的算法,如K最近邻和神经网络。

标准化(Z-Score Standardization)

标准化涉及到数据的重新缩放,使得它们的均值为0,标准差为1。标准化就是相当于把原来正太分布的数据移动到x=0的位置,让数据中位值和y轴重叠,同时数据集中的值在其均值周围分布的平均距离是1,因为平均距离是1但是大量数据集中在1以内(即-1~1之间)因此1以外的大概会分布到-3~3之间,最终就形成大部分数据在-3~3之间。公式是:

x standardized = x ? μ σ x_{\text{standardized}} = \frac{x - \mu}{\sigma} xstandardized?=σx?μ?

其中, μ \mu μ是数据集的均值,而 σ \sigma σ是数据集的标准差。

标准化适用于假设数据为正态分布的算法,如线性回归和逻辑回归。

归一化和标准化的代码实现如下:

import numpy as np
import matplotlib.pyplot as plt

# 生成正态分布的特征X和目标y数据
X = np.random.normal(50, 10, 1000)
y = np.random.normal(30, 5, 1000)

# 归一化y
normalized_y = (y - np.min(y)) / (np.max(y) - np.min(y))

# 标准化y
standardized_y = (y - np.mean(y)) / np.std(y)

# 绘制散点图
plt.figure(figsize=(15, 5))

# 绘制原始数据的散点图
plt.subplot(1, 3, 1)
plt.scatter(X, y, alpha=0.6, color='blue')
plt.title('Original Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('y')

# 绘制归一化后的数据散点图
plt.subplot(1, 3, 2)
plt.scatter(X, normalized_y, alpha=0.6, color='orange')
plt.title('Normalized Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('Normalized y')

# 绘制标准化后的数据散点图
plt.subplot(1, 3, 3)
plt.scatter(X, standardized_y, alpha=0.6, color='green')
plt.title('Standardized Data Scatter Plot')
plt.xlabel('X')
plt.ylabel('Standardized y')

plt.tight_layout()
plt.show()

图像绘制的结果,可以看到y的取值分别进行了归一化和标准化:
在这里插入图片描述
使用了Seaborn库来绘制原始数据、归一化后的数据和标准化后的数据的密度分布(KDE,Kernel Density Estimation)。这些图表显示了数据在不同处理(归一化和标准化)后的分布情况。

在第一个图表(Original Data Distribution)中,您可以看到特征 X X X(蓝色)和目标 y y y(红色)的原始分布情况。
第二个图表(Normalized Data Distribution)展示了将 X X X y y y 归一化后的分布情况。
第三个图表(Standardized Data Distribution)则展示了 X X X y y y标准化后的分布情况。
在这里插入图片描述

文章来源:https://blog.csdn.net/eevee_1/article/details/135091895
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。