精华内容
下载资源
问答
  • 归一化和正则化

    千次阅读 2019-08-05 15:11:30
    归一化和正则化1、归一化1.1为什么要归一化1.2 如何进行归一化2、正则化2.1、为什么要进行正则化2.2 如何进行正则化惩罚 1、归一化 1.1为什么要归一化 在做梯度下降的时候,我们用的数据集并不像前面给的数据集那么...

    1、归一化

    1.1为什么要归一化

    在做梯度下降的时候,我们用的数据集并不像前面给的数据集那么规范,很多时候不同特征的值之间相差还是很大的,举个简单的例子以收入和开销为特征,分析对幸福指数的影响。

    收入 开销
    6000 1000
    7200 1300
    5000 1500

    y = w0 + w1X1(收入) + w2X2(开销)
    这里一眼就可以看出收入是不是特别大啊,那么相对应的它对幸福指数的影响是不是远超开销,但如果我们用这样的数据来做预测会产生什么问题呢?
    X1 >> X2 ,那么在y不变的情况下W1 << W2.
    又由梯度g = (y_hat - y)* X得:
    g1 >> g2
    又w的调整幅度差为-alpha*g
    则g越小,调整的幅度就越小。
    那么矛盾就产生了,如果此时不做归一化,去使用梯度下降求解最优解的话,
    产生的效果,即会是同样的迭代次数下,W1已经调整好了,W2还在慢慢的往前挪,
    整体看起来,就比先做归一化,再做梯度下降,需要的迭代次数要多了!!!。
    所以此时求需要对数据进行归一化处理,使得W1和W2处于同样的伸缩程度。
    图解1


    没进行归一化前迭代是一个“之”字形,迭代此处多。
    归一化后的图见图2
    在这里插入图片描述
    显然归一化后进行梯度下降速度更快。

    1.2 如何进行归一化

    可以使用最大最小值归一化即
    (X-Xmin)/(Xmax-Xmin)
    最终通过最大值最小值归一化的特点是一定可以把一列数据归到0到1之间

    2、正则化

    2.1、为什么要进行正则化

    在进行线性回归时往往因为样本的问题会出现过拟合现象,举个简单的例子
    见下图3
    在这里插入图片描述
    在进行线性回归时最理想的是不是上图,但倘若我们用非线性来拟合时就是下图这样
    在这里插入图片描述
    这样虽然准确性确实提高了,但倘若最底下的点是一个异常点,那么他对结果的影响是不是特别大啊。并且这样做模型的泛化能力是不是特别弱。不切合实际。所以就有必要假如正则化惩罚项。

    2.2 如何进行正则化惩罚

    有三种方法可以实现,分别是Ridge Regression,Lasso,Elastic-Net。但最常用的是Ridge Regression,也叫做L2正则化。表达式为
    在这里插入图片描述
    这里的左半部分表示正确率,右半部分表示泛化程度。
    如何去理解呢?
    设y = W0 + W1X1 + W2X2 + …+WnXn
    假设W1特别大,当有一次输入特别大的时候,那么此时WX的值就会特别的大,那么这个时候模型的容错率是不是也别的小啊。所以在实际中我们希望W小一点,是不是模型的容错率或者说泛化能力就越强。
    此外W越少,也同样可以增加模型的容错能力。
    那么如何去实现W越小和越少呢?就是上面的式子。
    这里右边 Γ(n)=W2\Gamma(n) = \sum W^2
    当进行梯度下降时,会考虑他的惩罚系数α,当α < 1 时每一次迭代都会和W相乘从而减少W的值,W值越小容错率就越好。α不是越小越好,α太小的话就会导致w取向0,这样对应的特征就没用了。太大的话,就会导致震荡。这个在sklearn的官方有个例程。
    链接为:
    https://scikit-learn.org/stable/auto_examples/linear_model/plot_ridge_path.html#sphx-glr-auto-examples-linear-model-plot-ridge-path-py
    所以选择一个合适的α是至关重要的。

    展开全文
  • 标准化,归一化和正则化

    万次阅读 2016-12-04 20:24:22
    0.参考文献关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化 2017.6.3更新: 数据标准化/归一化normalization 归一化与标准化1.标准化用的最多的是 z-score标准化公式为 (X - mean)/ std计算时对每个...

    0.参考文献

    关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
    2017.6.3更新:
    数据标准化/归一化normalization
    归一化与标准化

    1.标准化

    用的最多的是 z-score标准化

    公式为 (X - mean)/ std

    计算时对每个属性(每列)分别进行。
    将数据按其属性(一般是按列)减去其均值,并除以其标准差,得到的结果是,对每个属性来说,所有数据都聚集在0附近,方差为1.
    实现方式:
    1. 使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化。

    from sklearn import preprocessing
    import numpy as np
    X=np.array([[1,-1,2],
                [2,0,0],
                [0,1,-1]])
    X_scaled = preprocessing.scale(X)
    >>>X_scaled
    array([[0. ...,-1.22...,1.33...],
          [ 1.22...,  0.  ..., -0.26...],
          [-1.22...,  1.22..., -1.06...]])
    处理后的均值和方差:
    X_scaled.mean(axis=0)
    array([0,0,0])
    X_scaled.std(axis=0)
    array([1,1,1])

    2.
    使用sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。

    >>>scaler = preprocessing.StandardScaler().fit(X)
    >>>scaler
    StandardScaler(copy=True,with_mean=True,with_std=True)
    >>>scaler.mean_
    >array([1,0,0.33])
    >>>scaler.transform(X)
    array([[ 0.  ..., -1.22...,  1.33...],
           [ 1.22...,  0.  ..., -0.26...],
           [-1.22...,  1.22..., -1.06...]])

    2. 归一化

    将属性缩放到一个指定范围(比如0-1)
    另一种常用的方法是将属性缩放到一个指定的最大值和最小值之间,这可以通过preprocessing.MinMaxScaler类实现。
    使用这种方法的目的包括:
    1. 把数变为(0,1)之间的小数,方便数据处理
    2. 把有量纲表达式变为无量纲表达式
    归一化的好处:

    1. 提升模型收敛速度
      如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快
      这里写图片描述

    2. 提升模型的精度
      归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同

    1.对于方差非常小的属性可以增强其稳定性
    2.维持稀疏矩阵中为0的条目

    常见的归一化方法:

    min-max标准化(Min-max normalization)

    也叫 离差标准化
    (x-min)/(max-min)

    X_train = np.array( [[1,-1,2],
                        [2,0,0],
                        [0,1,-1]])
    min_max_scaler = preprocessing.MinMaxScaler()
    X_train_minmax = min_max_scaler.fit_transform(X_train)
    >>> X_train_minmax
    array([[ 0.5       ,  0.        ,  1.        ],
           [ 1.        ,  0.5       ,  0.33333333],
           [ 0.        ,  1.        ,  0.        ]])
    #将相同的缩放应用到测试集数据中
    X_test = np.array([[-3, -1, 4]])
    X_test_minmax = min_max_scler.transform(X_test)
    >>> X_test_minmax
    array([[-1.5       ,  0.        ,  1.66666667]])
    
    #缩放因子等属性
    >>>min_max_scaler.scale_
    array([0.5, 0.5, 0.33])
    >>>min_max_scaler.min_
    array([0, 0.5, 0.33])
    
    在构造对象时也可以直接指定最大最小值的范围:feature_range=(min, max),此时公式变为:
    X_std = (X - X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
    X_scaled= X_std/(max-min)+min
    

    log归一化

    这里写图片描述
    max为样本数据最大值,并且所有的数据都要大于等于1,这样才能落到[0,1]范围内。

    3.正则化(Normalization)

    正则化:将每个样本缩放到单位范数(每个样本的范数为1),如果后面要使用如二次型(点积)或者其他核函数方法计算两个样本之间的相似性,这个方法会很有用。
    Normalization主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是是的每个处理后样本的p-范数(L1-norm, L2-norm)等于1。
    p-范数的计算公式:||x||p=(|x1|^p+|x2|^p+…+|xn|^p)^(1/p)
    该方法主要应用在文本分类和聚类中。例如,对于两个TF-IDF向量的I2-norm进行点积,就可以得到这两个向量的余弦相似性。

    1.可以使用preprocessing.normalize()函数对指定数据进行转换。

    X=  [[ 1., -1.,  2.],
        [ 2.,  0.,  0.],
        [ 0.,  1., -1.]]
    X_normalized = preprocessing.normalize(X, norm='l2')
    X_normalized
    array([[ 0.40..., -0.40...,  0.81...],
           [ 1.  ...,  0.  ...,  0.  ...],
           [ 0.  ...,  0.70..., -0.70...]])

    怎么算出来的呢?

    按行算:
    [1,-1,2]的L2范数是(1^2+(-1)^2+2^2)^(1/2)=6^(1/2)=2.45
    第一行的每个元素除以L2范数,得到:
    [1/2.45, -1/2.45, 2/2.45] = [0.4, -0.4, 0.8..]
    第二行和第一行一样,也是算自己的L2范数:(2^2+0^2+0^2)^(1/2)=2,
    [ 2/2,  0/2,  0/2]=[1,0,0]……

    2.可以使用processing.Normalizer()类实现对训练集合测试集的拟合和转换:

    normalizer = preprocessing.Normalizer().fit(X) # fit does nothing
    >>>normalizer
    Normalizer(copy=True, norm='l2')
    
    >>>normalizer.transform(X)
    array([[ 0.40..., -0.40...,  0.81...],
           [ 1.  ...,  0.  ...,  0.  ...],
           [ 0.  ...,  0.70..., -0.70...]])
    
    >>> normalizer.transform([[-1.,  1., 0.]])             
    array([[-0.70...,  0.70...,  0.  ...]])
    展开全文
  • 归一化正则化

    2021-03-29 17:40:26
    归一化正则化 学自: https://blog.csdn.net/weixin_36604953/article/details/102652160 https://blog.csdn.net/zenghaitao0128/article/details/78361038 ... 归一化正则化都属于四种特征缩放的方法,这四种分别...

    归一化与正则化

    学自:

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

    https://blog.csdn.net/zenghaitao0128/article/details/78361038

    https://blog.csdn.net/u012768474/article/details/99871942


    归一化与正则化都属于四种特征缩放的方法,这四种分别是:

    1. Rescaling (min-max normalization) 有时简称normalization(归一化)
      在这里插入图片描述

    2. Mean normalization
      在这里插入图片描述

    3. Standardization(Z-score normalization) (标准化)
      在这里插入图片描述

    4. Scaling to unit length
      在这里插入图片描述

    特征缩放就是对数据做变换,将原始的一列数据转换到某个范围的一种方式。

    特征缩放的作用

    在机器学习中,特征向量中的不同的特征往往可能会用不同的度量单位。

    例如:人的信息的特征向量:[身高,体重]
    一般情况下对应的标准度量单位是[m, kg],但是有些时候信息并不如意,可能得到的身高信息是cm。
    这样身高这个特征值就会特别大。
    由于两者(身高/体重)的度量单位不一样,所以数值相差可能会特别大。从而导致样本数据成为奇异值数据
    

    在这里插入图片描述

    奇异值数据会导致目标函数拉伸,这样目标函数就显得扁平。这样在梯度下降的时候就会很容易走偏。
    在这里插入图片描述

    特征缩放的作用就是:对样本数据(所有特征)进行缩放使得特征向量的特征值之间数值偏差不大。(相当于消除单位产生的数值过大的影响)

    缩放:特征值小的放大。特征值大的缩小。(分布仍然是原来的分布)

    进行特征缩放后,目标函数就会比较圆滑,这样就不容易走偏
    在这里插入图片描述

    归一化

    在这里插入图片描述

    归一化就是将一列数据变化到某个固定区间内。这个区间可以是任意区间。

    通常映射到[0, 1]中。还可能映射到[-1, 1]中。

    因为分母是最大减最小,所以这个方法类似于把所有样本的每个特征都进行百分化,每个特征都是百分比,所以特征之间就不存在纲量了!

    使用场景:

    1. 适用于在数值比较集中的情况下,否则的话小一些的数会非常小(不集中最大最小值相差太大导致分母过大)

    2. 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法(不包括Z-score方法)。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围

    缺点:

    • 如果最大最小值不稳定(相差太大),容易使得归一化结果不稳定,导致后续使用效果也不稳定。

    插一嘴:使用L2范数,和非线性函数也可以进行归一化。

    L2范归一化:就是特征向量的每个特征元素均除以特征向量的L2范。
    在这里插入图片描述


    z-score标准化

    在这里插入图片描述

    将数据变换到均值为0,标准差为1的分布(正常情况下是标准正态分布)。切记,不一定是正太分布

    例如在pytorch的LayerNorm这个层中用的就是这个分布,在这里插入图片描述

    在分母上加一个小值防止分母为0。

    用于消除分布产生的度量偏差。

    标准化更好保持了样本间距。当样本中有异常点时,归一化有可能将正常的样本“挤”到一起去。比如三个样本,某个特征的值为1,2,10000,假设10000这个值是异常值,用归一化的方法后,正常的1,2就会被“挤”到一起去。如果不幸的是1和2的分类标签还是相反的,那么,当我们用梯度下降来做分类模型训练时,模型会需要更长的时间收敛,因为将样本分开需要更大的努力!而标准化在这方面就做得很好,至少它不会将样本“挤到一起”

    所以有样本间距性的时候用z-score标准化!

    使用场景:

    1. 在原始数据类似于高斯分布(正态分布)的情况下使用,对数据进行放缩。

    2. 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好

    注意使用z-score标准化出来的不一定是正太分布,标准化后只是标准差与均值变了,但是原来的分布类型并没有改变。详情可以看上面引用的第一篇博客中,博主有详细说明!

    联系与差异

    联系: 两者都是不会改变原始数据排列顺序的线性变换。

    差异:

    1. 归一化会严格限制变换后的数据的范围。所以归一化不适用于有距离信息的数据(使用距离来度量)

      而标准化变换之后数据并没有严格的范围限制。只是均值为0,标准差为1。

    2. 归一化的缩放比只与极值有关。(缩放比=Xmax - Xmin)

      标准化的缩放比于所有数都有关。(如果改变一个数,大概率均值于标准差都会改变)
      而标准化变换之后数据并没有严格的范围限制。只是均值为0,标准差为1。

    3. 归一化的缩放比只与极值有关。(缩放比=Xmax - Xmin)

      标准化的缩放比于所有数都有关。(如果改变一个数,大概率均值于标准差都会改变)

    展开全文
  • https://www.cnblogs.com/arachis/p/Regulazation.html?utm_背景:数据挖掘/机器学习中的术语较多,而且我的知识有限。... 1.1 正则化的目的   1.2 结构风险最小化(SRM)理论  1.3 L1范数(lasso),L2范数(...

    https://www.cnblogs.com/arachis/p/Regulazation.html?utm_背景:数据挖掘/机器学习中的术语较多,而且我的知识有限。之前一直疑惑正则这个概念。所以写了篇博文梳理下
    规范化、标准化、归一化、正则化
    https://blog.csdn.net/u014381464/article/details/81101551

    摘要:
      1.正则化(Regularization)
        1.1 正则化的目的 
        1.2 结构风险最小化(SRM)理论
        1.3 L1范数(lasso),L2范数(ridge),ElasticNet
        1.4为什么说L1是稀疏的,L2是平滑的?
      2.归一化 (Normalization)
        2.1归一化的目的
        2.1归一化计算方法  
        2.2.spark ml中的归一化
        2.3 python中skelearn中的归一化
    知识总结:
    1.正则化(Regularization)

    1.1 正则化的目的:我的理解就是平衡训练误差与模型复杂度的一种方式,通过加入正则项来避免过拟合(over-fitting)。(可以引入拟合时候的龙格现象,然后引入正则化及正则化的选取,待添加)

    1.2 结构风险最小化(SRM)理论: 
      经验风险最小化 + 正则化项 = 结构风险最小化

    经验风险最小化(ERM),是为了让拟合的误差足够小,即:对训练数据的预测误差很小。但是,我们学习得到的模型,当然是希望对未知数据有很好的预测能力(泛化能力),这样才更有意义。当拟合的误差足够小的时候,可能是模型参数较多,模型比较复杂,此时模型的泛化能力一般。于是,我们增加一个正则化项,它是一个正的常数乘以模型复杂度的函数,aJ(f),a>=0 用于调整ERM与模型复杂度的关系。结构风险最小化(SRM),相当于是要求拟合的误差足够小,同时模型不要太复杂(正则化项的极小化),这样得到的模型具有较强的泛化能力。
      
      下面是来自一篇博文的例子
      优化如下定义的加了正则项(也叫惩罚项)的损失函数:    
      
      后面的就是正则化项,其中λ越大表明惩罚粒度越大,等于0表示不做惩罚,N表示所有样本的数量,n表示参数的个数。

    如果绘图表示就是这样:

    上图的 lambda = 0表示未做正则化,模型过于复杂(存在过拟合)

    上图的 lambda = 1 添加了正则项,模型复杂度降低

    1.3 正则化的L1,L2范数
      L1正则化(lasso):
     ,其中C0是代价函数,是L1正则项,lambda是正则化参数
      L2正则化(ridge):(待添加:权值衰减引入)
     ,其中是L2正则项,lambda是正则化参数
      ElasticNet 正则化:
      
     L1与L2以及ElasticNet 正则化的比较:
       1.L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。
        2.Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。
        3.ElasticNet 吸收了两者的优点,当有多个相关的特征时,Lasso 会随机挑选他们其中的一个,而ElasticNet则会选择两个;并且ElasticNet 继承 Ridge 的稳定性.
       深入:弹性网络( Elastic Net)

    总结:结构风险最小化是一种模型选择的策略,通过加入正则项以平衡模型复杂度和经验误差;更直观的解释——正则项就是模型参数向量(w)的范数,一般有L1,L2两种常用的范数。

    1.4为什么说L1是稀疏的,L2是平滑的?

    L1 Regularizer
    L1 Regularizer是用w的一范数来算,该形式是凸函数,但不是处处可微分的,所以它的最佳化问题会相对难解一些。
    L1 Regularizer的最佳解常常出现在顶点上(顶点上的w只有很少的元素是非零的,所以也被称为稀疏解sparse solution),这样在计算过程中会比较快。

    L2 Regularizer
    L2 Regularizer是凸函数,平滑可微分,所以其最佳化问题是好求解的。

    参考链接:常见的距离算法和相似度(相关系数)计算方法中的Lp球

    2.归一化 (Normalization)
      2.1归一化的目的:
        1)归一化后加快了梯度下降求最优解的速度;
        2)归一化有可能提高精度。详解可查看
      2.2归一化计算方法      
      公式:
        对于大于1的整数p, Lp norm = sum(|vector|^p)(1/p)
      2.3.spark ml中的归一化
      构造方法:
      http://spark.apache.org/docs/2.0.0/api/scala/index.html#org.apache.spark.mllib.feature.Normalizer
      newNormalizer(p: Double) ,其中p就是计算公式中的向量绝对值的幂指数
      可以使用transform方法对Vector类型或者RDD[Vector]类型的数据进行正则化
      
      下面举一个简单的例子:
      scala> import org.apache.spark.mllib.linalg.{Vector, Vectors}

    scala> val dv: Vector = Vectors.dense(3.0,4.0)
      dv: org.apache.spark.mllib.linalg.Vector = [3.0,4.0]
      scala> val l2 = new Normalizer(2)
      scala> l2.transform(dv)
      res8: org.apache.spark.mllib.linalg.Vector = [0.6,0.8]
      或者直接使用Vertors的norm方法:val norms = data.map(Vectors.norm(_, 2.0))

    2.4 python中skelearn中的归一化

    from sklearn.preprocessing import Normalizer
      
      #归一化,返回值为归一化后的数据
     
      Normalizer().fit_transform(iris.data)source=itdadao&utm_medium=referral

    规范化:

    针对数据库
    规范化把关系满足的规范要求分为几级,满足要求最低的是第一范式(1NF),再来是第二范式、第三范式、BC范式和4NF、5NF等等,范数的等级越高,满足的约束集条件越严格。

    针对数据
    数据的规范化包括归一化标准化正则化,是一个统称(也有人把标准化作为统称)。
    数据规范化是数据挖掘中的数据变换的一种方式,数据变换将数据变换或统一成适合于数据挖掘的形式,将被挖掘对象的属性数据按比例缩放,使其落入一个小的特定区间内,如[-1, 1]或[0, 1]

    对属性值进行规范化常用于涉及神经网络和距离度量的分类算法和聚类算法当中。比如使用神经网络后向传播算法进行分类挖掘时,对训练元组中度量每个属性的输入值进行规范化有利于加快学习阶段的速度。对于基于距离度量相异度的方法,数据归一化能够让所有的属性具有相同的权值。

    数据规范化的常用方法有三种:最小最大值规范化,z-score标准化和按小数定标规范化

    标准化(standardization):

    数据标准化是将数据按比例缩放,使其落入到一个小的区间内,标准化后的数据可正可负,但是一般绝对值不会太大,一般是z-score标准化方法:减去期望后除以标准差。

    特点:

    对不同特征维度的伸缩变换的目的是使其不同度量之间的特征具有可比性,同时不改变原始数据的分布。

    好处:

    1. 不改变原始数据的分布,保持各个特征维度对目标函数的影响权重
    2. 对目标函数的影响体现在几何分布上对目标函数的影响体现在几何分布上
    3. 在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景

    归一化(normalization):

    把数值放缩到0到1的小区间中(归到数字信号处理范畴之内),一般方法是最小最大规范的方法:min-max normalization
    在这里插入图片描述

    上面min-max normalization是线性归一化,还有非线性归一化,通过一些数学函数,将原始值进行映射。该方法包括log、指数、反正切等。需要根据数据分布的情况,决定非线性函数的曲线。

    log函数:x = lg(x)/lg(max);反正切函数:x = atan(x)*2/pi

    应用:

    1.无量纲化

    例如房子数量和收入,从业务层知道这两者的重要性一样,所以把它们全部归一化,这是从业务层面上作的处理

    2.避免数值问题

    不同的数据在不同列数据的数量级相差过大的话,计算起来大数的变化会掩盖掉小数的变化。

    3.一些模型求解的需要

    例如梯度下降法,如果不归一化,当学习率较大时,求解过程会呈之字形下降。学习率较小,则会产生直角形路线,不管怎么样,都不会是好路线(路线解释看西面归一化和标准化的对比)

    4.时间序列

    进行log分析时,会将原本绝对化的时间序列归一化到某个基准时刻,形成相对时间序列,方便排查。

    5.收敛速度

    加快求解过程中参数的收敛速度。

    特点:

    对不同特征维度进行伸缩变换
    改变原始数据的分布,使得各个特征维度对目标函数的影响权重归于一致(使得扁平分布的数据伸缩变换成类圆形)
    对目标函数的影响体现在数值上
    把有量纲表达式变为无量纲表达式

    归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。比如两个人体重差10KG,身高差0.02M,在衡量两个人的差别时体重的差距会把身高的差距完全掩盖,归一化之后就不会有这样的问题。

    好处:
    提高迭代求解的收敛速度
    提高迭代求解的精度

    缺点:

    最大值与最小值非常容易受异常点影响
    鲁棒性较差,只适合传统精确小数据场景

    标准化vs归一化
    在这里插入图片描述

    在这里插入图片描述

    1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化(Z-score standardization)表现更好。

    2、在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

    正则化(regularization):

    在求解最优化问题中,调节拟合程度的参数一般称为正则项,越大表明欠拟合,越小表明过拟合

    为了解决过拟合问题,通常有两种方法,第一是减小样本的特征(即维度),第二是正则化(又称为惩罚penalty)

    正则化的一般形式是在整个平均损失函数的最后增加一个正则项(L2范数正则化,也有其他形式的正则化,作用不同)

    正则项越大表明惩罚力度越大,等于0表示不做惩罚。

    正则项越小,惩罚力度越小,极端为正则项为0,则会造成过拟合问题;正则化越大,惩罚力度越大,则容易出现欠拟合问题。

    展开全文
  • 机器学习的本质是从数据集中发现数据内在的特征,而数据的内在...数据预处理正是为了最大限度地帮助机器学习模型或算法找到数据内在特征所做的一系列操作,这些操作主要包括标准化、归一化正则化、离散化白化等。
  • Kmeans聚类①——数据标准化&归一化&正则化

    万次阅读 多人点赞 2019-06-14 20:55:34
    在进行机器学习之前,经常需要对训练数据进行标准化/归一化/正则化,为什么呢? **1)去除量纲的影响,将有量纲的数值变成无量纲的纯数值; 2)是去除各特征之间数值差异过大的问题,比如一个向量(uv:10000, rate:...
  • 最近刚接触机器学习,很多概念都不是很懂,找到几篇文章,记在这里,以后再看 范数、正则化归一化、标准化 知乎上的高赞回答
  • 标准化(Standardization)和归一化(Normalization) 标准化和归一化,请勿混为一谈,透彻理解数据变换 L1-normaization就是每个元素/L1范数 L2-normaization就是每个元素/L2范数 正则化(Regularization) 正则化...
  • 量纲、无量纲,标准化、归一化正则化是我百度了很多次都不进脑子的知识,所以我决定还是放在博客上面。 不过鉴于我查阅了很多资料,说是有许多的坑,所以我也不清楚我的理解解释是否是坑,具体的就留给各位来...
  • 经过归一化处理的数据,处于同一数量级,可以消除指标之间的量纲量纲单位的影响,提高不同数据指标之间的可比性。 主要算法: 1.线性转换,min-max归一化(常用): y=(x-min)/(max-min) 2....
  • 规范化、标准化、归一化正则化

    万次阅读 多人点赞 2018-07-18 21:52:39
    数据的规范化包括归一化标准化正则化,是一个统称(也有人把标准化作为统称)。 数据规范化是数据挖掘中的数据变换的一种方式,数据变换将数据变换或统一成适合于数据挖掘的形式,将被挖掘对象的属性数据按...
  • 使用sklearn进行数据预处理 —— 标准化/归一化/正则化一、标准化(Z-Score),或者去除均值方差缩放公式为:(X−mean)/std(X-mean)/std 计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,...
  • 今天我们要说的是,在机器学习常用的算法里面,那些需要归一化,那些不需要,通过scikit-learn中的预处理的一些方法,实际了解如何正则化和归一化数据。看完本文,应该对于一般的机器学习任务,都可以轻松上手操作。...
  • 特征缩放什么?为什么归一化、标准化容易混淆,如何区分呢。 本来为大家来分析一下。
  • 量纲、无量纲,标准化、归一化正则化是我百度了很多次都不进脑子的知识,所以我决定还是放在博客上面。 不过鉴于我查阅了很多资料,说是有许多的坑,所以我也不清楚我的理解解释是否是坑,具体的就留给各位来...
  • wfr=spider&for=pc 三者都是对数据进行预处理的方式。 标准化(Standardization) 归一化(normalization) ...正则化(regularization) 归一化(MinMaxScaler) 将训练集中某一列数值...
  • sklearn.preprocessing是sklearn库中非常重要的一个module,集成了很多预处理数据的方法...对数据根据给定的阈值将其映射到01,其中阈值默认为0.0,可接收float类型的阈值,注意数据大于阈值的时候映射为1,小于等...
  • 标准化与归一化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。 其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。 为什么要标准化 可以使机器学习算法工作的更...
  • 转:归一化正则化

    2014-10-11 16:47:00
    正则化归一化含义解析 2012-12-29 正则化(Regularization)、归一化(也有称为正规化/标准化,Normalization)是对数据尽心预处理的方式,他们的目的都是为了让数据更便于我们的计算或获得更加泛化的结果,但...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,220
精华内容 9,288
关键字:

归一化和正则化区别