8评分卡建模整体流程梳理

评分卡建模整体流程梳理

学习目标

  1. 掌握评分卡建模流程
  2. 使用Toad库构建评分卡

1 加载数据

import pandas as pd  
from sklearn.metrics import roc_auc_score,roc_curve,auc  
from sklearn.model_selection import train_test_split  
from sklearn.linear_model import LogisticRegression   
import numpy as np  
import math  
import xgboost as xgb  
import toad  
# 加载数据
data_all = pd.read_csv("scorecard.txt")  # 指定不参与训练列名  
ex_lis = ['uid', 'samp_type', 'bad_ind']  
# 参与训练列名  
ft_lis = list(data_all.columns)  
for i in ex_lis:      ft_lis.remove(i) # 开发样本、验证样本与时间外样本  
dev = data_all[(data_all['samp_type'] == 'dev')]
val = data_all[(data_all['samp_type'] == 'val') ]  
off = data_all[(data_all['samp_type'] == 'off') ]  

探索性数据分析,同时处理数值型和字符型

toad.detector.detect(data_all)

显示结果:

typesizemissinguniquemean_or_top1std_or_top2min_or_top31%_or_top410%_or_top550%_or_bottom575%_or_bottom490%_or_bottom399%_or_bottom2max_or_bottom1
bad_indfloat64958060.00%20.01876710.13570200000011
uidobject958060.00%95806Ab99_96002866062686144:0.00%A7511004:0.00%A10729014:0.00%A8502810:0.00%A594541:0.00%A8899777:0.00%A10150838:0.00%A3044048:0.00%A1888452:0.00%A7659794:0.00%
td_scorefloat64958060.00%958060.4997390.2883495.46966e-060.009613410.09970560.5007190.7479840.9000240.9900410.999999
jxl_scorefloat64958060.00%958060.4993380.288851.28155e-050.009946780.09910250.4997950.7486460.8997030.9893480.999985
mj_scorefloat64958060.00%958060.501640.2886796.92442e-060.01050760.1008820.5030480.7520320.8993080.9900470.999993
rh_scorefloat64958060.00%958060.4984070.2877975.00212e-060.009916320.09994830.4974660.7471880.8992860.9894730.999986
zzc_scorefloat64958060.00%958060.5006270.2890671.15778e-050.01018560.09901140.5016880.7509860.8999240.9900430.999998
zcx_scorefloat64958060.00%958060.4996720.2891379.97767e-060.01032490.09974290.499130.7506830.9019420.9897120.999987
person_infofloat64958060.00%7-0.0782290.156859-0.322581-0.322581-0.322581-0.05371760.0788530.0788530.0788530.078853
finance_infofloat64958060.00%350.03676250.03968660.02380950.02380950.02380950.02380950.02380950.07142860.2142861.02381
credit_infofloat64958060.00%1000.06362620.14309800000.060.180.81
act_infofloat64958060.00%740.2361970.1571320.07692310.07692310.07692310.2051280.3461540.4871790.6153851.08974
samp_typeobject958060.00%3dev:68.16%off:16.67%val:15.16%NoneNoneNoneNonedev:68.16%off:16.67%val:15.16%

2 特征筛选(缺失值,IV,相关系数)

使用缺失率、IV、相关系数进行特征筛选。但是考虑到后续建模过程要对变量进行分箱处理,该操作会使变量的IV变小,变量间的相关性变大,因此此处可以对IV和相关系的阈值限制适当放松,或不做限制

dev_slct1, drop_lst= toad.selection.select(dev, dev['bad_ind'], empty=0.7, iv=0.03, corr=0.7, return_drop=True, exclude=ex_lis) 
print("keep:", dev_slct1.shape[1],  "drop empty:", len(drop_lst['empty']), "drop iv:", len(drop_lst['iv']),  "drop corr:", len(drop_lst['corr']))

显示结果:

keep: 12 drop empty: 0 drop iv: 1 drop corr: 0

3 卡方分箱

