数据的标准化处理——基于python

数据的标准化处理——基于R


之前写过用R来进行标准化: 数据的标准化处理——基于R

归一化(normalization)

将数据缩放到[0,1]的(min—max Normalization)
X ∗ = X i − X m i n X m a x − X m i n X^{\ast}=\frac{X_i-X_{min}}{X_{max}-X_{min}} X=XmaxXminXiXmin
通常将上面这种标准化称为归一化
缩放到[-1,1]的 Mean —Normalization
X ∗ = X i − m e a n ( X ) X m a x − X m i n X^{\ast}=\frac{X_i-mean(X)}{X_{max}-X_{min}} X=XmaxXminXimeanX

python实现

本次用到numpy和scikit-learn两个模块,请自行安装

import  numpy as np
from  sklearn  import  preprocessing

我们先用随机数生成一个十行十列的dataframe

feature=a=np.random.randint(low=10, high=20, size=(10,10))
feature

image-20221116185640765

首先创建缩放器,注意代码里面的range就是我们缩放的范围

#创建缩放器
minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))#这里的feature是固定的与数据名无关
scale_feature=minmax_scale.fit_transform(feature)#这里的future就是数据名
print(scale_feature)

输出结果:

image-20221116190109462

完整代码: 没有输出结果请加一个print

import  numpy as np
from  sklearn  import  preprocessing
#%% md

#%%
x=a=np.random.randint(low=10, high=20, size=(10,10))
# feature
#创建缩放器
minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))
scale_feature=minmax_scale.fit_transform(x)
scale_feature

标准化

将数据变换为均值为0,标准差为1的分布,并非一定是标准正态的

X ∗ = X i − μ σ X^{\ast}=\frac{X_i-\mu}{\sigma} X=σXiμ

其中μ是均值,σ是标准差
数据的标准化并不会改变原有数据的分布,如果原有数据服从正态分布,则标准化后数据将服从标准正态分布

python实现

还是使用同样的库

import  numpy as np
from  sklearn  import  preprocessing
x=a=np.random.randint(low=10, high=20, size=(10,10))
#创建缩放器
minmax_scale=preprocessing.StandardScaler()
#转换特征
scale_feature=minmax_scale.fit_transform(x)
scale_feature

标准化后的数据

image-20221116190703681

输出标准化后的均值和方差:

print(f"标准化后的均值为{round(scale_feature.mean(),2)},标准化后的均值为{round(scale_feature.std(),3)}")

标准化后的均值为-0.0,标准化后的均值为1.0

一般来说,第二个更常用一些

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值