【Python】 使用 pandas 进行数据归一化


那年夏天我和你躲在 这一大片宁静的海

直到后来我们都还在 对这个世界充满期待

今年冬天你已经不在 我的心空出了一块

很高兴遇见你 让我终究明白

回忆比真实精彩

🎵 王心凌《那年夏天宁静的海》


数据归一化(Normalization)是数据预处理中常见的一步,它通过缩放特征值,使它们位于一定范围内,通常是 [0, 1] 或 [-1, 1]。归一化有助于消除不同量纲和量级之间的影响,使得算法更加稳定和高效。本文将介绍如何使用 pandas 库进行数据归一化。

为什么需要归一化?

提升模型性能:归一化后的数据可以加速梯度下降优化过程,提高机器学习模型的收敛速度和预测性能。

消除量纲影响:在距离度量算法(如KNN)中,归一化能消除不同特征之间的量纲影响,使得特征之间的贡献更加均衡。

提高稳定性:归一化能防止数值计算中可能出现的溢出或下溢,提高模型的稳定性。

数据归一化方法

常见的归一化方法包括:

最小-最大归一化(Min-Max Normalization)

Z-score标准化

示例数据

首先,我们创建一个包含多个特征的示例 DataFrame。

python 复制代码
复制代码
import pandas as pd
import numpy as np

# 创建示例数据
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

print("原始数据:")
print(df)

最小-最大归一化

python 复制代码
df_min_max_scaled = (df - df.min()) / (df.max() - df.min())

print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)

Z-score标准化

Z-score标准化通过减去均值并除以标准差将特征值转化为均值为0,标准差为1的标准正态分布。

python 复制代码
# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()

print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

完整代码示例

以下是完整的代码示例,从创建数据到应用两种归一化方法:

python 复制代码
import pandas as pd
import numpy as np

# 创建示例数据
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

print("原始数据:")
print(df)

# 最小-最大归一化
df_min_max_scaled = (df - df.min()) / (df.max() - df.min())

print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)

# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()

print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

输出结果

plaintext 复制代码
原始数据:
   A   B    C
0  1  10  100
1  2  20  200
2  3  30  300
3  4  40  400
4  5  50  500

最小-最大归一化后的数据:
     A    B    C
0  0.00  0.00  0.00
1  0.25  0.25  0.25
2  0.50  0.50  0.50
3  0.75  0.75  0.75
4  1.00  1.00  1.00

Z-score标准化后的数据:
          A         B         C
0 -1.264911 -1.264911 -1.264911
1 -0.632456 -0.632456 -0.632456
2  0.000000  0.000000  0.000000
3  0.632456  0.632456  0.632456
4  1.264911  1.264911  1.264911

总结

数据归一化是数据预处理中重要的一步,通过缩放特征值,使其位于特定范围内,能够提高模型性能,消除量纲影响,提高计算稳定性。本文介绍了最常用的两种归一化方法:最小-最大归一化和Z-score标准化,并提供了 pandas 实现这些方法的完整代码示例。

相关推荐
再吃一根胡萝卜5 分钟前
使用 squashmigrations 命令优化 Django 迁移文件
python·django
逆向菜鸟9 分钟前
【摧毁比特币】椭圆曲线象限细分求k-陈墨仙
python·算法
有梦想的攻城狮1 小时前
Java 11中的Collections类详解
java·windows·python·java11·collections
忒可君1 小时前
C# winform FTP功能
开发语言·windows·c#
前端小趴菜051 小时前
python - input()函数
python
程序员三藏1 小时前
Selenium+python自动化测试:解决无法启动IE浏览器及报错问题
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
minji...1 小时前
C++ string类(STL简介 , string类 , 访问修改字符)
开发语言·c++
Forward♞1 小时前
Qt——文件操作
开发语言·c++·qt
瓦尔登湖5081 小时前
DAY 40 训练和测试的规范写法
python