数据特征归一化(Feature Scaling)学习及实现

本文介绍了特征归一化的必要性及两种常用方法:最值归一化和均值方差归一化。前者将数据映射到0-1之间,适用于有明确边界的特征;后者将数据调整至均值为0,方差为1的标准正态分布,适用于数据分布无明显边界的情况。

为什么需要特征归一化

不同特征指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

常用的两种归一化方法

1最值归一法(normaization):

最值归一法将数据映射到0-1之间。
适用于分布有明显边界的特征指标,受outlier影响较大。
KaTeX parse error: Got function '\min' with no arguments as subscript at position 19: … = \frac{X - X_\̲m̲i̲n̲}{X_\max - X_\m…

均值方差归一法(standardization)

将数据归一到均值为0,方差为一的分布中
适用于数据分布没有明显边界,有可能存在极端数据值(对outlier的处理更好些)。
Xs=X−XˉSX_s = \frac{X - \bar X}{S}Xs=SXXˉ

实现最值归一化&封装

import numpy as np
class MinMaxScaler1():
    def __init__(self):
    '''初始化MinmaxScaler '''
        self.min_ = None
        self.max_ = None
    def fit(self, X):
	    '''装载X,并得到'''
        self.min_ = X.min(axis=0)
        self.max_ = X.max(axis=0)
        return self
    
    def transform(self, X):
	    '''转换X为(0-1)的数据'''
        return (X - self.min_) / (self.max_ - self.min_)
    
    def __repr__(self):
        return 'MinMaxScale(0-1)'

实现均值方差归一化&封装

import numpy as np
class StandardScaler1:
    def __init__(self):
        '''初始化StandardScaler'''
        self.mean_ = None
        self.std_ = None
        
    def fit(self, X):
        self.mean_ = X.mean(axis=0)
        self.std_ = X.std(axis=0)
        return self
    
    def transform(self, X):
        return (X - self.mean_) / self.std_
    
    def __repr__(self):
        return 'StandardScaler1(均值0,方差1)'

学习笔记参考:
《机器学习实战》和《Python3入门机器学习 经典算法与应用》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值