# 得到切分节点  
combiner = toad.transform.Combiner()  
combiner.fit(dev_slct1, dev_slct1['bad_ind'], method='chi',min_samples=0.05, exclude=ex_lis)  
# 导出箱的节点  
bins = combiner.export()  
print(bins)

显示结果:

{'td_score': [0.7989831262724624], 'jxl_score': [0.4197048501965005], 'mj_score': [0.3615303943747963], 'zzc_score': [0.4469861520889339], 'zcx_score': [0.7007847486465795], 'person_info': [-0.2610139784946237, -0.1286774193548387, -0.05371756272401434, 0.013863440860215051, 0.06266021505376344, 0.07885304659498207], 'finance_info': [0.047619047619047616], 'credit_info': [0.02, 0.04, 0.11], 'act_info': [0.1153846153846154, 0.14102564102564102, 0.16666666666666666, 0.20512820512820512, 0.2692307692307692, 0.35897435897435903, 0.3974358974358974, 0.5256410256410257]}

4 Bivar图,调整分箱

画图观察每个变量在开发样本和时间外样本上的Bivar图,为方便阅读,这里只以单变量act_info做示范

# 根据节点实施分箱  
dev_slct2 = combiner.transform(dev_slct1)
val2 = combiner.transform(val[dev_slct1.columns])
off2 = combine

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

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

相关文章

云服务器上Redis数据库被攻击实录+总结

情景重现 Redis日志记录(异常部分): 36346:M 14 May 2024 15:46:12.505 # Possible SECURITY ATTACK detected. It looks like somebody is sending POST or Host: commands to Redis. This is likely due to an attacker attempting to us…

【JVM】阅读Class字节码:常量池

目录 基本结构解析 常量池 常量池简介 如何阅读Class文件中的常量池信息 基本结构解析 Magic(魔数) Magic的唯一作用是确定这个文件是否为一个能被虚拟机所接受的class 文件。魔数值固定为0xCAFEBABE,不会改变。 常量池 常量池简介 下图是反编译过后的字节码文…

Python可视化总结与案例解析

目录 第一章:Python可视化基础 1.1 环境搭建 1.2 数据可视化 1.3 统计图表 1.4 交互式可视化 1.5 实战案例:网站流量分析 1.6 总结 第二章:Python可视化高级应用 2.1 高级图表类型 2.2 动态可视化 2.3 数据可视化最佳实践 2.4 实战…

TensorFlow的学习

0.基础概念 术语表: https://developers.google.cn/machine-learning/glossary?hlzh-cn#logits 1.快速入门 https://tensorflow.google.cn/tutorials/quickstart/beginner?hlzh-cn 2.基于Keras进行图像分类 https://tensorflow.google.cn/tutorials/keras/cl…

gradle 共享存储挂载缓存目录的问题

2个任务同时构建的时候,报错如上。 原因:挂载目录的问题导致的,挂在最小粒度的目录下。 /home/app/.gradle/caches/modules-2/files-2.1 挂载到这个级别的目录下。

一文详解什么是手机在网时长API

手机在网时长API最近被讨论得越来越多,因为随着移动互联网的不断发展,越来越多的场景需要使用到用户的手机号,比如商品交易、客户服务、信息收发、网络即时通讯等。手机号码状态查询功能使用得越来越广泛,常见的有手机在网时长查询…

演员怎么上百度百科

百度百科是一个公正、开放、客观的平台,它为演员提供了一个展示自己过往经历和演艺生涯的平台。以下是百科优化网yajje总结的演员创建百度百科的一些步骤和注意事项: 创建演员百度百科的基本条件 人物影响力:演员创建百度百科需要满足官方的规…

振弦采集仪在岩土工程监测中的重要性及应用案例分享

振弦采集仪在岩土工程监测中的重要性及应用案例分享 岩土工程监测是为了确保土地和建筑物的稳定性以及确保施工安全而进行的一项重要工作。河北稳控科技振弦采集仪是岩土工程监测中一种常用的仪器设备,通过测量土体振动频率来评估土体的稳定性和强度变化&#xff0…

