Pyhton 中的Scale 和Normalization(正则化)

谈一下Python中sklearn.preprocessing与数据预处理相关的函数

一、Scale包括两部分:Standardization(标准化)和Centering(归一化)

      1、Standardization:

        newX = (X- 均值) / 标准差(standard deviation), newX 的均值=0,方差= 1,可用于发现离群点,Python中计算函数为preprocessing.scale和preprocessing.StandardScale,区别在于preprocessing.StandardScale可以保存测试集上的均值、标准差,从而在训练集做一样的处理,

         2、Centering:

      newX = (X- min) / (max-min),newX范围(0,1)preprocessing.minmax_scalepreprocessing.MinMaxScaler区别在于preprocessing.MinMaxScaler可以在测试集应用

                      newX= X / maxnewX范围(-1,1)   preprocessing.maxabs_scalepreprocessing.MaxAbsScale,区别同上。

二、Normalization(正则化):正则化的过程是将每个样本缩放到单位范数(每个样本的范数为1),可通过preprocessing.normalize()或preprocessing.Normalizer()进行转换。preprocessing.normalize()中的参数norm可以选择不同的范式标准(l1,l2,max)

       p-范数的计算公式:||X||p=(|x1|^p+|x2|^p+...+|xn|^p)^1/p,l1,l2范式分别指p=1或p=2的结果

       Standardization(标准化)和Centering(归一化)处理后的结果没有太大差别,建议采用标准化,采用梯度下降时一般用归一化,在文本分类和聚类是采用Normalization(正则化)。


你可能感兴趣的:(Python,函数)