归一化和标准化

简介: 归一化和标准化

1. 理论介绍

归一化和标准化是数据预处理中常用的技术,用于将不同特征的数据缩放到相同的范围或分布中,以便模型能够更好地学习和预测。归一化通常指将数据缩放到[0, 1]的范围内,而标准化则是将数据转换为均值为0,标准差为1的分布。

除了归一化和标准化算法外,常用的数据预处理算法还包括最大最小标定、均值移除、离散化、二值化等。另外还有PCA主成分分析、特征选择、特征抽取、特征构造等方法也可以用于数据预处理。

2. 归一化

归一化是通过线性变换将特征缩放到[0, 1]的范围内,公式如下:

[ x_{norm} = \frac{x - x_{min}}{x_{max} - x_{min}} ]

其中,( x_{min} )是特征的最小值,( x_{max} )是特征的最大值。归一化可以通过MinMaxScaler实现,示例代码如下:

from sklearn.preprocessing import MinMaxScaler

import numpy as np

创建示例数据

data = np.array([[12], [23], [34]])

初始化MinMaxScaler

scaler = MinMaxScaler()

对数据进行归一化

normalized_data = scaler.fit_transform(data)

print(normalized_data)

3. 标准化

标准化通过计算特征的均值和标准差,然后进行变换得到均值为0,标准差为1的分布,公式如下:

[ x_{std} = \frac{x - \mu}{\sigma} ]

其中,( \mu )是特征的均值,( \sigma )是特征的标准差。标准化可以通过StandardScaler实现,示例代码如下:

from sklearn.preprocessing import StandardScaler

import numpy as np

创建示例数据

data = np.array([[12], [23], [34]])

初始化StandardScaler

scaler = StandardScaler()

对数据进行标准化

standardized_data = scaler.fit_transform(data)

print(standardized_data)

4. 参数介绍

  • MinMaxScaler参数:
  • feature_range: 缩放的范围,通常为[0, 1]
  • StandardScaler参数:无

以上示例代码中,我们首先创建了示例数据,然后分别使用MinMaxScaler和StandardScaler对数据进行归一化和标准化,并打印出处理后的数据。

通过归一化和标准化,我们可以更好地使不同特征的数据具有相同的尺度和分布,从而提高模型的性能和准确性。

5. 归一化和标准化的选择

归一化和标准化都是常见的数据预处理技术,但在实际应用中需要根据具体的数据和模型来选择合适的方法。一般来说,如果特征的分布对模型影响较大,可以选择标准化;如果特征的分布对模型影响较小,可以选择归一化。另外,对于需要使用距离度量的算法(如K均值聚类、支持向量机等),通常会选择标准化,因为距离度量对特征的尺度和分布较为敏感。

6. 示例应用

假设我们有一个数据集,包含身高(单位:cm)和体重(单位:kg)两个特征。我们想要对这两个特征进行归一化和标准化,以便用于训练模型。以下是对数据集进行归一化和标准化的完整示例代码:

from sklearn.preprocessing import MinMaxScaler, StandardScaler

import numpy as np

创建示例数据

data = np.array([[17065], [18070], [16060]])

初始化MinMaxScalerStandardScaler

min_max_scaler = MinMaxScaler()

standard_scaler = StandardScaler()

对数据进行归一化

normalized_data = min_max_scaler.fit_transform(data)

print("Normalized data:")

print(normalized_data)

对数据进行标准化

standardized_data = standard_scaler.fit_transform(data)

print("Standardized data:")

print(standardized_data)

通过以上示例代码,我们可以看到对身高和体重进行了归一化和标准化处理后的数据。这样处理后的数据可以更好地用于训练模型,提高模型的性能和准确性。

结论

归一化和标准化是常用的数据预处理技术,可以帮助我们更好地处理特征数据,提高模型的性能。在实际应用中,需要根据具体的数据和模型来选择合适的方法,并通过实验验证来确定最佳的预处理方式。

相关文章
|
2月前
|
机器学习/深度学习 算法 搜索推荐
机器学习入门(四):距离度量方法 归一化和标准化
机器学习入门(四):距离度量方法 归一化和标准化
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
【YOLOv8改进 - 特征融合NECK】 GIRAFFEDET之GFPN :广义特征金字塔网络,高效地融合多尺度特征
YOLOv8专栏探讨了目标检测的创新改进,提出了GiraffeDet,一种轻量级主干和深度颈部模块结合的高效检测网络。GiraffeDet使用S2D-chain和GFPN,优化多尺度信息交换,提升检测性能。代码和论文可在相关链接找到。GFPN通过跳跃和跨尺度连接增强信息融合。文章还展示了核心组件如SPPV4、Focus和CSPStage的代码实现。
|
机器学习/深度学习 资源调度 算法
特征工程:归一化与标准化
样本特征由于来源以及度量单位不同,它们的尺度(Scale),或者说是取值范围有可能差异很大。如果一个机器学习算法在缩放全部或者部分特征后不影响它的学习和预测,我们就称该算法具有尺度不变性(Scale Invariance)。神经网络从理论上应该具有尺度不变性,可以通过参数的调整来适应不同特征的尺度。
165 0
|
机器学习/深度学习 监控
使用2D卷积技术进行时间序列预测(上)
使用2D卷积技术进行时间序列预测
250 1
使用2D卷积技术进行时间序列预测(上)
|
机器学习/深度学习
使用2D卷积技术进行时间序列预测(下)
使用2D卷积技术进行时间序列预测
464 1
使用2D卷积技术进行时间序列预测(下)
|
机器学习/深度学习 资源调度 自然语言处理
深度学习基础入门篇[七]:常用归一化算法、层次归一化算法、归一化和标准化区别于联系、应用案例场景分析。
深度学习基础入门篇[七]:常用归一化算法、层次归一化算法、归一化和标准化区别于联系、应用案例场景分析。
|
数据采集 机器学习/深度学习 数据挖掘
机器学习数据预处理——归一化(Normalization)和标准化(standardlization)
昨天进行一场答辩,被评委老师问起来归一化的概念,一时间紧张没有想起来,后来复盘回忆,感觉还是自己的理解不够深刻,才导致关键时刻掉链子,没有想起。所以特此整理一下,以供加深印象。
1698 0
|
数据采集 Python
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
412 0
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
|
机器学习/深度学习 数据采集 算法
数据预处理|关于标准化和归一化的一切
数据预处理|关于标准化和归一化的一切
数据预处理|关于标准化和归一化的一切
|
机器学习/深度学习 数据可视化 PyTorch
使用度量学习进行特征嵌入:交叉熵和监督对比损失的效果对比
使用度量学习进行特征嵌入:交叉熵和监督对比损失的效果对比
298 0
使用度量学习进行特征嵌入:交叉熵和监督对比损失的效果对比