写个进度条

using UnityEngine; using UnityEngine.UI; [ExecuteAlways] public class 进度条控制器 : MonoBehaviour {public Image 母进度条; // 母进度条背景public Image 子进度条; // 子进度条[Range(0, 1)] public float 进度值; // 进度值public float 起点偏移量; // 从左侧开始的…

理解打包好的vue项目结构dist包

目录 linux查询dist目录整体解释子目录文件解释CSSFONTSJS linux查询dist目录 roothcss-ecs-7881:/www/java_project/dist# ls -l total 3004 drwxr-xr-x 2 root root 4096 Dec 31 10:15 css -rw-r--r-- 1 root root 4286 Dec 31 10:15 favicon.ico drwxr-xr-x 2 root r…

MySQL从主库恢复从库

主库备份数据,拷贝至从节点1.1 备份数据 sudo python /data/apps/xtrabackup/script/xtrabackup.py -m full 备份目录为: /data/mysql_bakcup/<port>/<date>/full_<date> 例:/data/mysql_backup/13306/20231124/full_164044/ 1.2 拷贝备份数据至从节点 sc…

霸道龙尊短视频:成都鼎茂宏升文化传媒公司

霸道龙尊短视频&#xff1a;龙族的传奇与现代的交融 在数字化时代的浪潮中&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;迅速占领了人们的碎片时间。成都鼎茂宏升文化传媒公司而在这些短视频中&#xff0c;一股独特的“霸道龙尊”风潮正在悄然兴起&#xff0c;…

C++ QT设计模式:原型模式

基本概念 原型模式是一种创建型设计模式&#xff0c;允许通过复制现有对象来创建新对象&#xff0c;而不是通过使用构造函数。 实现的模块有&#xff1a; Prototype&#xff08;原型&#xff09;&#xff1a; 定义一个抽象接口&#xff0c;规定了具体原型对象必须实现的方法。…

C语言经典例题-18

1.判断是不是字母 题目描述: KK想判断输入的字符是不是字母&#xff0c;请帮他编程实现。 输入描述: 多组输入&#xff0c;每一行输入一个字符。 输出描述: 针对每组输入&#xff0c;输出单独占一行&#xff0c;判断输入字符是否为字母&#xff0c;输出内容详见输出样例。 输…

Nginx配置文件conf解释

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Nginx(“engine x”…

VBA字典求和套路

Sub 字典求和套路()Dim i, j, arr, brr, keyDim sht As WorksheetSet sht Sheet1Application.Calculation xlManualDim dicSet dic CreateObject("scripting.dictionary")For i 3 To sht.Cells(Rows.Count, "A").End(xlUp).Rowkey sht.Cells(i, "…

基于springboot+vue+Mysql的在线答疑系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

RK集成apk到odm下

功能启用说明 配置和使用 source 之后输入命令get_build_varTARGET_DEVICE_DIR找到对应目标文件夹 &#xff08;比如device/rockchip/rk3126c/&#xff09; 在目标文件夹下有三个文件夹&#xff0c;分别为&#xff1a; 1&#xff0e;preinstall 安装不可卸载应用&#xff1…

服务攻防——应用协议软件,设备平台

向日葵利用 vnc利用5900端口 当为none就可以直接连接&#xff0c;而其他几种密码也能破解 可以使用hydna来尝试爆破 teamviewer(cve2020-13699) 让对方点击这个网站&#xff0c;就会 触发 zabbix 端口10051 cve2020 手工 点击这个 找到cookie 然后不需要密码就能进…

搭建Rust开发环境

Windows搭建 下载&#xff1a;https://www.rust-lang.org/zh-CN/tools/install Linux搭建 这里我更推荐基于Linux搭建。 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh等一会儿以后&#xff0c;会让你输入命令&#xff0c;这里输入1&#xff1a; 之后就…