连续值特征分桶区间设置

  • 依靠实际意义
  • 评价指标
    • Odds
    • WOE
    • IV值
  • 依靠数学分析
    • 等宽
    • 等频
    • K-means
    • 卡方统计

我们实际遇到的数据经常会是连续取值的数据,比如一些表示计数或者量级的属性。

  1. 有些模型比如常用的梯度提升树系列(GBDT,XGB,LGB)可以不做任何处理的直接输入;
  2. 也有些模型(lr,nn)把数值属性去除量纲归一化后就可以作为输入;
  3. 但是一般为了方便处理或者提取出更有用的信息我们会做分桶或者说分箱处理。

设置几个阈值把总的取值区间划分为几个小区间(按照属性取值从小到大或者从大到小的顺序进行,不可跳跃。),每个样本的取值就会落在其中一个区间,如果阈值设置的好的话相当于人工再这个属性增加了一点区分度,更利于分类器性能,当然设置的不好的话也有对应的负面影响。

依靠实际意义

分桶区间的设置可以参考字段的实际意义,比如说字段是年龄的话显然可以大致分为儿童,青年,老年之类;某个测量指标可以分为弱,标准,强之类。这样的话不仅相当于引入问题背景的先验知识,得到的模型的解释性也更强(依赖于某属性低,或者高)。
但是更多的时候我们无法这样做,首先数据背景里面对于这个属性的划分可能比较粗放,不是理论上最好的划分;其次我们拿到的数据可能经过脱敏或者一些预处理,不知道该属性代表的实际意义是什么或者量纲发生了我们不知道的变动,无法直接上手用先验知识划分。这个时候我们就科学的问题就科学的来处理,再纯数学的角度做一些划分。

评价指标

在利用数学分析分桶之前,先介绍一下用来衡量我们分桶好坏(数学意义,可能不是模型中最优)的数学指标。

Odds

odds其实就是几率,假设事件发生的概率为PPP,那么odds=P1−Podds = \frac{P}{1-P}odds=1−PP​

WOE

woe全称叫Weight of Evidence,常用在风险评估、授信评分卡等领域。它的计算基于已经分好的桶,该分桶内正负样本占总数的比率相除再取对数就得到该桶的WOE值。

WOE除了用来计算IV值,自身也是有含义和应用的。
比如一种分桶后各个桶的WOE值如果单调,那么对应的odds值也是单调的。

并且从上面可以看到,如果我们把一个离散特征按照对应的WOE值编码,就可以使得它的对数几率(等号左边)均匀增加,就相当于把lr的系数正则化了。

IV值

IV全称是Information value,可通过woe加权(这个权重乘上后保证IV值是正的)求和得到,衡量自变量对应变量的预测能力。(但是仅是这是单变量的,忽略了一些相关变量,不是十分全面。)其权重也是依赖于该分桶内正负样本占比的。IV值越高证明这个属性预测能力越强,类似于信息增益、基尼系数等。一把来说IV值大于0.2的属性可堪忆用,0.5以上就要主要是不是数据泄露了。

依靠数学分析

等宽

最直观的划分方法,[1~100]分10个桶的话就是单纯的10个单位一桶[1 ~10]……[91 ~100],容易理解,但是一般效果不太好。

等频

等频划分需要先对数据进行分析,找到需要切分的位点。比如分为5桶,需要找到属性取值占20%、40%,60%,80%的位点。比如拿一场总分100的考试分数分为5桶,可能就是[0~55],[56 ~ 65],[66 ~72],[73 ~80],[81 ~100],比等宽划分更有意义,但是有些属性可能集中再某个区间,导致几个位点都是同一个值,不能划分开样本。

K-means

把这一列属性的取值抽取出来当作1维的样本进行聚类,把聚类中心当作分桶的划分区间。

卡方统计

  1. 初始化,按照属性值的大小进行排序,把每个属性当作单独的一组。
  2. 对于每一对相邻的组计算卡方值(n组计算n-1个卡方值)。
  3. 把卡方值最小的一对相邻组合并为一组。
  4. 重复2~3直到停止标准(卡方值不低于事先设定的阈值或者分组数达到一定条件)。
    卡方值计算如下:

    其中AijA_{ij}Aij​是第i组中j类样本的频率,EijE_{ij}Eij​是i组中j类样本的期望频率(全部样本中j类样本数*i组样本占总样本的比例)

