美文网首页
2020-09-27 神经网络数据预处理

2020-09-27 神经网络数据预处理

作者: 滴答大 | 来源:发表于2020-09-27 23:09 被阅读0次

    关于数据预处理我们有3个常用的符号,数据矩阵X,假设其尺寸是[N x D](N是数据样本的数量,D是数据的维度)

    1、均值减法(Mean subtraction)

    均值减法是预处理最常用的形式。它对数据中每个独立特征减去平均值,从几何上可以理解为在每个维度上都将数据云的中心都迁移到原点。
    在numpy中,该操作可以通过代码X -= np.mean(X, axis=0)实现。
    而对于图像,更常用的是对所有像素都减去一个值,可以用X -= np.mean(X)实现,也可以在3个颜色通道上分别操作。

    归一化(Normalization)

    归一化是指将数据的所有维度都归一化,使其数值范围都近似相等。

    有两种常用方法可以实现归一化:

    第一种是先对数据做零中心化(zero-centered)处理,然后每个维度都除以其标准差,实现代码为X /= np.std(X, axis=0)。
    第二种方法是对每个维度都做归一化,使得每个维度的最大和最小值是1和-1。这个预处理操作只有在确信不同的输入特征有不同的数值范围(或计量单位)时才有意义,但要注意预处理操作的重要性几乎等同于学习算法本身。在图像处理中,由于像素的数值范围几乎是一致的(都在0-255之间),所以进行这个额外的预处理步骤并不是很必要。

    PCA和白化(Whitening)

    PCA和白化是另一种预处理形式。在这种处理中,先对数据进行零中心化处理,然后计算协方差矩阵,它展示了数据中的相关性结构。

    白化(whitening)。白化操作的输入是特征基准上的数据,然后对每个维度除以其特征值来对数值范围进行归一化。该变换的几何解释是:如果数据服从多变量的高斯分布,那么经过白化后,数据的分布将会是一个均值为零,且协方差相等的矩阵。该操作的代码如下:

    # 对数据进行白化操作:
    # 除以特征值 
    Xwhite = Xrot / np.sqrt(S + 1e-5)
    

    相关文章

      网友评论

          本文标题:2020-09-27 神经网络数据预处理

          本文链接:https://www.haomeiwen.com/subject/molruktx.html