数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义

2023-11-16

在银行评分卡的项目中,通常都会需要把数据分箱,分箱后并不是对数据进行哑变量处理,而是用WOE值去替换,再放入模型中。
学习的过程中会对这些操作有些疑问,比如,数据分箱有什么意义,WOE和IV值是干什么的?这里对这些数据处理的意义进行一个说明。

数据分箱

数据分箱是把连续型数据分为几组,或者把离散数据中类别较多的,进行重新划分,划分为类别数较少的特征。

数据分箱的意义

  1. 把离散特征的类别进行分箱二次分类(比如,中国的所有城市,通过分箱划分为县区市地区等),可以让模型快读迭代。
  2. 对于连续特征,分箱会降低数据的噪声影响。分箱后的数据有很强的稳定性。
  3. 将连续数据分箱后,进行哑变量或独热编码的处理,每个特征中的每一类别就有了权重,这样相当于为模型引入的非线性,能够提升模型的拟合能力。
    这里可以看到,原来的特征只有x1,哑变量处理后变成xa和xb(类比多项式回归),增强了逻辑回归处理非线性的能力
    在这里插入图片描述

在这里插入图片描述
分箱的方法分为有监督和无监督。

  • 有监督分箱:卡方分箱,Best-KS分箱(只能二分类)等。
  • 无监督分箱:等宽分箱,等频分箱,聚类分箱,最小熵法等。
  • 分箱方法介绍

:连续值的分箱不一定是要分成离散数据,而是一种数据平滑的处理,可以几个数据分在一起,然后取其平均值或中位数,降低数据的噪声。

WOE和IV

将数据离散化后,要想放入逻辑回归模型中,需要对数据进行处理,因为数据中的123是类别不是大小,这个数量关系仅仅表示顺序,他们之间实质性的数值间隔你是不知道的(WOE可以解决这个问题)。而我们一般用的方法是哑变量,或独热编码,将特征中的类别提取出来,设为单独的一个特征。那什么是WOE?

WOE

woe全称是Weight of Evidence,即证据权重。是对原始自变量的一种编码形式。

WOE的两种公式理解

1.坏人的分布减去好人的分布。
在这里插入图片描述
2.每个箱中的坏人好人之间的比值 与 整个特征中坏人好人之间的比值 的差异。
在这里插入图片描述
WOE越大,以上这两种差异就越大。原始数据中好人,坏人都混在一起,是无法分清的。我们通过分箱的操作,可以把好人坏人尽可能的分割开,而WOE就是衡量分箱后,好人坏人的分割程度的。

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

数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义 的相关文章

  • GD32 OSC引脚做普通IO配置

    根据用户手册 bit15共同控制了PD0 PD1的重映射的使能 总的来说 比普通IO配置多开启一个复用时钟和重映射使能 rcu periph clock enable RCU GPIOD rcu periph clock enable RC
  • 第1关:Hbase数据库的安装

    在安装HBase之前你需要先安装Hadoop和Zookeeper 如果你还没有安装可以通过这两个实训来学习 Hadoop安装与配置 Zookeeper安装与配置 本次实训的环境已经默认安装好了Hadoop 接下来我们就开始安装配置HBase
  • 500G JAVA视频网盘分享 (Jeecg社区)

    http blog csdn net zhangdaiscott article details 18220411 csdn 排名400多名 500 G JAVA视频网盘分享 Jeecg社区 涵盖从java入门到深入架构 Linux 云计算

