数据分桶

2023-11-17

数据分桶是一种数据预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的“桶”的方法。
例如,例如我们有一组关于人年龄的数据,如下图所示:
在这里插入图片描述
现在我们希望将他们的年龄分组到更少的间隔中,可以通过设置一些条件来实现:
在这里插入图片描述
分桶的数据不一定必须是数字,它们可以是任意类型的值,如“猫”、“狗”等。分桶也可用于图像处理,通过将相邻像素组合成单个像素,可用于减少数据量。
一般在建立分类模型时,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。比如在建立申请评分卡模型时用logistic作为基模型就需要对连续变量进行离散化,离散化通常采用分桶法。

为什么要进行数据分桶?
  1. 离散后稀疏向量内积乘法运算速度更快,计算结果也方便存储容易扩展
  2. 离散后的特征对异常值更具鲁棒性,如 age>30 为 1 否则为 0,对于年龄为 200 的也不会对模型造成很大的干扰;
  3. LR 属于广义线性模型,表达能力有限,经过离散化后,每个变量有单独的权重,这相当于引入了非线性,能够提升模型的表达能力,加大拟合;
  4. 离散后特征可以进行特征交叉,提升表达能力,由 M+N 个变量编程 M*N 个变量,进一步引入非线形,提升了表达能力;
  5. 特征离散后模型更稳定,如用户年龄区间,不会因为用户年龄长了一岁就变化;
  6. 可以将缺失作为独立的一类带入模型;
  7. 将所有的变量变换到相似的尺度上。
分桶方法

分桶方法分为无监督分桶和有监督分桶。
(1)常用的无监督分桶方法有等频分桶、等距分桶和聚类分桶。
(2) 有监督分桶主要有best-ks分桶和卡方分桶。

卡方分桶

卡方分箱是自底向上的(即基于合并的)数据离散化方法。
它依赖于卡方检验:具有最小卡方值的相邻区间合并在一起,直到满足确定的停止准则。
基本思想:对于精确的离散化,相对类频率在一个区间内应当完全一致。因此,如果两个相邻的区间具有非常类似的类分布,则这两个区间可以合并;否则,它们应当保持分开。而低卡方值表明它们具有相似的类分布。
分桶步骤
第0步:预先设定一个卡方的阈值;
第一步:初始化
根据要离散的属性对实例进行排序:每个实例属于一个区间
第二步:合并区间
(1)计算每一对相邻区间的卡方值;
(2)将卡方值最小的一对区间合并
X 2 = ∑ 2 i = 1 ∑ 2 j = 1 ( A i j − E i j ) 2 E i j X 2 = ∑ i = 12 ∑ j = 12 ( A i j − E i j ) 2 E i j X 2 = ∑ i = 1 2 ∑ j = 1 2 ( A i j − E i j ) 2 E i j X2=∑2i=1∑2j=1(Aij−Eij)2EijX2=∑i=12∑j=12(Aij−Eij)2Eij X^2 =\sum^2_{i=1}\sum^2_{j=1}\frac{(A_{ij}-E_{ij})^2}{E_{ij}} X2=2i=12j=1(AijEij)2EijX2=i=12j=12(AijEij)2EijX2=i=12j=12Eij(AijEij)2 Cj是第j类样本在全体中的比例。
注意:初始化时需要对实例进行排序,在排序的基础上进行合并。
卡方阈值的确定

  • 根据显著性水平和自由度得到卡方值
    
       
       
       
       
    • 1
  • 自由度比类别数量小1,例如:有3类,自由度为2,则90%置信度(10%显著性水平)下,卡方的值为4.6。
    
       
       
       
       
    • 1

阈值的意义

  • 类别和属性独立时,有90%的可能性,计算得到的卡方值会小于4.6。
    
       
       
       
       
    • 1
  • 大于阈值4.6的卡方值就说明属性和类不是相互独立的,不能合并。如果阈值选的大,区间合并就会进行很多次,离散后的区间数量大、区间大。
    
       
       
       
       
    • 1


