【Python常用函数】一文让你彻底掌握Python中的toad.selection.select函数

news2024/11/24 22:27:30

任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的toad.selection.select函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

文章目录

    • 一、安装toad包
    • 二、select函数定义
    • 三、select函数实例
      • 1 导入库并加载数据
      • 2 实例

  

一、安装toad包

  
quality是toad库下的函数,调用需先要安装toad包。打开cmd,安装语句如下:

pip install toad

若安装成功,会显示结果如下:
  
在这里插入图片描述

  
  

二、select函数定义

  
select函数的功能是根据变量的缺失情况、IV值、相关性初步筛选出能入模的变量。其中缺失情况是指变量缺失值的个数或缺失率,IV的定义可参考风控建模中的IV和WOE一文,相关性是指变量两两之间的相关程度。其基本调用语法如下:

import toad

toad.selection.select(frame, target='target', empty=0.9, iv=0.02, corr=0.7, return_drop=False, exclude=None)

frame:数据集。
  
target:目标列或因变量列。
  
empty:缺失值个数超过该阈值时删除变量,若值小于1,则变量缺失率高于该阈值时删除变量。
  
iv:删除iv低于该阈值的变量。
  
corr:当两个变量相关性高于该阈值时,删除iv低的变量。
  
return_drop:布尔值,是否返回删除变量的列名,默认False。
  
exclude:指定不被删除的列名。

  
  

三、select函数实例

  

1 导入库并加载数据

  
背景:现需分析7252个客户的多头、关联风险、法院执行、风险名单和逾期信息,用于构建客户的贷前评分卡A卡。在进行评分卡搭建之前需要对客户的信息进行筛选,挑选出和客户逾期信息相关性高的变量。
  
首先读取数据,具体代码如下:

#[1]读取数据
import os
import toad
import numpy as np
import pandas as pd

os.chdir(r'F:\公众号\70.数据分析报告')
date = pd.read_csv('testtdmodel1.csv', encoding='gbk')
date.head(3)
os.chdir:设置数据存放的文件路径。

pd.read_csv:读取数据。

得到结果:
  
在这里插入图片描述

  
  

2 实例

  
为了弄清楚数据框中有哪些列,我们先运行如下代码:

list(date.columns)

得到结果:

['input_time',
 '申请状态',
 '历史最高逾期天数.x',
 '原始分',
 '历史最高逾期天数.y',
 'y',
 'Ratio',
 '7天内申请人在多个平台申请借款',
 '1个月内申请人在多个平台申请借款',
 '3个月内申请人在多个平台申请借款',
 '7天内借款人手机申请借款平台数',
 '1个月内借款人手机申请借款平台数',
 '3个月内借款人手机申请借款平台数',
 '7天内借款人身份证申请借款平台数',
 '1个月内借款人身份证申请借款平台数',
 '3个月内借款人身份证申请借款平台数',
 '7天内关联P2P网贷平台数',
 '1个月内关联P2P网贷平台数',
 '3个月内关联P2P网贷平台数',
 '7天内申请人关联融资租赁平台数',
 '1个月内申请人关联融资租赁平台数',
 '3个月手机号关联身份证数',
 '1个月内申请人关联一般消费分期平台数',
 '3个月内申请人关联一般消费分期平台数',
 '风险名单占比',
 '一度关联节点个数',
 '二度关联节点个数',
 '一度风险名单个数',
 '二度风险名单个数',
 '一度风险名单占比',
 '二度风险名单占比',
 'X3个月内申请人手机号作为第二联系人手机号出现的次数',
 'X3个月内申请人手机号作为前三联系人手机号出现的次数',
 '是否命中法院执行模糊名单',
 '是否命中法院结案模糊名单',
 '是否命中手机风险关注名单',
 '是否命中身份证风险关注名单',
 '命中中风险关注名单笔数',
 '客户异常借款笔数',
 '信用异常笔数',
 '执行标的',
 '申请人执行标的是否超过100000',
 '3个月内申请人关联融资租赁平台数',
 '3个月身份证关联手机号数',
 '三个月银行相关平台数']

看下原始数据的行列情况,代码如下:

date.shape

得到结果:

(7252, 45)

说明这是一个7252行45列的数据框,接着删除数据框中无用列,只保留自变量和因变量,代码如下:

drop_columns = ['input_time', '申请状态', '历史最高逾期天数.x', '历史最高逾期天数.y'] # 去掉多余列,只保留自变量和因变量
date_f = date.drop(columns=drop_columns)
date_f.shape

得到结果:

(7252, 41)

