等频划分
等频划分:按照数据的分布情况,每个区间的数据数量一样,平均划分成k个区间
等比划分:按照数据的全部取值情况,平均划分成k个区间
Hive 中计算分位数的函数:percentile_approx
hive 中的percentile_approx
函数可以确定等频划分的分位点percentile_approx(col,array(0.2,0.4,0.6,0.8))[0.0,4001.0,4061.0]
其中col为要划分的列,array中的数字代表划分的位置,比如(0.2,0.4,0.6,0.8)就是钱20%数量的样本被分到一个区间,然后20%-40%的样本被分到一个区间….
返回值是一个array
如果希望变成一列,可以用explode
函数:explode(percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999))as percentilepercentile0.04001.14061.0
代码
|
由此就找到了将特征等频划分的分位点,可以按照得到的分位点队连续型特征进行分桶操作