希望这篇随笔能够从一个实用化的角度对ML中的标准化方法进行一个描述。即便是了解了标准化方法的意义,最终的最终还是要:拿来主义,能够在实践中使用。

  动机:标准化的意义是什么?

  我们为什么要标准化?想象我们有一个Data Matrix $\mathbf{X}\in \mathbb{R}^{n\times d}$ 我们首先必须要做的事情就是对这个Data Matix进行标准化,意义是:“取消由于量纲不同、自身变异或者数值相差较大所引起的误差。”这个解释还不是很明白,那么我们可以想象如果不进行标准化会发生什么。首先这个Data Matrix $\mathbf{X}$ 的每一行就代表了一个样本,我们需要利用这些样本feature之间的差异来完成我们的机器学习任务,such as regression and classification。接着我们就要使用不同的算法和模型来完成我们的任务,如果你直接对把这些raw data喂给模型。那么一个可能出现的情况就是模型参数的爆炸或者消失,同时训练速度可能会相当慢。这种情况的影响我的理解是很容易造成样本特征的模糊或者消失,虽然我们仍然能够对模型进行训练,但是效果可能非常不好。

  好了,现在我们理解了标准化的意义,那么一个可能的思索是这样的:既然我们对原始数据进行了标准化处理,那么假如来了新数据我们应该咋办?要知道我们训练模型的目的是为了泛化,我们训练了一个模型之后该对付新来的数据呢,比如:使用标准化之后的模型训练了一个分类器,现在又来了一个样本,显然它没办法直接用我们训练的模型进行分类(因为我们的模型是用标准化之后的数据处理的鸭)。我的想法是,有两种方法:1. 在对数据矩阵标准化的时候记录下标准化参数,当有新的数据喂给模型的时,先要对这个数据进行一样的标准化处理。2. 我们用标准化后的数据训练了一个模型,模型参数为$\mathbf{W}_{N}$,能够用这个模型参数倒推“不进行标准化”的模型参数$\mathbf{W}$。这样我们获得了一个trained original model。这个模型能够直接处理不进行标准化的数据。很显然,第一个方法要比第二个方法简单通用的多。

  最常用的标准化方法:Z-score and Max-Min Normalization

  wikipedia上有一个表格,记录下了标准化的方法:

Name Formula Use
Standard score Normalizing errors when population parameters are known. Works well for populations that are normally distributed[2]
Student's t-statistic the departure of the estimated value of a parameter from its hypothesized value, normalized by its standard error.
Studentized residual Normalizing residuals when parameters are estimated, particularly across different data points in regression analysis.
Standardized moment Normalizing moments, using the standard deviation  as a measure of scale.
Coefficient of
variation
Normalizing dispersion, using the mean  as a measure of scale, particularly for positive distribution such as the exponential distribution and Poisson distribution.
Min-Max Feature scaling Feature scaling is used to bring all values into the range [0,1]. This is also called unity-based normalization. This can be generalized to restrict the range of values in the dataset between any arbitrary points  and , using for example.

  其中最最常用的两个就是Min-Max Feature scaling和Standard score(也叫Z-score),原理和功能可以点上面的链接了解,下面介绍一下实现的步骤和一些坑。

  Z-score

  按如下方法标准化Data Matirx矩阵的每一列 $\mathbf{x}_i$ of $\mathbf{X}(1\leq i\leq d)$:(这里解释一下为什么是按列标准化:数据矩阵的每一列就代表了样本的每一维,我们想通过标准化来更好的处理该维度的特征,可以想想按行标准化是什么效果:make no sense)$$z_{ij}\leftarrow \frac{x_{ij}-\text{mean}(\mathbf{x}_i)}{\text{std}(\mathbf{x}_i)}$$

  其中$x_{ij}$代表$\mathbf{x}_i$的第$j$个条目,同样的$z_{ij}$代表$\mathbf{z}_i\in \mathbb{R}^n$的第$j$个条目,$\mathbf{\overline{Z}}=(\mathbf{1},\mathbf{z}_1,\cdots,\mathbf{z}_d)\in \mathbb{R}^{n\times(d+1)}$, mean和std就是按列求每一列的均值啦,我们接下来处理$\mathbf{\overline{Z}}$这个矩阵就好了~~为什么这里会多一维呢?你可能已经知道这个多出来的一叫做dummy variable,我的理解是它一方面可以简化我们的模型表达,一方面提供了一个相当相当广义的正则化处理,降低了噪声的影响(当然这是我见过的大部分模型的需要,需要灵活处理,思想懂了就简单)。

  Min-Max Feature scaling

  这个标准化方法在我看来就非常的简单粗暴了,方式如下:$$z_{ij}\leftarrow \frac{x_{ij}-\text{min}(\mathbf{x}_i)}{\text{max}(\mathbf{x}_i)-\text{min}(\mathbf{x}_i)}$$

  其中$x_{ij}$代表$\mathbf{x}_i$的第$j$个条目,同样的$z_{ij}$代表$\mathbf{z}_i\in \mathbb{R}^n$的第$j$个条目,$\mathbf{\overline{Z}}=(\mathbf{1},\mathbf{z}_1,\cdots,\mathbf{z}_d)\in \mathbb{R}^{n\times(d+1)}$, max和min是按列求每一列的最大和最小值。

  实现中可能出现的问题:

  假如我们的数据矩阵比较稀疏,可能会出现一整列都是0的情况。此时我们发现上面两个方法的分母都为0,出现除以0的情况,这时我们该怎么办?一个比较合理的想法是假如有一整列的0,我们可以标准化后保留。一列零还让它是一列零。那么我们可以对求得的分母加上一个epsilon,也就是一个小量,1e-8这样的量级。这样一列零的情况还是一列零,$\text{std}$ 或者 $\text{max}-\text{min}$不为0的情况也不会受影响。

