您当前的位置: 首页 >  彭世瑜 机器学习

机器学习:数据特征预处理归一化和标准化

彭世瑜 发布时间:2019-01-12 21:52:36 ,浏览量:2

特征预处理

通过特定的统计方法(数学方法)将数据转换成算法要求的数据

数值型数据:
    -标准缩放
        - 归一化
        - 标准化
        - 缺失值
类别行数据:
    - one-hot编码
时间型数据:
    - 时间的切分
1、归一化

将原始数据映射到一个区间[0,1] 特征同等重要:归一化处理 目的:使得某一个特征对最终结果不对造成更大的影响 缺点:对于异常点处理不好,容易影响最大值最小值,鲁棒性较差(稳定性),只适合精确小数据场景

计算公式

x 1 = x − m i n m a x − m i n x_1 = \frac{x-min}{max - min} x1​=max−minx−min​

x 2 = x 1 ∗ ( m x − m i ) + m i x_2 = x_1 * (mx - mi) + mi x2​=x1​∗(mx−mi)+mi

min为列最小值 max为列最大值 x2 为最终结果 mx ,mi 为指定区间默认[0, 1]

代码示例
# -*- coding: utf-8 -*-

from sklearn.preprocessing import MinMaxScaler

# 归一化处理,将数据映射到指定区间
data = [
    [90, 2, 10, 40],
    [60, 4, 15, 45],
    [75, 3, 13, 46]
]

min_max = MinMaxScaler(feature_range=(0, 1))
result = min_max.fit_transform(data)
print(result)
"""
[
    [1.         0.         0.         0.        ]
    [0.         1.         1.         0.83333333]
    [0.5        0.5        0.6        1.        ]
]

计算示例,第一列
90
x1 = (x−min)/(max-min) = (90 - 60)/(90 - 60) = 1
x2 = x1 * (mx - mi)+ mi = 1 * (1 - 0) + 0 = 1

60
x1 = (x−min)/(max-min) = (60 - 60)/(90 - 60) = 0
x2 = x1 * (mx - mi)+ mi = 0 * (1 - 0) + 0 = 0

75
x1 = (x−min)/(max-min) = (75 - 60)/(90 - 60) = 0.5
x2 = x1 * (mx - mi)+ mi = 0.5 * (1 - 0) + 0 = 0.5
"""
2、标准化

将原始数据变换到均值为0,标准差为1的范围内 平均值 方差 考量数据稳定性 方差 = 0 所有值都一样 标准差 异常点:由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小

标准差适用场景: 样本足够多且比较稳定,嘈杂大数据

计算公式 s 2 = ∑ i = 1 n ( x i − m e a n ) 2 n s^2 = \frac{\sum_{i=1}^n( x_i - mean)^2}{n} s2=n∑i=1n​(xi​−mean)2​

x 1 = x − m e a n s x1 = \frac{x - mean}{s} x1=sx−mean​ mean 是列数据平均值 s 是标准差 s 2 s^2 s2 方差 n 样本数

代码示例
from sklearn.preprocessing import StandardScaler

# 标准化处理,将数据映射到均值为0,标准差为1
data = [
    [1.0, -1.0, 3.0],
    [2.0, 4.0, 2.0],
    [4.0, 6.0, -1.0]
]

std = StandardScaler()
result = std.fit_transform(data)
print(result)
"""
[
    [-1.06904497 -1.35873244  0.98058068]
    [-0.26726124  0.33968311  0.39223227]
    [ 1.33630621  1.01904933 -1.37281295]
]
"""

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 2浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1106s