最后调用函数删除空值率高于0.7,iv低于0.05的变量,且当两个变量相关性高于0.7时删除iv低的变量,代码如下:

selected_data, drop_lst= toad.selection.select(date_f,target = 'y', empty = 0.7, iv = 0.05, corr = 0.7, return_drop=True)
display(selected_test)
drop_lst

得到结果1:
在这里插入图片描述
  
得到结果2:
  

{'empty': array([], dtype=float64),
 'iv': array(['X3个月内申请人手机号作为前三联系人手机号出现的次数', '是否命中法院结案模糊名单', '申请人执行标的是否超过100000'],
       dtype=object),
 'corr': array(['1个月内借款人身份证申请借款平台数', '3个月内申请人在多个平台申请借款', '1个月内借款人手机申请借款平台数',
        '3个月内借款人手机申请借款平台数', '7天内申请人关联融资租赁平台数', '3个月内借款人身份证申请借款平台数',
        '3个月内关联P2P网贷平台数', '1个月内申请人关联一般消费分期平台数', '7天内借款人手机申请借款平台数',
        '一度风险名单个数', '是否命中手机风险关注名单', '7天内申请人在多个平台申请借款', '1个月内关联P2P网贷平台数'],
       dtype=object)}

  
从结果1知,原始变量41个,经过筛选后剩下25个变量。从结果2知,没有变量因为缺失率高于0.7而删除,因为iv低于0.05而删除的变量有3个,因为相关性高于0.7而删除的低iv变量13个。
  
如果把return_drop=True的值改成False,则不会返回drop_lst的值,这个可以根据需要进行设置。为了验证删除iv低于0.05的变量是否真的为3个,可以运行如下代码:
  

toad.quality(date_f,'y',iv_only=True).tail(15)

得到结果:
  
在这里插入图片描述
  
可以发现iv低于0.05的变量确实是3个,不过需要注意的是,这里的iv是toad中自带函数计算的,如果有不同的划分方式,iv值会不同。
  
至此,Python中的select函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。

  
【限时免费进群】 在群内免费讨论学习Python、玩转Python、风控建模、人工智能学习、数据分析等内容,也可交流工作中遇到的相关问题。需要的朋友添加微信号19967879837,加时备注想进的群,比如学习Python。
  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

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

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

相关文章

Grounding dino + segment anything + stable diffusion 实现图片编辑

目录 总体介绍总体流程 模块介绍目标检测: grounding dino目标分割:Segment Anything Model (SAM)整体思路模型结构:数据引擎 图片绘制 集成样例 其他问题附录 总体介绍 总体流程 本方案用到了三个步骤,按顺序依次为&#xff1a…

YOLOv5入门实践(2)— 手把手教你使用make sense标注数据集(附工具地址+使用教程)

前言:Hello大家好,我是小哥谈。鉴于labelimg图像标注软件安装起来比较麻烦,本节课再给大家介绍另外一款数据集标注工具。这是一款在线标注数据集的工具,用起来非常的方便。🌈 前期回顾: YOLOv5入门实践&…

当执行MOV [0001H] 01H指令时,CPU都做了什么?

今天和几位单位大佬聊天时,讨论到一个非常有趣的问题-当程序执行MOV [0001H], 01H计算机实际上都做了哪些工作?乍一看这个问题平平无奇,CPU只是把立即数01H放在了地址为0001的内存里,但仔细想想这个问题远没有那么简单&#xff0c…

SystemVerilog之覆盖率详解

文章目录 1.0 覆盖率前言1.1 覆盖率类型1.2 覆盖策略及覆盖组1.3 覆盖率数据采样1.3.1 bin的创建与使用1.3.2 条件覆盖率1.3.3 翻转覆盖率1.3.4 wildcard覆盖率1.3.5 忽略bin与非法bin 1.4 交叉覆盖率1.4.1 排除部分cross bin1.4.2 精细化交叉覆盖率1.4.3 单个实例的覆盖率1.4.…

定量分析计算51单片机复位电路工作原理 怎么计算单片机复位电容和电阻大小

下面画出等效电路图 可以知道单片机内必然有一个电阻RX,为了简化分析,我们假设他是线性电阻(不带电容,电感的支路) 还有一个基础知识: 电容器的充电放电曲线: 还需要知道电容电压的变化是连续…

【简单认识zookeeper+kafka分布式消息队列集群的部署】

文章目录 一、zookeeper1、定义2、工作机制3、Zookeeper 特点4、Zookeeper 数据结构5、Zookeeper 应用场景6、Zookeeper 选举机制(1)第一次启动选举机制(2)非第一次启动选举机制 7、部署zookeeper群集 二、消息队列概述1、为什么需…