机器学习中的标准化方法(Normalization Methods)的更多相关文章

  1. 机器学习(十三)——机器学习中的矩阵方法(3)病态矩阵、协同过滤的ALS算法(1)

    http://antkillerfarm.github.io/ 向量的范数(续) 范数可用符号∥x∥λ表示. 经常使用的有: ∥x∥1=|x1|+⋯+|xn| ∥x∥2=x21+⋯+x2n−−−−−− ...

  2. 再谈机器学习中的归一化方法(Normalization Method)

    机器学习.数据挖掘工作中,数据前期准备.数据预处理过程.特征提取等几个步骤几乎要花费数据工程师一半的工作时间.同时,数据预处理的效果也直接影响了后续模型能否有效的工作.然而,目前的大部分学术研究主要集 ...

  3. 机器学习中的矩阵方法03:QR 分解

    1. QR 分解的形式 QR 分解是把矩阵分解成一个正交矩阵与一个上三角矩阵的积.QR 分解经常用来解线性最小二乘法问题.QR 分解也是特定特征值算法即QR算法的基础.用图可以将分解形象地表示成: 其 ...

  4. 机器学习中的矩阵方法(附录A): 病态矩阵与条件数

    1. 病态系统 现在有线性系统: Ax = b, 解方程 很容易得到解为: x1 = -100, x2 = -200. 如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 4 ...

  5. php中的魔术方法(Magic methods)和魔术常亮

    PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...

  6. 机器学习中的矩阵方法04:SVD 分解

    前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...

  7. 归一化方法 Normalization Method

    1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...

  8. 机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探

    1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去 ...

  9. 浅谈Vue中计算属性(computed)和方法(methods)的差别

    浅谈Vue中计算属性(computed)和方法(methods)的差别 源码地址 methods方法和computed计算属性,两种方式的最终结果确实是完全相同 计算属性是基于它们的响应式依赖进行缓存 ...

随机推荐

  1. 愉快地使用Windows Terminal

    有了Windows Terminal 你再也不需要其他任何终端了-- 下载 直接到Windows 10 自带的应用商店下载安装.参考: https://github.com/Microsoft/Ter ...

  2. poi——读取excel数据

    单元格类型 读取Excel数据 package com.java.test.poi; import java.io.File; import java.io.FileInputStream; impo ...

  3. ubuntu 下安装 mysql 启动报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    环境: ubuntu LTS 18.04.1 mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) 初探 linux,按照如下安装完mysql sudo ...

  4. 【JavaScript数据结构系列】00-开篇

    [JavaScript数据结构系列]00-开篇 码路工人 CoderMonkey 转载请注明作者与出处 ## 0. 开篇[JavaScript数据结构与算法] 大的计划,写以下两部分: 1[JavaS ...

  5. Java中的集合(十四) Map的实现类LinkedHashMap

    Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...

  6. [apue] 一个工业级、跨平台的 tcp 网络服务框架:gevent

    作为公司的公共产品,经常有这样的需求:就是新建一个本地服务,产品线作为客户端通过 tcp 接入本地服务,来获取想要的业务能力. 与印象中动辄处理成千上万连接的 tcp 网络服务不同,这个本地服务是跑在 ...

  7. JAVA实现对称加密

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.对称加密算法DES 1.概述:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这 ...

  8. Java实现 LeetCode 820 单词的压缩编码(暴力)

    820. 单词的压缩编码 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", & ...

  9. Java实现蓝桥杯VIP算法训练 自行车停放

    试题 算法训练 自行车停放 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或 ...

  10. Java实现 蓝桥杯VIP 算法训练 会议中心

    算法训练 会议中心 时间限制:2.0s 内存限制:512.0MB 会议中心 Siruseri政府建造了一座新的会议中心.许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议. 对于一个客户 ...