随机推荐

  • mermaid 用法

    div class article content tracking ad div class markdown views p 作者 黄永刚 p h2 a target blank a strong mermaid简介 strong h2
  • 11.Linux下Spark的安装配置以及spark-shell的启动和 Spark集群环境搭建

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 安装Spark 1 先用xftp将安装包传到home hadoo
  • springBoot整合RabbitMq实现confrim模式回调一直不成功的 坑

    这两天在学习springBoot整合RabbitMq实现confrim模式 网上的demo有很多 但是一直回调不成功 大家的配置大概都是如下图这样 你会发见这个已经废弃了 还有一种你写成这样 又或者你写成这样 没报错 但就是不回调 新版的R
  • 【编程测试题】连续最大和

    题目描述 一个数组有 N 个元素 求连续子数组的最大和 例如 1 2 1 和最大的连续子数组为 2 1 其和为 3 输入描述 输入为两行 第一行一个整数n 1 lt n lt 100000 表示一共有n个元素 第二行为n个数 即每个元素 每
  • 目标检测数据集分析

    原文链接 https ghlcode cn pages 250d97 目标检测数据集分析 新增支持数据集可视化 Ghlerrix DataAnalyze 平时我们经常需要对我们的数据集进行各种分析 以便我们找到更好的提高方式 所以我将我平时
  • ERROR! MySQL server PID file could not be found!解决方案

    首先怀疑是有僵尸mysqld的存在 首先查看进程 ps ef grep mysqld 然后用 kill 9 进程号杀死进程 重启mysql 但是问题并没有得到解决 再然后可以通过mysql的配置文件my cnf查看一下mysql的数据存储目
  • Python + ttkbootstrap 制作全网小说下载神器

    前言 ttkbootstrap是一个基于Python的开源库 用于创建漂亮且交互式的GUI应用程序 它是在Tkinter框架之上构建的 提供了一系列的Widget组件和样式 可以帮助开发者快速构建现代化的用户界面 今天做的是这个东西 蓝色的
  • Tensorflow 简单线性规划和逻辑回归

    Tensorflow 简单线性规划和逻辑回归 摘要 Tensorflow 中单变量线性回归 多变量的情况 用 tensorflow进行逻辑回归分类 参考文献 摘要 线性规划和逻辑回归分别是回归 regression 和分类 classifi
  • flask学习笔记(一)

    1 为什么要用web框架 稳定性和可扩展性强 可以降低开发难度 提升开发效率 总结 避免重复造轮子 2 Flask简介 Flask是轻量级web开发框架 Flask本身相当于一个内核 其框架核心包含 WSGI工具箱采用Werkzeug 路由
  • 基于ZYNQ FPGA的8路ADC数据采集与存储实现

    基于ZYNQ FPGA的8路ADC数据采集与存储实现 概述 在工程设计和科学研究中 数据采集与存储是一个重要的任务 为了满足高速 高精度和大容量的数据采集需求 本文将介绍如何基于ZYNQ FPGA平台实现8路ADC数据采集与存储 通过合理的
  • 如果android的广播注册后没有取消注册会发生什么?》,android – 我是否需要取消注册“匿名”BroadcastReceiver...

    我最近问了一个关于检查已发送短信状态的问题 给出的答案是一个代码片段 注册了两个 匿名内部 如果不正确 请更正我的术语 BroadcastReceivers监听短信发送 传送的广播 这些接收器只需要接收有关我的应用程序刚刚发送的SMS的数据
  • C/C++ 浮点数大小比较问题

    1 c 中浮点数注意 The important rule to remember is that powers of two and integer multiples thereof can be perfectly represent
  • ORACLE 造数脚本

    SELECT DBMS RANDOM VALUE FROM DUAL SELECT DBMS RANDOM VALUE 20 30 FROM DUAL SELECT DBMS RANDOM NORMAL FROM DUAL SELECT D
  • Base64编码(汇编版,未做过多优化,性能自认为还可以)

    感谢 DelphiGuy 于 2010 10 08 17 27 37 给出的提醒 function GetSizeCoder3To4 InputCount Integer Integer inline begin Result InputC
  • 本地映射到外网

    很多人做开发的苦恼 外网访问不了本地 很多调试进行不了 比如说微信开发 这个时候要用手机调试 但是服务器在自己电脑上 外网访问不了 这个时候我们可以用一些工具 使我们的内网ip映射到外网 让外网可以访问 一 使用ngrok让微信公众平台通过
  • POST请求常见错误及解决办法

    POST请求常见错误及解决办法 前后端分离 已经是web开发的主流 在前后端对接的过程中难免会碰到各式各样的问题 本文对近期项目中遇到的与 POST请求 有关的问题做了一个简要的汇总和分析 并列出了与之相关的解决办法 问题一 POST请求发
  • 区块链之java调用智能合约(二)部署智能合约

    前言 上一节 已经说过 如何的创建一个合约 如何编译合约 然后在java中调用 但是呢 这些还远远不够 那么还差哪些呢 现在就是如何将创建的智能合约部署的对应的共链 私链 测试链中了 需要部署后 才能真正的使用 现在就讲讲如何部署智能合约
  • linux下gcc的使用教程,Linux下GCC使用方法简介

    编译 第一步 是进行预编译 使用 E参数可以让GCC在预处理结束后停止编译过程 gcc E hello c o hello i 预处理的宏定义插入到hello i中 第二步 是将hello i编译为目标代码 这可以通过使用 c参数来完成 g
  • C++使用string的大数运算(6)模加模减模乘模幂

    本次项目目标 使用C 完成对于大数的相关运算 项目要点 1 大数指的是远超long long int的数据 2 将大数用矩阵进行存储 并通过矩阵实现运算 3 本人采用字符串进行存储 应注意char的特点 比如 char a 161 cout
  • 数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义

    在银行评分卡的项目中 通常都会需要把数据分箱 分箱后并不是对数据进行哑变量处理 而是用WOE值去替换 再放入模型中 学习的过程中会对这些操作有些疑问 比如 数据分箱有什么意义 WOE和IV值是干什么的 这里对这些数据处理的意义进行一个说明