数据标准化

1、均值方差标准化(Z-Score标准化)

计算过程:
对每个属性/每列分别进行一下操作,将数据按属性/按列减去其均值,并除以其方差,最终使每个属性/每列的所有数据都聚集在均值为0,方差为1附近。
公式:(x-mean(x))/std(x)
使用sklearn.processing()方法

from sklearn import preprocessing
import numpy as np

scaled = preprocessing.scale(data)

# 还可以自定义公式
def std_ch(data):
    data = (data - np.mean(data,axis=0)) / np.std(data,axis=0)
    return data

使用sklearn.preprocessing.StandardScaler类。

from sklearn.preprocessing import StandardScaler
scaler = StandradScaler().fit(train_data)
# 查看数据的均值
scaler.mean_
# 查看数据的方差
scaler.std_
# 直接对测试集进行转换
scaler.transform(test_data)

2、0-1标准化(离差标准化,最大最小标准化)

对原始数据进行线性变换,使其结果落在[0,1]区间内,转换函数如下:
在这里插入图片描述
其中max为样本数据的最大值,min为样本数据的最小值。
可以通过sklearn.preprocessing.MinMaxScaler类实现。

from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
train_scaled = min_max_scaler.fit_transform(train_data)
# 同样的缩放应用到测试集数据中
test_scaled = min_max_scaler.transform(test_data)
# 查看缩放因子
min_max_scaler.scale_

# 自定义公式
def deal(data):
    data=(data-data.min())/(data.max()-data.min())
    return data

3、正态化分布

计算的主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后的样本的p-范数等于1。在文本分类和聚类分析中经常作为向量空间模型(SVM)的基础。
使用sklearn.preprocessing.normalize()来实现。

from sklearn.preprocessing import normalize
data_normalized = normalize(data,norm = 'l2')
# data_normalized = normalize(data,norm = 'l1')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值