05机器学习——特征工程之归一化和标准化

05机器学习——特征工程之归一化和标准化

1.特征工程之特征预处理——归一化

特征的预处理:对数据进行处理
在这里插入图片描述
数据的特征预处理
(1).特征处理的方法

·特征处理是什么
在这里插入图片描述
在这里插入图片描述

(2).sklearn特征预处理API
在这里插入图片描述
归一化
在这里插入图片描述
根据公式计算一下
在这里插入图片描述
如:第一列数据,用90来计算,x=90
x’=(x-min)/(max-min)=(90-60)/(90-60)=1
x’’=x’*(mx-mi)+mi=1×(1-0)+0=1
在这里插入图片描述
在这里插入图片描述
feature_range用来指定缩放的范围
在这里插入图片描述这里传进去的数据应该是个二维数组

from sklearn.preprocessing import MinMaxScaler
def mm():
    """
    归一化处理
    :return: None
    """
    mm=MinMaxScaler()#默认缩放区间范围
    data=mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    print(data)

    return None

if __name__=="__main__":
    mm()

结果:
在这里插入图片描述
可以指定一个缩放范围

from sklearn.preprocessing import MinMaxScaler
def mm():
    """
    归一化处理
    :return: None
    """
    mm=MinMaxScaler(feature_range=(2,3))
    data=mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    print(data)

    return None

if __name__=="__main__":
    mm()

结果:都是在2到3之间
在这里插入图片描述

在这里插入图片描述
三个特征同等重要的时候:进行归一化
目的:使得某一个特征对最终结果不会造成更大影响

问题:如果数据中异常点较多,会有什么影响?
异常点较多意味着某些数据是不对的,数据不对对结果有什么影响?根据公式来看:
在这里插入图片描述
最大值,最小值会受到影响,从而x’和x’’的值会发生变化
如图所示:(粉色的为异常点)
在这里插入图片描述
异常点对最大值最小值影响太大
所以归一化的缺点就是对异常点的处理不是很好
在这里插入图片描述
鲁棒性就是反应了产品的一个稳定性怎么样

2.标准化
在这里插入图片描述
在这里插入图片描述

如图所示:红色的点为平均值
在这里插入图片描述
加了异常点之后对平均值的影响并不大
所以标准化中加入异常点影响不大

特殊情况:方差为0,说明这个特征所有值都一样

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

from sklearn.preprocessing import StandardScaler
def stand():
    """
    标准化缩放
    :return:None
    """
    std=StandardScaler()
    data=std.fit_transform([[1.,-1.,3.],[2.,4.,2.],[4.,6.,-1.]])
    print(data)

    return None
if __name__=="__main__":
    stand()

结果:
在这里插入图片描述
在这里插入图片描述
缺失值的处理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
axis表示你指定的是行还是列

pandas中可以使用dropna、fillna可以删除、填补缺失值,但前提是数据中的缺失值是np.nan

可以使用pandas中的replace将缺失值替换为np.nan
在这里插入图片描述

from sklearn.preprocessing import Imputer
import numpy as np
def im():
    """
    缺失值处理
    :return: None
    """
    #NaN,nan
    im=Imputer(missing_values='NaN',strategy='mean',axis=0)
    data=im.fit_transform([[1,2],[np.nan,3],[7,6]])
    print(data)
    return None

if __name__=="__main__":
    im()

结果:
在这里插入图片描述
strategy='mean’表示缺失值用平均数填补
axis=0是对列进行操作,1是行

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值