zoukankan      html  css  js  c++  java
  • 特征处理之数据离散化

    二元转换Binarizer
    Binarizer是将连续型变量根据某个阈值,转换成二元的分类变量。
    小于该阈值的转换为0,大于该阈值的转换为1。

    要求输入列必须是double,int都会报错。
    如下:输入的是0.1,0.8,0.2连续型变量,要以0.5为阈值来转换成二元变量(0,1)。

    打印结果:

    Binarizer output with Threshold = 0.5
    +---+-------+-----------------+
    | id|feature|binarized_feature|
    +---+-------+-----------------+
    |  0|    0.1|              0.0|
    |  1|    0.8|              1.0|
    |  2|    0.2|              0.0|
    +---+-------+-----------------+

    多了一个新的列,它就是转换后产生的新的特征。

    什么时候会用到二元转换?
    比如使用朴素贝叶斯做分类预测的时候,输入的特征必须是类别型的,如果在原始的特征数据集中存在连续型的特征变量,就需要将它转换成二元的类别变量。

    多元转换(分桶Bucketizer)
    同样是连续型变量,如果分成两类还不够,同样也可以分成多类。

    二元转换的时候需要给出一个阈值,在多元换转换中,如果要分成n类,就要给出n+1个阈值组成的array,任意一个数都可以被放在某两个阈值的区间内,就像把它放进属于它的桶中,故称为分桶策略。

    比如有x,y两个阈值,那么他们组成的区间是[x,y)的前开后闭区间;
    对于最后一个区间是前闭后闭区间。

    给出的这个阈值array,里面的元素必须是递增的。

    如果在转换的过程中有一个数没有被包含在区间内,那么就会当成错误值(对错误值的处理可以通过参数配置)。如果不确定特征值的最小与最大值,那么就添加Double.NegativeInfinity(负无穷)和Double.PositiveInfinity(正无穷)到array的两侧。

    Bucketizer output with 4 buckets
    +--------+----------------+
    |features|bucketedFeatures|
    +--------+----------------+
    |  -999.9|             0.0|
    |    -0.5|             1.0|
    |    -0.3|             1.0|
    |     0.0|             2.0|
    |     0.2|             2.0|
    |   999.9|             3.0|
    +--------+----------------+

    第一列为原始的连续型特征,第二列为转换后的分类索引。

    分位数离散化QuantileDiscretizer
    与上面两个方法一样,QuantileDiscretizer(分位数离散化)也是将一列连续型的数据转成分类型数据。
    通过指定要分为多少类,然后取一个样本数据进行fit,并将其分为每个类别的元素个数大致相等,来得到一个固定阈值array的Bucketizer,其阈值array的下限为-Infinity(负无重大) ,上限为+Infinity(正无重大)。

    分级的数量由numBuckets参数决定。
    分级的范围有渐进算法决定。
    渐进的精度由relativeError参数决定。当relativeError设置为0时,将会计算精确的分位点(计算代价较高)。

    但如果样本数据只划分了3个区间,此时设置numBuckets为4,则仍只划分为3个区间。

  • 相关阅读:
    华硕ASUS A3V 拆解图 http://m.linktone.com/report/pdjj/14001781862.shtml
    华硕A3V 迅驰 配置详情
    Dvbbs 更换论坛置顶图片
    Flash 图片轮换效果
    动网官方最新dvbbs7.1sp1商业版下载,附存储过程解密代码!
    在VC中为应用程序添加图形超链接功能
    VC常见数据类型转换详解
    查询Access逻辑字段遇到的问题 武胜
    几个不错的开源的.net界面控件 转自http://zchuang2004.spaces.live.com/blog/cns!8C4AEEE059DED8B1!157.entry 武胜
    C#正则表达式整理备忘 转载(http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html) 武胜
  • 原文地址:https://www.cnblogs.com/itboys/p/10786265.html
Copyright © 2011-2022 走看看