【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 实现这些方法的完整代码示例。

相关推荐
Ren_xixi7 分钟前
如何在pycharm里面运行pytest用例
python·pycharm
⁡ ⁡17 分钟前
Python打字练习
python
IT数据小能手19 分钟前
使用Go语言实现高效的数据挖掘
开发语言·golang·数据挖掘
xy1899034 分钟前
C++线程安全是如何保证的?线程不安全是如何出现的?有什么处理方案呢
开发语言·c++·安全
方程式sunny38 分钟前
C#的五大设计原则-solid原则
开发语言·c#
IT数据小能手43 分钟前
PHP多线程爬虫:高效解析电商网页内容
开发语言·爬虫·php
范范08251 小时前
Symfony实战手册:PHP框架的高级应用技巧
开发语言·php·symfony
新手村领路人1 小时前
macos m2 百度paddleocr文字识别 python
开发语言·python·macos
JAMES费1 小时前
python机器人编程——用pytorch实现六轴机械臂的正向和逆向数值解算,及python算法解析
pytorch·python·机器人