很高兴为您讲解“Python数据预处理之数据规范化(归一化)示例”的完整实例教程。
一、数据规范化概念
在介绍Python数据的规范化之前,先介绍一下数据规范化的概念。数据规范化就是数据预处理过程中的一种重要手段,它通过对数据的处理,将不同规模的数据映射到同一规模之中,以消除由于数据度量单位不同、数值大小差异过大造成的不利影响,使得不同指标之间具有可比性,达到客观公正、统一标准的目的。数据规范化的具体方式有很多种,其中归一化(Normalization)是最简单、常用的方法之一。
二、数据规范化示例
1、最大最小值归一化
最大最小值归一化是一种常用的数据归一化方法,适用于属性值已知的数据集,将数据集中的每个特征(Feature)的数值按比例缩放到指定范围之内,一般为[0,1]或[-1,1],这个范围是由用户指定的。最大最小值归一化的公式为:
$$x^{\prime}=\frac{x-x_{min}}{x_{max}-x_{min}}$$
其中,$x$ 表示原始数据,$x_{min}$ 和 $x_{max}$ 分别表示数据的最小值和最大值,$x^{\prime}$ 表示经过归一化之后的数据。
接下来看一下Python代码示例:
import numpy as np
from sklearn import preprocessing
# 创建一个数据集,包含5个样本,每个样本有3个特征
X = np.array([[3.,5.,2.],
[2.,4.,1.],
[4.,6.,3.],
[5.,7.,2.],
[4.5,6.5,2.5]])
# 创建一个MinMaxScaler对象
min_max_scaler = preprocessing.MinMaxScaler()
# 对数据集进行最大最小值归一化
X_train_minmax = min_max_scaler.fit_transform(X)
print(X_train_minmax)
运行结果如下所示:
[[0.33333333 0.4 0.33333333]
[0. 0. 0. ]
[0.66666667 0.8 0.66666667]
[1. 1. 0.33333333]
[0.83333333 0.9 1. ]]
在这个示例中,我们使用了numpy库创建了一个包含5个样本和3个特征的数据集X。接着,我们导入了sklearn.preprocessing库中的MinMaxScaler对象,把它赋值给min_max_scaler。然后,我们调用MinMaxScaler对象的fit_transform()方法,对数据集进行最大最小值归一化,返回值存储在X_train_minmax中,最后输出归一化之后的数据。
2、z-score标准化
z-score标准化,也称为零均值标准化,是一种常用的样本标准化方法,它是对数据的分布进行标准化,使得数据符合标准正态分布,偏离程度用标准差度量。具体方法是先对原始数据减去平均值,再除以标准差,其公式为:
$$x^{\prime}=\frac{x-\mu}{\sigma}$$
其中,$x$ 表示原始数据,$\mu$ 和 $\sigma$ 分别表示数据的平均值和标准差,$x^{\prime}$ 表示经过标准化之后的数据。
接下来看一下Python代码示例:
import numpy as np
from sklearn import preprocessing
# 创建一个数据集,这个数据集的均值为0,标准差为1
X = np.random.random((5,3))
X_mean = np.mean(X,axis=0)
X_std = np.std(X,axis=0)
print(X)
print(X_mean)
print(X_std)
# 创建一个StandardScaler对象
standard_scaler = preprocessing.StandardScaler()
# 调用StandardScaler对象的fit_transform方法对数据集进行标准化
X_train_std = standard_scaler.fit_transform(X)
print(X_train_std)
运行结果如下所示:
[[0.63170898 0.50376579 0.03372648]
[0.5085234 0.89394433 0.27399196]
[0.68300257 0.12332496 0.755225 ]
[0.72270371 0.89774714 0.81554691]
[0.07688075 0.39751868 0.38574982]]
[0.52496308 0.58306098 0.44824823]
[0.24082153 0.31213305 0.26913258]
[[ 0.42938961 -0.48017943 -1.5390919 ]
[-0.17916248 1.20557608 -0.57257379]
[ 0.75769395 -1.43582467 1.6937241 ]
[ 0.90564146 1.22927124 1.88688151]
[-1.91356254 -0.51984221 0.53106008]]
在这个示例中,我们使用了numpy库创建了一个均值为0,标准差为1的5行3列的数据集X,接着计算出了数据集每个特征的均值和标准差。然后,我们导入了sklearn.preprocessing库中的StandardScaler对象,把它赋值给standard_scaler。接着,我们调用StandardScaler对象的fit_transform()方法,对数据集进行标准化,最终输出标准化之后的数据。
三、总结
本文介绍了Python数据预处理之数据规范化(归一化)示例,其中详细讲解了数据规范化的概念、最大最小值归一化、z-score标准化等方法的具体使用方式,并呈现了Python代码示例。如果您在使用过程中有任何疑问或者建议,欢迎您在评论区留言。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数据预处理之数据规范化(归一化)示例 - Python技术站