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

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

特征预处理

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

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

1、归一化

将原始数据映射到一个区间[0,1]

特征同等重要:归一化处理

目的:使得某一个特征对最终结果不对造成更大的影响

缺点:对于异常点处理不好,容易影响最大值最小值,鲁棒性较差(稳定性),只适合精确小数据场景

image.png

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 所有值都一样

标准差

异常点:由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小

标准差适用场景:

样本足够多且比较稳定,嘈杂大数据

image.png

代码示例

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]
]
"""


相关文章
|
机器学习/深度学习 资源调度
【机器学习】归一化目的分析
【1月更文挑战第27天】【机器学习】归一化目的分析
|
机器学习/深度学习 算法 Python
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)
766 0
|
机器学习/深度学习 人工智能 算法
详解机器学习中的数据处理(二)——特征归一化
详解机器学习中的数据处理(二)——特征归一化
773 0
详解机器学习中的数据处理(二)——特征归一化
|
机器学习/深度学习 算法 Python
学习笔记: 机器学习经典算法-数据集的归一化
机器学习经典算法-个人笔记和学习心得分享
246 0
|
机器学习/深度学习 Python
数学建模国赛:python机器学习基础之数据归一化、去除空值
数学建模国赛:python机器学习基础之数据归一化、去除空值
514 0
数学建模国赛:python机器学习基础之数据归一化、去除空值
|
数据采集 机器学习/深度学习 数据挖掘
机器学习数据预处理——归一化(Normalization)和标准化(standardlization)
昨天进行一场答辩,被评委老师问起来归一化的概念,一时间紧张没有想起来,后来复盘回忆,感觉还是自己的理解不够深刻,才导致关键时刻掉链子,没有想起。所以特此整理一下,以供加深印象。
2834 0
|
机器学习/深度学习 算法 大数据
机器学习:数据特征预处理归一化和标准化
机器学习:数据特征预处理归一化和标准化
454 0
机器学习:数据特征预处理归一化和标准化
|
机器学习/深度学习 算法 数据挖掘
机器学习中的归一化
归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。 数据归一化的目的是为了把不同来源的数据统一到一个参考系下,这样比较起来才有意义。 数据归一化,很重要。比如在用SVM分类时,数据尺度不统一对分类准确率影响很大。归一化一般将数据规整到一个小范围之间,如[0,
2109 0