28、机器学习:数据的特征处理

特征处理是通过特定的方法(数学方法)将数据转化为算法要求的数据。
数值型数据:标准缩放 :归一化、标准化、缺失值
类别型数据:one-hot编码
时间类型:时间的切分
1、归一化:
X ′ = x − m i n m a x − m i n X'=\frac{x-min}{max-min} X=maxminxmin X ′ ′ = X ′ ∗ ( m x − m i ) + m i X''=X'*(mx-mi)+mi X′′=X(mxmi)+mi
注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’
为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0。
⽬的:使得某⼀个特征对最终结果不会造成更⼤影响,每个特征值是同等的重要。
缺点:异常点对最⼤值最⼩值影响太⼤,所以这种方法鲁棒性较差,只适合传统精确小数据场景

from sklearn.preprocessing import MinMaxScaler
def mm():
    mm=MinMaxScaler(feature_range=(2, 3))###限制变换后的数据范围是[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()

![在这里插入图片描述](https://img-blog.csdnimg.cn/5e70575a27224c9bab05a1e8f9d74f19.png
2、标准化:
X ′ = x − m e a n σ X'=\frac{x-mean}{\sigma} X=σxmean
mean是平均值, σ \sigma σ是标准差(考量数据的稳定性),std为方差
s t d = ( x 1 − m e a n ) 2 + ( x 2 − m e a n ) 2 + . . . + ( x n − m e a n ) 2 n ( 每个特征的样本数 ) , σ = s t d std=\frac{(x_1-mean)^2+(x_2-mean)^2+...+(x_n-mean)^2}{n(每个特征的样本数)},\sigma=\sqrt{std} std=n(每个特征的样本数)(x1mean)2+(x2mean)2+...+(xnmean)2σ=std
⽬的:使得某⼀个特征对最终结果不会造成更⼤影响,每个特征值是同等的重要。
对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

from sklearn.preprocessing import StandardScaler
def stand():
    std=StandardScaler()
    data=std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]])
    print(data)

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

在这里插入图片描述
3、缺失值:
删除:如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列
插补:可以通过缺失值每行或者每列的平均值、中位数来填充
pandas缺失值处理:fillna、dropna,前提是数据中的缺失值通过np.nan(float类型)表示,通过replace(‘?’,np.nan)替换缺失值为np.nan

from sklearn.impute import SimpleImputer
import numpy as np
def im():
    im=SimpleImputer(missing_values=np.nan,strategy='mean')##missing_values为数据中缺失值的表示,strategy为缺失值填补方法 
    data=im.fit_transform([[1, 2], [np.nan, 3], [7, 6]])
    print(data)
    return None
if __name__=='__main__':
    im()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值