《线性调频雷达典型有源干扰抑制技术研究》阅读记录

文章目录 《线性调频雷达典型有源干扰抑制技术研究》 阅读记录(1)研究背景与意义:(2)有源压制干扰(3)有源欺骗式干扰(4)压制干扰的抑制(5)欺骗干扰…

面试热题(全排列)

给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在这里说明一下排列和组合的区别? 组合:是指从一…

[gdc]Rendering ‘God of War Ragnark‘

gdc23, sony santa monica关于god of war的分享; back ground 作者stephen mcauley现在是santa monica的technical director;20年加入santa monica,作为rendering lead,有9年的经验,之前在ubisoft montre…

[鹤城杯 2021]Middle magic 解题思路过程

过程 打开题目&#xff0c;是一道PHP的代码审计。代码如下&#xff1a; <?php highlight_file(__FILE__); include "./flag.php"; include "./result.php"; if(isset($_GET[aaa]) && strlen($_GET[aaa]) < 20){$aaa preg_replace(/^(.*)…

河道水位自动监测预警 yolov5

河道水位自动监测预警系统基于yolov5网络模型AI视频智能水尺读数技术&#xff0c;河道水位自动监测预警系统通过在河道周边布设监控摄像头&#xff0c;实时监测水位的变化&#xff0c;一旦水位超过预设阈值&#xff0c;将自动发出预警信号&#xff0c;并提示相关人员采取相应的…

计算机网络-物理层(一)物理层的概念与传输媒体

计算机网络-物理层&#xff08;一&#xff09;物理层的概念与传输媒体 物理层相关概念 物理层的作用用来解决在各种传输媒体上传输比特0和1的问题&#xff0c;进而为数据链路层提供透明(看不见)传输比特流的服务物理层为数据链路层屏蔽了各种传输媒体的差异&#xff0c;使数据…

Java 基础知识点

Object 类相关方法 getClass 获取当前运行时对象的 Class 对象。 hashCode 返回对象的 hash 码。 clone 拷贝当前对象&#xff0c; 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝&#xff0c;对引用类型拷贝引用&#xff1b;深拷贝对基本类型进行值拷贝&#xff0c;对…

CentOS7.7.1908升级python3版本

介绍 本文将详细介绍在CentOS7.7.1908系统的服务器将自带的python版本升级到3.8.0版本的过程。 在升级前CentOS7.7.1908中已经存在旧python版本。 查看CentOS版本命令&#xff1a; cat /etc/centos-release升级前后的python版本&#xff08;python3升级前为3.6.8&#xff09…

开箱报告,Simulink Toolbox库模块使用指南(三)——Simscape 电路仿真模块

文章目录 前言 Simscape 电路仿真模块 模型搭建 仿真求解 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;一&#xff09;——powergui模块》 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;二&#xf…

grafana中利用变量来添加dashboard详情页地址实现点击跳转

背景 最近弄grafana的dashboard,突然想到各个dashboard之前可以直接跳转到不同详细页面的面板,于是找了找实现方法 实现 以stat 格式的面板为例,显示出各个pod的对应状态, PromQL是(avg(kube_pod_status_phase{phase"Running", namespace!"kube-system"…

用友U8+CRM 任意文件上传+读取漏洞复现(HW0day)

0x01 产品简介 用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件&#xff0c;旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。 0x02 漏洞概述 用友 U8 CRM客户关系管理系统 getemaildata.php 文件存在任意文件上传和任意文件读取漏洞&#xff0c;攻击…

缓存 基础

在项目里面缓存是怎么用的? 项目中缓存是如何使用的&#xff1f;为什么要用缓存&#xff1f;缓存使用不当会造成什么后果? 这个问题&#xff0c;互联网公司必问&#xff0c;要是一个人连缓存都不太清楚&#xff0c;那确实比较尴尬。 只要问到缓存&#xff0c;上来第一个问题…

大数据课程I4——Kafka的零拷贝技术

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握Kafka的零拷贝技术&#xff1b; ⚪ 了解常规的文件传输过程&#xff1b; 一、常规的网络传输原理 表面上一个很简单的网络文件输出的过程&#xff0c;在OS底层&…

leetcode 力扣刷题 滑动窗口 部分题解(记录)

力扣刷题 滑动窗口相关的部分题解 209. 长度最小的子数组904. 水果成篮76. 最小覆盖子串 209. 长度最小的子数组 leetcode题目链接 209.长度最小的子数组 题目内容是这样的&#xff1a;给定一个含有 n个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的…