news 2026/4/16 10:41:59

2.8 WOE与IV值计算实战:特征筛选的黄金标准,附完整代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2.8 WOE与IV值计算实战:特征筛选的黄金标准,附完整代码

2.8 WOE与IV值计算实战:特征筛选的黄金标准,附完整代码

引言

WOE(Weight of Evidence)和IV(Information Value)是评分卡模型中特征筛选的黄金标准。WOE用于特征转换,IV用于特征筛选。本文将提供完整的WOE和IV值计算代码,帮你掌握特征筛选的核心技能。

一、WOE和IV原理

1.1 WOE定义

WOE = ln(坏样本占比 / 好样本占比)

1.2 IV定义

IV = Σ(坏样本占比 - 好样本占比) × WOE

二、完整实现代码

2.1 WOE计算函数

# WOE计算完整代码importpandasaspdimportnumpyasnpdefcalculate_woe_iv(data,feature,target,n_bins=5,method='qcut'):""" 计算WOE和IV值 参数: data: DataFrame,包含特征和目标变量 feature: 特征列名 target: 目标变量列名(0/1,1表示坏样本) n_bins: 分箱数量 method: 分箱方法,'qcut'等频分箱,'cut'等距分箱 返回: woe_iv_df: 包含分箱、WOE、IV的DataFrame total_iv: 总IV值 """# 复制数据df=data[[feature,target]].copy()# 分箱ifmethod=='qcut':df['bin']=pd.qcut(df[feature],q=n_bins,duplicates='drop')else:df['bin']=pd.cut(df[feature],bins=n_bins,duplicates='drop')# 计算每箱统计bin_stats=df.groupby('bin').agg({target:['count','sum']})bin_stats.columns=['total','bad']bin_stats['good']=bin_stats['total']-bin_stats[
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 4:05:01

2.9 字段分箱技术详解:连续变量离散化,提升模型效果的关键步骤

2.9 字段分箱技术详解:连续变量离散化,提升模型效果的关键步骤 引言 分箱是将连续变量离散化的过程,是特征工程中的关键步骤。好的分箱可以提升模型效果,增强模型稳定性。本文将详细介绍各种分箱方法,并提供完整的实现代码。 一、分箱概述 1.1 为什么需要分箱? 非线性…

作者头像 李华
网站建设 2026/4/14 6:25:25

2.10 分类策略制定实战:针对不同分类,制定差异化业务策略

2.10 分类策略制定实战:针对不同分类,制定差异化业务策略 引言 分类的最终目的是制定业务策略。本文将实战演示如何根据分类结果制定差异化的业务策略,实现从数据到决策的完整闭环。 一、策略制定框架 1.1 策略框架 #mermaid-svg-K1sphsZg854OJK2X{font-family:"tr…

作者头像 李华
网站建设 2026/4/16 10:39:03

AI训练和推理到底需要什么样的配置?我的一次昂贵教训

记得去年,我们团队为了上线一个新的推荐模型,信心满满地直接把训练环境的GPU服务器拿来做推理。结果呢?上线第一天晚上,服务就崩了三次。用户投诉像雪片一样飞来,运维同事半夜爬起来扩容,而我盯着高达平时五…

作者头像 李华
网站建设 2026/4/9 8:45:20

九氚汇领衔:2026年五大主流CRM系统最新排名深度解析与选型指南

在数字化转型成为企业核心战略的今天,一款功能强大的客户关系管理系统(CRM)已成为企业提升效率、驱动增长的核心引擎。面对市场上琳琅满目的产品,如何选择成为关键。本文将为您深度解析当前市场备受关注的五款主流CRM系统&#xf…

作者头像 李华
网站建设 2026/4/5 6:21:58

protues仿真软件操作的那篇及输出内容

#include <reg52.h> #include <stdio.h> #include <string.h> //stdio.h,string.h用于printf函数原型void delay(unsigned int z); void uart_init(void); //串行口初始化void main() {int a 6,d 15;char b A,c[] "abcde";uart_init();whi…

作者头像 李华
网站建设 2026/4/11 16:53:48

通过按钮改变引脚的电平的状态并输出虚拟终端

#include <reg51.h> #include <stdio.h> #include <string.h> //stdio.h,string.h用于printf函数原型 void delay(unsigned int z); void uart_init(void); //串行口初始化 sbit button P2^0; // P2.0引脚定义 sbit led P2^2; // P2.0引脚定义 bi…

作者头像 李华