(1)ChiMerge算法推荐使用0.9、0.95、0.99置信度,最大区间数取10到15之间。
(2)也可以不考虑卡方阈值,此时可以考虑最小区间数或者最大区间数。指定区间数量的上限和下限 ,最多几个区间,最少几个区间。
(3)对于类别型变量,需要分桶时需要按照某种方式进行排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据分桶 的相关文章

  • 多线程练习之数字加减

    数字加减 题目 设计 4 个线程对象 两个线程执行减操作 两个线程执行加操作 使其返回结果为0 1 0 1 或为0 1 0 1 public class ThreadTest public static void main String a
  • 学生如何免费激活JetBrain所有产品(PyCharm,IDEA......)

    前提 版权意识的重要性不言而喻 抛去法律等的规则来说 可以近似理解为一种对别人付出的尊重 本文为学生免费激活JetBrain所有产品 PyCharm IDEA https www jetbrains com 进入jetBrains的官网 点
  • 雷军22年前写的代码 你见过吗?

    作为小米科技的创始人 董事长和首席执行官 雷军的名字如雷贯耳 网上出现一篇 刘强东的代码水平如何 的文章 有网友在下面回复 代码只服雷军 这个回复吸引了小编的注意 雷军的代码水平真的很牛吗 原来雷军年轻的时候 也是一名程序员 而且一干就是1
  • C语言用牛顿迭代法和二分法递归求解三元一次方程

    求解方程 2x 3 4x 2 3x 6 0 牛顿迭代法 牛顿迭代法公式 以下图片均来源于百度 牛顿迭代法用递归实现解三元一次方程 include
  • 实现3D物体拆解组装的详细步骤和示例代码

    拆分3D物体 使用3D建模软件将原始3D模型拆分成多个可独立控制的部分 并将每个部分导入到Unity中 创建GameObject并添加脚本 在Unity中 为每个部分创建一个独立的GameObject 并为其添加相应的脚本 这些脚本可以控制
  • Android LRecyclerView实现下拉刷新,滑动到底部自动加载更多

    http blog csdn net lmj623565791 article details 45059587
  • c# Byte解压,压缩

    using ICSharpCode SharpZipLib GZip using System using System Collections Generic using System IO using System Linq using
  • 方差分析(ANOVA)的基本原理及R实现(单因素)

    方差分析 analysis of variance ANOVA 几乎是在统计学分析中最常用的方法 通过分析各变量的主效应 main effect 和交互效应 interaction effect 从而发现因变量 dependent vari
  • 音标发音规则

    一 辅音字母的读音规则 1 c 在字母e i y前读 s 如cell cit y cyst 其余情况下读 K 如cat club code 2 g 在字母e i y前读 如gene gin gym 其余情况下读 g 如beg golf ga
  • [图论]---[网络流]---最大权闭合子图

    最大权闭合子图 闭合图的概念 闭合图建立在有向图之上 对于 G V E 选取一个点的子集 V V 的任意一点的所有能到达的点也在集合 V 内 则称 V 为闭合子图 最大权闭合子图即在G的所有闭合子图中 点权和最大的 最大权闭合子图的求法 构
  • JDK1.8新特性---------lambda

    1 Lambda表达式 1 1 概念 Lambda表达式 特殊的匿名内部类 语法更加简洁 是JDK1 8中的新特性 Lambda表达式允许把函数作为一个方法的参数 函数作为方法参数传递 将代码像数据一样传递 1 2 需求 1 开启一个线程
  • CTK系列之插件制作

    CTK插件制作 说明 1 将上篇我们提到的ctk路径创建ctk pro包含到每一个插件中 include PWD ctk ctk pri 2 可以自定义一个公共代码仓common并创建common pri同样包含到每一个插件中 includ
  • php前端取blob数据,前端读取Blob内容

    简述 前端由于安全方面的因素 不能直接对文件进行写操作 但是在实际的业务需求中 难免会遇到各种各样文件的下载 预览 如果服务端下载文件是以流的形式传递到前端 前端通常是将流转换为objectURL 借用a标签的download属性 进行文件
  • 后台扫描工具 - 御剑(珍藏版)附下载

    版本说明 御剑后台扫描珍藏版 下载地址 安装包放下方网盘里了 链接 https pan baidu com s 1Bn7GtWb7AStcjzVahFOjSQ 提取码 zkaq 使用环境 windows 标题工具说明 御剑后台扫描珍藏版是T
  • Pytorch版本的Ernie Health源码详解

    Pytorch版本的Ernie Health源码详解 一 目录架构 二 尝试使用Ernie Health import torch 查看torch版本 torch version 1 12 0 cpu 查看设备是否有GPU资源 device
  • 方差分析、T检验、卡方分析如何区分

    方差分析 T检验 卡方分析如何区分 差异研究的目的在于比较两组数据或多组数据之间的差异 通常包括以下几类分析方法 分别是方差分析 T检验和卡方检验 1 三个方法的区别 1 其核心的区别在于 数据的类型不一样 如果是定类和定类 此时应该使用卡

