Normalization)是什么?有什么作用

之前我们已经介绍了前处理中的特征缩放方法,包括标准化和归一化。现在我们将重点介绍归一化方法的一种形式,即Normalization(规范化),它是机器学习中一种常用的数据处理手段。

什么是Normalization(规范化)?

在机器学习中,Normalization(规范化)是指将数据转化为一定范围内的数值,从而消除不同特征之间的量纲差异。通过规范化,可以确保不同特征对模型的影响具有可比性,避免局部最优解的产生,并提高模型训练的稳定性和收敛速度。

归一化的作用

归一化主要有以下几个作用:
1. 消除不同特征之间的量纲差异:不同特征可能具有不同的取值范围和单位,这样会导致在特征选择和模型训练过程中,某些特征的权重过高,从而影响最终的结果。
2. 加速模型训练:规范化可以使得模型训练过程更加快速和稳定,减少收敛时间和梯度下降算法产生的震荡。
3. 提高模型的泛化性能:规范化可以减小特征值之间的差异,使得模型更加关注具体数值,避免过拟合问题。

下面我们将介绍常用的归一化方法中的一种,即最大最小归一化。

最大最小归一化原理

最大最小归一化是指将数据线性映射到[0, 1]的区间内。假设我们有一个数据集$X$,其中的特征集为$x_1, x_2, …, x_n$,归一化后的数据集为$X_{norm}$,我们通过以下公式进行映射:

$$x_{norm} = \frac{x – x_{min}}{x_{max} – x_{min}}$$

其中,$x$是原始数据,$x_{min}$是该特征的最小值,$x_{max}$是该特征的最大值。

最大最小归一化计算步骤

下面是最大最小归一化的计算步骤:
1. 对每个特征计算最小值$x_{min}$和最大值$x_{max}$。
2. 对每个特征使用上述公式进行归一化计算,将原始数据映射到[0, 1]的区间内。

最大最小归一化的Python实现

下面我们将使用Python来实现最大最小归一化,并解释代码细节。

首先,我们需要导入必要的库:

import numpy as np
import matplotlib.pyplot as plt

接下来,我们生成一个虚拟数据集,用于演示归一化的过程:

# 生成虚拟数据集
X = np.random.randint(0, 100, (100, 2))

我们定义一个函数normalize来实现最大最小归一化:

def normalize(X):
 X_norm = (X - np.min(X, axis=0)) / (np.max(X, axis=0) - np.min(X, axis=0))
 return X_norm

然后,我们调用该函数对数据进行归一化操作:

X_norm = normalize(X)

最后,我们可视化归一化前后的数据分布情况:

# 可视化原始数据集
plt.subplot(1, 2, 1)
plt.scatter(X[:, 0], X[:, 1])
plt.title("Original Data")

# 可视化归一化后的数据集
plt.subplot(1, 2, 2)
plt.scatter(X_norm[:, 0], X_norm[:, 1])
plt.title("Normalized Data")

plt.show()

在上述代码中,我们使用scatter函数绘制原始数据集和归一化后的数据集的散点图,并使用title函数为图表添加标题。

最终的可视化结果如下图所示:

归一化前后数据分布

代码细节解释

在代码中,我们使用了NumPy库来进行向量化计算,提高计算效率。具体而言,np.minnp.max分别用于计算特征的最小值和最大值。然后,我们使用广播运算,分别将最小值和最大值扩展为与特征矩阵X相同的形状,并进行归一化操作。最后,我们将归一化后的结果存储在X_norm变量中,并进行可视化。

通过以上的演示,我们详细地介绍了最大最小归一化的原理、公式推导、计算步骤以及Python代码示例,并解释了代码细节。最大最小归一化是一种常用且有效的数据处理方法,在机器学习中具有重要的作用。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/822617/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球