使用toad对数据进行分箱处理

news2024/11/18 22:33:08

Toad 是专为工业界模型开发设计的Python工具包,特别针对评分卡的开发。Toad 的功能覆盖了建模全流程,从 EDA、特征工程、特征筛选到模型验证和评分卡转化。Toad 的主要功能极大简化了建模中最重要最费时的流程,即特征筛选和分箱。
导入模型包

import pandas as pd
import numpy as np
import toad
import matplotlib.pyplot as plt
%matplotlib inline
from toad.plot import bin_plot
from sklearn.model_selection import train_test_split

读取数据并查看数据基本内容

df = pd.read_csv('germancredit.csv')
df.replace({'good':0,'bad':1}, inplace=True)
print(df.info())
df.head()

在这里插入图片描述
使用toad进行分箱,并输出分箱的内容

combiner = toad.transform.Combiner()
combiner.fit(df, y='creditability', method='chi', min_samples=0.05)

bins = combiner.export()
print('duration in month:',bins['duration.in.month'])

在这里插入图片描述
分为7组并绘制图形

c2 = toad.transform.Combiner()
c2.fit(df[['duration.in.month','creditability']], y='creditability', method='chi', n_bins=7)
transformed = c2.transform(df[['duration.in.month','creditability']], labels=True)
bin_plot(transformed, x='duration.in.month', target='creditability')

在这里插入图片描述
一般分箱的折线图要实现单调的趋势,所以我们要调整分箱的箱数。

c2 = toad.transform.Combiner()
c2.fit(df[['duration.in.month','creditability']], y='creditability', method='chi', n_bins=5)
transformed = c2.transform(df[['duration.in.month','creditability']], labels=True)
bin_plot(transformed, x='duration.in.month', target='creditability')

在这里插入图片描述
使用toad计算woe

train_X, test_X, train_y, test_y = train_test_split(df.drop('creditability', axis=1), df['creditability'], test_size=0.25, random_state=450)
# 合并数据,并增加列区分训练和测试的特征
data_train = pd.concat([train_X, train_y], axis=1)
data_train['type'] = 'train'
data_test = pd.concat([test_X, test_y], axis=1)
data_test['type'] = 'test'
# 设置分箱的边界
a_bin = {'duration.in.month':[9,12,18,33]}

c2 = toad.transform.Combiner()
c2.set_rules(a_bin)
data = pd.concat([data_train,data_test], axis=0)
# 进行分箱
temp_data = c2.transform(data[['duration.in.month','creditability','type']])

# 绘制图形
from toad.plot import badrate_plot, proportion_plot
badrate_plot(temp_data, target='creditability', x='type', by='duration.in.month')
# 每一个箱的占比情况
proportion_plot(temp_data['duration.in.month'])

在这里插入图片描述
0和1组存在倒挂,即badrate不单调,0和1进行合并。

# 设置分箱的边界
a_bin = {'duration.in.month':[9,18,33]}

c2 = toad.transform.Combiner()
c2.set_rules(a_bin)
# 进行分箱
temp_data = c2.transform(data[['duration.in.month','creditability','type']])

# 绘制图形
badrate_plot(temp_data, target='creditability', x='type', by='duration.in.month')
# 每一个箱的占比情况
proportion_plot(temp_data['duration.in.month'])

在这里插入图片描述

# 将特征的值转化为分箱的箱号
binned_data = c2.transform(data_train)

# 计算woe
transer = toad.transform.WOETransformer()
# 对woe的值进行转化,映射到数据集上,则训练集用fit_transform,测试集用transform
data_tr_woe = transer.fit_transform(binned_data, binned_data['creditability'], exclude=['creditability','type'])
data_tr_woe.head()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7 网络通信(上)

文章目录 网络通信概述ip地址ip的作用ip地址的分类私有ip 掩码和广播地址 linux 命令(ping ifconfig)查看或配置网卡信息:ifconfig(widows 用ipconfig)测试远程主机连通性:ping路由查看 端口端口是怎样分配的知名端口动态端口 查看…

思维导图在线生成,新手必备!

思维导图是一个很好的学习和工作的方式,可以解决我们工作中的很多困难的问题,但是现在随着思维导图学习方法的推广,市面上的导图软件层出不穷,电子化的思维导图软件极大的方便了我们的工作和生活,下面我们就一起来盘点…

Linux下Pycharm安装

查看java版本,如果没有安装,需要先安装Java JDK。 java -versionsudo apt install openjdk-11-jre-headless下载Pycharm社区般,安装。 tar -zxvf pycharm-community-2023.2.tar.gz sh /opt/software/pycharm-community-2023.2/bin/pycharm.s…

URL存储解锁数据管理的新思路,重新定义数据传输与共享(@vue/repl)

Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想。 近日,在了解 vue/repl 相关内容,其通过 URL 进行数据存储,感觉思路惊奇,打开了新方式。 首先,通过 URL 存储最大的便利是:无需服…

IDEA中连接虚拟机 管理Docker

