数据标准化处理疑问

标准化常使用的工具

1.使用 sklearn 库中的 StandardScaler

StandardScalerscikit-learn 库中用于数据预处理的一个工具,它对每个特征进行标准化,使得特征的均值为0,标准差为1。这样做可以确保每个特征在PCA或其他算法中具有相同的重要性,因为算法通常对特征的尺度敏感。

StandardScaler 使用的公式如下:

对于每个特征中的每个数据点 x,标准化后的值 x_std 计算方法为:

1
x_std = (x - mean) / std
其中,mean 是该特征所有数据点的均值,std 是该特征所有数据点的标准差。

StandardScaler 首先计算整个数据集的均值和标准差,然后使用这些参数对每个特征的每个数据点进行标准化。这个过程通过 fit 方法完成,然后 transform 方法应用于原始数据,以生成标准化后的数据。

在实际应用中,fit_transform 方法通常一起使用,因为它首先计算均值和标准差(fit),然后使用这些参数来转换数据(transform)。这样可以确保数据的标准化是基于整个数据集的,而不是基于数据集的一部分。

转化后的数值,均值为0,标准差为1

1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import pandas as pd

# 读取数据
MVdata=pd.read_excel(r"C:\Users\Jr.hu\Desktop\指标正向化后.xlsx",index_col=0)

# 数据标准化
scaler = StandardScaler()
MVdata_scaled = scaler.fit_transform(MVdata)
print("数据标准化后:\n",MVdata_scaled)
alt text

2.自己定义公式进行计算

1
2
S=(MVdata-MVdata.mean())/MVdata.std()
print("标准化处理后的数据:\n", round(S,4))
alt text

这里发现会有一点的误差,很奇怪,看公式应该是一样的,不知道为什么

对比之后我个人认为还是第二种方法计算出来的结果相对准确一点

后面有时间再详细测试一下为什么吧

参考

https://www.cnblogs.com/chentiao/p/17203643.html

http://t.csdnimg.cn/wUqmh

上面两篇还未认真学习,先放一下

一起进步!


数据标准化处理疑问
http://jrhu0048.github.io/2024/04/08/shu-ju-biao-zhun-hua-chu-li-yi-wen/
作者
JR.HU
发布于
2024年4月8日
更新于
2024年4月8日
许可协议