几种数据标准化的方法

数据的标准化(standardization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化(normalization)处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:

(1)最大最小标准化(Min-Max Normalization)

这个过程使得特征的范围在[0,1]内。首先计算每个数值特征的最小值个最大值,然后对特征的每个值均进行以下变换 :

def MaxMinNormalization(x):
    """[0,1] normaliaztion"""
    x = (x - np.min(x)) / (np.max(x) - np.min(x))
    return x
import numpy as np
def MaxMinNormalization(x):
    """[0,1] normaliaztion"""
    x = (x - np.min(x)) / (np.max(x) - np.min(x))
    return x
height=[188,176,170,165,168,174]
height_new=MaxMinNormalization(height)
print(height_new)
# -*- coding: utf-8 -*-
""" 
@Time    : 2022/10/3 23:34
@Author  : Xu Yong Kang 
"""
from sklearn import preprocessing
import  pandas
data={
   'height':[188,176,170,165,168,174]}#用字典来存放数据
price_frame=pandas.DataFrame(data)#把字典类型转化为dataframe对象
min_max_normalizer=preprocessing.MinMaxScaler(feature_range=(0,1))
#feature_range设置最大最小变换值,默认(0,1)
scaled_data=min_max_normalizer.fit_transform(price_frame)
#将数据缩放到设置固定区间
price_frame_normalized=pandas.DataFrame(scaled_data)
#将变换后的数据转换为dataframe对象
print(price_frame_normalized)

结果:

0  1.000000
1  0.478261
2  0.217391
3  0.000000
4  0.130435
5  0.391304

(2)Z-分数标准化(Z-Score Normalization):当数据包含离群值时,最大最小标准化并不是首选。在存在离群值的情况下,随着数据范围的增加,数值将不断接近零。Z-Score常用于标准化技术。Z-Score遵循统计学原理,使数据平均值为0,标准差为1。

这种标准化我在第一篇文章时间序列的预处理中使用过
在这里插入图片描述

def ZscoreNormalization(x):
    """Z-score normaliaztion"""
    x = (x - np.mean(x)) / np.std(x)
    return x
height
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值