连续值特征分桶区间设置相关推荐

  1. pandas用众数填充缺失值_【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)...

    一.概述 1. 数据预处理 数据预处理是从数据中检测,修改或删除不准确或不适用于模型的记录的过程 可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断. 也可 ...

  2. 决策树-缺失值和连续值处理及属性划分

    决策树是一个树结构(可以是二叉树或非二叉树),其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个输出类别.使用决策树进行决策的过程就是从根节点开始 ...

  3. ID3决策树中连续值的处理+周志华《機器學習》图4.8和图4.10绘制

    转载自 https://blog.csdn.net/Leafage_M/article/details/80137305 用一句话总结这篇博客的内容就是: 对于当前n条数据,相邻求平均值,得到n-1个 ...

  4. 对连续值/离散值进行预处理的两种方式(标准化/one-hot化)、反标准化/逆标准化、字符串预处理

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) tensorflow 2.0 画出model网络模型的拓扑图 ...

  5. 机器学习 | 决策树原理剪枝连续值缺失值处理

    机器学习 | 决策树 最近学习了西瓜书决策树一章,简单整理了笔记,后续会继续补充给 文章目录 机器学习 | 决策树 一.基本信息论 1. 信息量 2. 信息熵 二.决策树常用算法 1.ID3 2.C4 ...

  6. 决策树-离散连续值如何构造决策树

    决策树的详细说明:https://blog.csdn.net/suipingsp/article/details/41927247 什么是决策树: 决策树是通过一系列规则对数据进行分类的过程.它提供一 ...

  7. 如何处理连续值的概率问题?(概率密度)

    如何处理连续值的概率问题?(概率密度) 笔记来源于:3blue1brown 由抛硬币实验引出连续值问题中遇到的悖论 综上悖论如下 如何避免悖论,从而正确处理连续值的概率问题? 把关注点放在某个范围内的 ...

  8. R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色、连续值程度配色)实战

    R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色.连续值程度配色)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色.连续值程 ...

  9. pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决

    pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决 目录 pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决 ...

  10. 贝叶斯方法与连续值离散化

    https://www.toutiao.com/a6701998782122295819/ 奇技指南 实际算法工作中,需要经常处理特征值为连续值,而目标变量为可数属性的情况.这时, 将特征变量进行离散 ...

最新文章

  1. qemu模拟A9/A15运行Linux4.2.3
  2. java数组的协变_Java数组协变与范型不变性
  3. JdbcTemplate中queryForObject方法返回空结果或不正确结果数量的解决方法
  4. UML 2.0(装载)
  5. OpenCV2:开头篇 介绍
  6. layui分页limit不显示_小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题...
  7. DFS算法走迷宫(python实现)
  8. python安装pyquery失败
  9. javaWEB开发中get方式请求的乱码问题解决
  10. C++版二叉树非递归遍历
  11. 如何把SAP WebIDE里的Web项目同Github仓库连接起来
  12. ruby宝石区块链最新消息_Ruby宝石| Ruby工具
  13. 关于我的FPGA博客
  14. css sprites原理,[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?
  15. diskgenius创建efi分区_DISKGEN 专业版修改硬盘为GPT分区 ESP分区图文教程
  16. ECharts地图,echarts自定义map地图,echarts添加标注,自定义坐标、图标、icon
  17. Windows分布式协调器
  18. 清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog)
  19. Java月薪24k_一位月薪1.2w的北漂程序员真实生活!
  20. 梦幻西游服务器维修,《梦幻西游》电脑版2017年12月12日定期维护公告

热门文章

  1. 奈奎斯特与香农定理_这样解释奈奎斯特定理和香农定理,初学者也能明白
  2. 2019-2021 文本生成图片 Text To Image(T2I) Synthesis 论文整理
  3. 安卓实现图片缩放平移的基本步骤
  4. 看完了 2021 CSS 年度报告,我学到了啥?
  5. 数值微分的python实现
  6. Java实体类——entity类的使用与学习
  7. LuaXposed:使用Lua编写Xposed模块
  8. 一只100万年也不死的猫
  9. 推荐一个博客:香樟小院-大宝系列,博主多年来坚持记录了一只叫大宝的野猫的生活点滴,大宝后来还有了个小宝.......
  10. 《从零开始的 RPG 游戏制作教程》第十五期:地图发布,以及再见