> 文章列表 > 机器学习-特征缩放

机器学习-特征缩放

机器学习-特征缩放

        机器学习中, 特征值通常相差比较巨大,  不同维度的特征值相差巨大,导致部分特征影响微乎其微,   用来做训练效果不好。

       举个例子, 工作年数和 工资收入作为特征值,来构建预测模型。

       工作年数 一般比较小 1-10 ,  工资收入 都是3000-100 0000 不等。  从数值来看, 年份和工资相比数值太小, 对整个模型的影响基本上可以忽略。 

      因此,我们需要对特征值进行缩放, 已规避数值差异带来的影响。

1 特征缩放:线性归一化 (min-max normalization)

     Xnew = x - min(x)/ max(x)-min(x)

    也称最大最小值归一化   。  计算公式如下。

      

  2  标准差归一化  ( Z-score normalization)

     Xnew =  x - mean(x)  / std(x)            [均值   标准差】

标准差std(x) =  方差的算术平方根 。(方差计算的是数据平方, 个体数据相差值会放大,所以开方求平方根可以缩小换算回来。 即标准差)

3  特征标准化方法选择。

    具体哪一种 标准化方法比较好,依据实际效果来。   

5 特征值离散化

     一般在搭建机器学习分类模型时,需要对连续型的特征进行离散化,也就是分箱。

    5.1 无监督分箱

         1)  等距分箱

           特征的取值范围等间隔分割,从最小值到最大值之间,均分N等份,如果最小值和最大值分             别为A、B,则每个区间的长度为W=(B-A)/N,则区间的边界为A+W,A+2W,A+3W,...,              A+(N-1)W

           该方法对异常值比较敏感,比如远大于正常范围的数值会影响区间的划分。

        2)等频分箱

           每个区间包含大致相等的实例数量。比如说 N=10 ,每个区间应该包含大约10%的实例。

     5.2 有监督分箱

           卡方分箱 、最优分箱等。  

             TODO  

    举例:  年龄特征 (21 22  23 21 24 25  22 23  25 24  21  26  28  30)

              X<=22      ==>  X = 1

              22 < X <=24  ==>  X =2

              X > 24      ==>  X =3

6  类别特征分类编码 one-hot编码

     在机器学习中,我们常用到分类。比如 经典的 手写 1-9 数值分类识别。  如果分类特征 按, 1 ,2, 3 ...9来分类的话,   会把这些数值明显差异大小有别带入到模型中。 实际上 只是一个分类,没有大小。

    针对类别特征的编码,常用的是 one-hot编码。

7 交叉验证与参数调优

     一份数据集,我们一般取 80%作为训练集, 20%作为测试集。

    但是,仅一次选择,        可能效果泛化不好,特别是20%跟训练集比较接近的时候。

    因此, 为达到更好效果,我们经常使用交叉验证。

  1)S-fold交叉验证。 即S折交叉验证

        将数据集分成S份 (常用的是10折)。 以10折为例

          取1份作为验证数据。 另外9份作为训练集。

          取第2份作为验证数据。另外9份作为训练集。

          ......

          取第10份作为验证数据。另外9份作为训练集。

      将上述验证效果最好的参数模型,作为开发侧的输出,提交給测试团队进行下一步操作。