• 数据预处理(一):标准化,中心化,正态化


    定义

    标准化(Standardization):将数据按照比例进行缩放,不改变数据的原始分布,使得不同的变量经过标准化处理后可以有平等分析和比较的基础。缩放后的数据均值为0,方差为1。但并不是标准正态分布。

    归一化(Normalization):中心化和标准化基本一样,都是要把数据缩放到某个范围里。归一化通常有两种做法:

    min-max 归一化的公式为:

    [公式]

    mean 归一化(有的地方也叫中心化)的公式为:

    [公式]

    正态化:改变数据的原始分布,使其服从正态分布。通常采用的方法有取对数,开平方根,取倒数,开平方,取指数等等,使得不对称分布的数据(偏态数据)呈现(或近似)正态分布。要这么做的原因在于:有些机器学习方法,比如线性回归模型就默认数据是正态分布。

    https://blog.csdn.net/lcmssd/article/details/80179102?utm_source=blogxgwz0

    https://blog.csdn.net/weixin_36604953/article/details/102652160

    关于到底是先标准化/归一化还是先划分数据集(前者归一化的时候同时考虑了测试集和训练集,如均值就与测试集有关;后者划分过后均值只和训练集有关),个人认为应该先划分数据集,对划分出来的训练集标准化后,再用相同的标准化公式(其中均值方差来自于训练集)对测试集进行标准化,保证测试集在维度上与训练集保持一致。代码如下:

    from sklearn import preprocessing
    scaler = preprocessing.StandardScaler().fit(X_train)#通过训练集获得归一化公式
    X_train_transformed = scaler.transform(X_train)#对训练集进行归一化
    X_test_transformed = scaler.transform(X_test)#对测试集进行归一化
  • 相关阅读:
    序列化注意事项
    HTML5的新结构标签
    MVC模型
    CSS选择器权重计算规则
    HTML常用布局
    盒模型
    Spring Security 学习笔记-session并发控制
    java实例之随机点名
    java之方法重载
    java之方法
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14284417.html
Copyright © 2020-2023  润新知