随机推荐

  • 在MacOS上安装GraphViz并用PlantUML绘制UML图

    文章目录 在MacOS上安装GraphViz并用PlantUML绘制UML图 在MacOS上安装Graphviz 在VSCode上安装PlantUML插件 用PlantUML绘制UML图 在MacOS上安装GraphViz并用PlantUM
  • Python矩阵赋值详解

    在Python中 矩阵是一种常见的数据结构 广泛应用于数学 科学和工程领域 在本文中 我们将详细介绍如何使用Python给矩阵赋值 在Python中 可以使用多种方式来表示和操作矩阵 其中最常用的是使用嵌套列表或NumPy库中的数组对象 我
  • JavaScript高级技巧:深入探索JavaScript语言的高级特性和用法

    当我们谈论JavaScript高级技巧时 以下是一些示例来说明这些概念 闭包 Closures function outerFunction var outerVariable Hello function innerFunction co
  • 自从学了这套框架,自动化+性能都搞定了

    框架介绍 1 HttpRunner 是一款面向 HTTP S 协议的通用测试框架 只需编写维护一份YAML JSON脚本 即可实现自动化测试 性能测试 线上监控 持续集成等多种测试需求 2 Locust Locust是一款易于使用的分布式用
  • 数据库关系代数运算之连接

    联接有三种 联接和自然联接 这里是算术比较符 外联接 1 联接 从R和S的笛卡儿乘积中选取满足条件 i j 的元组 2 自然联接 naturaljoin 两个关系R和S的自然联接操作具体计算过程如下 计算R S 设R和S的公共属性是A1 A
  • 【转】SQL删除的三个语句:DROP、TRUNCATE、 DELETE 的区别

    主要介绍了SQL删除语句DROP TRUNCATE DELETE 的区别 帮助大家更好的理解和学习sql语句 感兴趣的朋友可以了解下 DROP 1 DROP TABLE test 删除表test 并释放空间 将test删除的一干二净 TRU
  • CMake Error: Maybe need administrative privileges.

    安装opencv时 到make install 这一步报错 解决 权限不够 前面加上sudo 即 sudo make install
  • qt中的QString::number()的精度使用问题

    1 QString number average f 5 这里的 f 表示的是 f 方式结果是0 00 所以后面的5表示的就是输出的时候保留5位小数 通常 QString str str QString number 23 34567899
  • 使用tp5内cache缓存,存储手机短信验证码

    设置手机短信验证码缓存方法 设置手机短信验证码缓存 User JW Email jw 333 163 com Date param data cache public function setRegSmsCache data cache C
  • Gitee API的使用|如何批量删除Gitee下的所有仓库

    前言 那么这里博主先安利一些干货满满的专栏了 首先是博主的高质量博客的汇总 这个专栏里面的博客 都是博主最最用心写的一部分 干货满满 希望对大家有帮助 高质量博客汇总https blog csdn net yu cblog category
  • python语音播报

    python3 pip install pyttsx3 python2 pip install pyttsx 文本转语音 import pyttsx3 import time str Come on Catherine engine pyt
  • java 强密码验证策略工具类

    java 强密码验证策略工具类 package com neusoft caeid common utils import java util regex Matcher import java util regex Pattern aut
  • ChatGPT论文考试满绩,高等教育该如何应对人工智能挑战?

    近日 ChatGPT引发热议 一方面 ChatGPT表现亮眼 有大学生利用ChatGPT在开卷课堂上取得满绩的优异成绩 另一方面 部分院校 学术期刊却对ChatGPT在高等教育领域的推进保持谨慎态度 甚至有高校明确禁止这项工具技术的使用 那
  • 算法题:Rod Cutting

    算法题 Rod Cutting 一 题目 二 代码 三 结果 一 题目 二 代码 lengths 1 1 3 4 lengths 5 4 4 2 2 8 def rodOffcut lengths resut resut append le
  • Android自定义控件--如何在XML文件中使用自定义属性

    前言 你好 我是Cici 这几天在做一个小项目的时候 用到了自定义控件 为了方便在XML中进行配置 于是需要用到自定义属性 特此记下用法 方便复习的同时也希望对大家有所帮助 一 为什么需要自定义控件 Android本身提供了很多控件 比如T
  • 1024 视频拼接

    题目描述 你将会获得一系列视频片段 这些片段来自于一项持续时长为 T 秒的体育赛事 这些片段可能有所重叠 也可能长度不一 视频片段 clips i 都用区间进行表示 开始于 clips i 0 并于 clips i 1 结束 我们甚至可以对
  • pyinstaller打包Transformers 报错No such file or directory

    问题描述 Traceback most recent call last File transformers utils import utils py line 1086 in get module File importlib init
  • Go开发者路线图2019,请收下这份指南

    Go是Google开发的一种静态 强类型 编译型 并发型 并具有垃圾回收功能的类C编程语言 2009以开源项目的形式发布 2012年发布1 0稳定版本 距今已经十年了 其性能类似于Java和C 但速度极快 适合搭载于web服务器 用于高性能
  • LeetCode1652. 拆炸弹

    题目描述 1652 拆炸弹 力扣 LeetCode 题目描述看的不是很清楚 直接看用例 这道题是简单题 取模 防止数组访问越界 C语言代码如下 int decrypt int code int codeSize int k int retu
  • 数据分桶

    数据分桶是一种数据预处理技术 用于减少次要观察误差的影响 是一种将多个连续值分组为较少数量的 桶 的方法 例如 例如我们有一组关于人年龄的数据 如下图所示 现在我们希望将他们的年龄分组到更少的间隔中 可以通过设置一些条件来实现 分桶的数据不