IDEA中连接虚拟机 管理Docker 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮…

android 如何分析应用的内存(十三)——perfetto

android 如何分析应用的内存(十三) 本篇文章是native内存的最后一篇文章——perfetto perfetto简介 从2018年始,android开发者峰会正式推出perfetto工具。从此perfetto成为安卓最重要的工具之一。在2018年以前,android使用syst…

率失真优化

文章目录 率失真优化率失真优化技术率失真理论1.互信息量2.失真度3.率失真函数4.率失真信源编码定理 视频编码中的率失真优化1.视频失真测度2.视频率失真曲线3.视频编码率失真优化 率失真优化 编码比特率和失真度相互制约、相互矛盾 因此,视频编码的主要目的就是在…

浅析Java中的内存泄漏

浅析Java中的内存泄漏 Java最明显的一个优势就是它的内存管理机制。你只需简单创建对象,java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏。 本教程演示了什么是内存泄漏,为什么会发生…

CAN转ETHERCAT网关can协议是什么意思

大家好,今天要跟大家分享一款自主研发的通讯网关,JM-ECT-CAN。这款产品能够将各种CAN总线和ETHERCAT网络连接起来,实现高效的数据传输和通信。那么,这款通讯网关具体有哪些功能和特点呢?接下来,我们就一起来…

vscode配置c++环境

第一步:安装vscode编辑器 预先安装: vscode(https://code.visualstudio.com/)在vscode中安装 C/C extension for VS Code(在左侧扩展栏中搜索 “C”) 第二步:安装MinGW-w64工具链 MinGW 提供…

web浏览器脚本的调试

水一贴。 在浏览器中按F12点击"source"或者"源程序"点击html、js、css等源码文件所在的窗口的左边,此时点击处显示为蓝色光标,表示断点中断已经设置完毕。配合窗口右上角的"继续" “下一步” "跳过"等控制按钮…

计算机SCI期刊,和计算机会议哪个更权威? - 易智编译EaseEditing

在计算机学科领域,SCI期刊和计算机会议都有其特点和优势,但两者在权威性方面可能存在一些差异。 SCI期刊是指被SCI(Science Citation Index)收录的学术期刊,SCI是Web of Science(科学引文索引)的…

[内测招募] IDEA 插件 X-ChatGPT 内测预览版 支持自定义 ChatGPT 回调函数 释放 AI 的无限可能性

X-ChatGPT 独创的 [项目感知] 功能 打造更精准、更智能、更懂你 的专属 ai 编程助手 这个插件是一款基于开源项目 ChatGPT-Next-Web的 IntelliJ IDEA 平台的插件 价格 :免费、速率限制 每小时/100 次/ip 使用方式 :在 IDEA 插件商店中搜索 X-ChatGPT…

信号三表block,pending、handler

目录 前序: 信号流程图: pending表(信号未决表 block表(信号阻塞表 handler表(信号递达表 小知识点 1:handler保存的是什么 前序: 进程信号中的三大表格 首先在了解进程信号中的三大表格…

SpringBoot Aop进行身份验证

忘了好复制🤣 创建一个注解,可以应用于类或者方法上的,进行表示身份认证。 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface VerifyLogin { }定义一个没有登录的异常和全局异常处理器…

找样机素材,就上这5个网站,免费下载~

设计师经常需要用到各种样机模型来展示直接的作品,今天我就分享几个可以免费下载样机模型的网站,大家赶紧收藏起来! 菜鸟图库 https://www.sucai999.com/searchlist/3217.html?vNTYxMjky 菜鸟图库有多种类型的设计素材,像平面、…

fiddler过滤器

1、fiddler Fiddler是一个免费、强大、跨平台的HTTP抓包工具。下载地址 2、为什么适用过滤器 不适用过滤器时,所有的报文都会被抓包。 我们在开发或测试时,只需要抓包某个域名下的报文 ,以“www.baidu.com”为例,不设置过滤器&…

数据中台系列2:rabbitMQ 安装使用之 window 篇

RabbitMQ 是一个开源的消息队列系统,是高级消息队列协议(AMQP)的标准实现,用 erlang 语言开发。 因此安装 RabbitMQ 之前要先安装好 erlang。 1、安装 erlang 到 这里 下载本机能运行的最新版 erlang 安装包。如果本机没有装过 …

64核RISC-V服务器能打了吗?

作者:西风烈 最近看到“澎峰科技”的微信公众号,看到他们发布了第一款RISC-V服务器,芯片是算能的SG2042,带64个RISC-V核心(阿里平头哥的C910v核),2.0GHz主频,最大支持128GB内存。这…

【visual studio2019】如何打开即时窗口

在 Visual Studio2019 中打开即时窗口,有两种方法: 1、可以通过“调试”菜单,然后选择“窗口”下的“即时窗口”选项 2、直接使用快捷键“Ctrl Alt I” 此时即时窗口将显示在 Visual Studio2019 的底部。在即时窗口中,可以执…