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

相关推荐
Yongqiang Cheng几秒前
Python operator.itemgetter(item) and operator.itemgetter(*items)
python·operator·itemgetter
MavenTalk3 分钟前
Move开发语言在区块链的开发与应用
开发语言·python·rust·区块链·solidity·move
FksLiao15 分钟前
Superset安装
python
L Jiawen22 分钟前
【Python · PyTorch】卷积神经网络(基础概念)
pytorch·python·cnn
goomind28 分钟前
深度学习模型评价指标介绍
人工智能·python·深度学习·计算机视觉
XiaoLeisj36 分钟前
【JavaEE初阶 — 多线程】生产消费模型 & 阻塞队列
java·开发语言·java-ee
->yjy36 分钟前
wordcloud库基本介绍
python
2401_8401922739 分钟前
python基础大杂烩
linux·开发语言·python
@东辰43 分钟前
【golang-技巧】- 定时任务 - cron
开发语言·golang·cron
abments43 分钟前
JavaScript逆向爬虫教程-------基础篇之常用的编码与加密介绍(python和js实现)
javascript·爬虫·python