对Python3一组数值的归一化处理方法详解
在数据分析和机器学习领域中,归一化处理是非常常见的一个操作。在Python中,有多种对一组数值进行归一化处理的方法。本篇文章将详细介绍这些方法,并且提供了两个示例来演示这些方法的应用。
什么是归一化
归一化(Normalization)是将数字特征缩放到一个共同的比例范围内的处理方法。归一化不仅可以提升模型的精度,也可以提升机器学习算法的收敛速度。常用的数值归一化方法有:最大最小值归一化、Z-score标准差归一化和小数定标标准化。
最大最小值归一化
最大最小值归一化(Min-Max Normalization)将数据映射到0和1之间。这种归一化方法非常简单,只需要将数据减去最小值,再除以最大值与最小值之差即可。
代码示例:
def min_max_normalization(x):
"""
最大最小值归一化
"""
x = (x - x.min()) / (x.max() - x.min())
return x
以上代码中,变量x是要归一化的数据集。当函数被调用时,它将输出一个新的归一化数据集。
Z-score标准差归一化
Z-score标准差归一化又称为标准差标准化,它通过将数字特征重新缩放使其平均值为0,标准偏差为1。这种归一化方法可以考虑数据的离散程度,在某些算法中效果会更好。
代码示例:
def z_score_normalization(x):
"""
Z-score标准差归一化
"""
x = (x - x.mean()) / x.std()
return x
以上代码中,变量x是要归一化的数据集。当函数被调用时,它将输出一个新的归一化数据集。
小数定标标准化
小数定标标准化(Decimal Scaling Normalization)是一种基于数字的方法,该方法将数据缩放到[-1,1]之间。这种方法需要找到一个合适的小数位数,使得数据特征值能够被有效缩放。
代码示例:
def decimal_scaling_normalization(x):
"""
小数定标标准化
"""
scale = 0
max_val = abs(x).max()
while max_val >= 1:
scale += 1
max_val /= 10
factor = pow(10, scale)
x = x / factor
return x
以上代码中,变量x是要归一化的数据集。当函数被调用时,它将输出一个新的归一化数据集。
示例1:使用最大最小值归一化
以下代码示例展示如何使用最大最小值归一化,将数据集中的数值映射到[0, 1]之间。
import pandas as pd
# 数据准备
data = {'国家': ['中国', '美国', '英国', '日本'],
'人口': [1400000000, 330000000, 66000000, 127000000]}
df = pd.DataFrame(data)
# 最大最小值归一化
df['人口'] = min_max_normalization(df['人口'])
print(df)
示例输出:
国家 | 人口 | |
---|---|---|
0 | 中国 | 1.000000 |
1 | 美国 | 0.000000 |
2 | 英国 | 0.007463 |
3 | 日本 | 0.096715 |
以上代码首先使用Pandas(一个用于数据分析的Python库)创建了一个数据集data,并将其转换成一个名为df的数据框。然后,使用我们在前面定义的 min_max_normalization 函数对该数据框中的人口列进行归一化处理,最终结果中所有数值都被缩放到范围[0,1]内。
示例2:使用Z-score标准差归一化
以下代码示例展示如何使用Z-score标准差归一化,将数据集中的数值转化为均值为0,标准偏差为1的分布。
import pandas as pd
# 数据准备
data = {'销售额': [1000, 1500, 1200, 1300, 1400]}
df = pd.DataFrame(data)
# Z-score标准差归一化
df['销售额'] = z_score_normalization(df['销售额'])
print(df)
示例输出:
销售额 | |
---|---|
0 | -1.247219 |
1 | 0.491123 |
2 | -0.518710 |
3 | -0.133005 |
4 | 0.407812 |
以上代码首先使用Pandas创建了一个销售额数据集,并将其转换为DataFrame,然后使用我们在前面定义的z_score_normalization函数对该数据集进行归一化调整。所有的数值都被转换为了均值为0,标准差为1的分布。
结论:在使用机器学习和数据分析算法时,数据的归一化是非常重要的。无论是最大最小值归一化、Z-score标准差归一化还是小数定标标准化,在不同的情况下都会带来不同的效果,重要的是要选择正确的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python3 一组数值的归一化处理方法详解 - Python技术站