离散型变量的 PSI-群体稳定性指标计算

文章目录

    • PSI-群体稳定性指标(离散型)
      • 单个指标计算
      • 所有指标计算

PSI-群体稳定性指标(离散型)

单个指标计算

  • 代码

    import pandas as pddf = pd.read_csv('/Users/mengzhichao/Desktop/文件/图表/小微企业用电量数据.csv')X_train = df.sample(n=7000)
    X_test = df.sample(n=3000)
    
  • 计算单个psi

    def psi_calculate_category(origin,new,feature_name):"""计算单个类别型变量的psiorigin为实际数据,new为预期数据Parameters----------------------------------------------------------------------:param               origin               DataFrame,实际数据:param               new                  DataFrame,预期数据:param               feature_name         string,需要计算PSI的字段(类别型)Returns----------------------------------------------------------------------psi:                  float,psi值psi_df:               DataFrame,psi详细Examples---------------------------------------------------------------------->>> psi,psi_df = psi_calculate_category(origin=X_train,new=X_test,feature_name='dimvl_name')"""origin_cut = origin[feature_name].value_counts(dropna=False).reset_index()origin_cut.columns = ['buckets','origin_cnt']origin_cut['feature'] = feature_nameorigin_cut = origin_cut[['feature','buckets','origin_cnt']]new_cut = new[feature_name].value_counts(dropna=False).reset_index()new_cut.columns = ['buckets','new_cnt']new_cut['feature'] = feature_namenew_cut = new_cut[['feature','buckets','new_cnt']]psi_df = pd.merge(origin_cut,new_cut,on=['feature','buckets'])# print(psi_df)# 计算占比,分子加1,防止计算PSI时分子为0(这里分母不可能为0)psi_df['origin_percent'] = (psi_df['origin_cnt'] + 1) / psi_df['origin_cnt'].sum()psi_df['new_percent']    = (psi_df['new_cnt'] + 1) / psi_df['new_cnt'].sum()psi_df['minus']          = psi_df.apply(lambda x: x['origin_percent']-x['new_percent'],axis=1)psi_df['log']            = psi_df.apply(lambda x: np.log(x['origin_percent']/x['new_percent']),axis=1)psi_df['psi_bucket']  = psi_df.apply(lambda x: x['minus'] * x['log'],axis=1)psi_df['psi']         = psi_df['psi_bucket'].sum() psi = psi_df['psi_bucket'].sum()return psi,psi_dfpsi,psi_df = psi,psi_df = psi_calculate_category(origin=X_train,new=X_test,feature_name='区域')
    

    20230309GV2nHj

    202303092lv0Yl

所有指标计算

  • 计算所有类别型:
## 所有的类别型特征列表
all_category_feature_list = df.select_dtypes(include='object').columns.tolist()psi_list = []
psi_df_list = []
for feature in notebook.tqdm(all_category_feature_list):psi,psi_df = psi_calculate_category(X_train,X_test,feature_name=feature)psi_list.append((feature,psi))psi_df_list.append(psi_df)psi = pd.DataFrame(psi_list,columns=['feature','psi'])
psi_df = pd.concat(psi_df_list,ignore_index=False)

20230309BnWV26

20230309xIhnzt


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

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

相关文章

STM32G474--Whetstone程序移植(单精度)笔记

1 准备基本工程代码 参考这篇笔记从我的仓库中选择合适的基本工程,进行程序移植。这里我用的是stm32g474的基本工程。 使用git clone一个指定文件或者目录 2 移植程序 2.1 修改Whetstone.c 主要修改原本变量定义的类型,以及函数接口全部更换为单精度…

【电机控制器】STC8H1K芯片——低功耗

【电机控制器】STC8H1K芯片——低功耗 文章目录 [TOC](文章目录) 前言一、芯片手册说明二、IDLE模式三、PD模式四、PD模式唤醒五、实验验证1.接线2.视频(待填) 六、参考资料总结 前言 使用工具: 1.STC仿真器烧录器 提示:以下是本…

Neo4j图数据库学习(二)——SpringBoot整合Neo4j

一. 前言 本文介绍如何通过SpringBoot整合Neo4j的方式,对图数据库进行简单的操作。 Neo4j和SpringBoot的知识不再赘述。关于Neo4j的基础知识,有兴趣可以看看作者上一篇的文章:Neo4j图数据库学习(一)——初识CQL 二. 前置准备 新建SpringBo…

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解) 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么?什么是k8s(Ku…

01_Machine Vision_LSI及傅立叶变换

outline 图像分解和线性时不变系统二维傅立叶变换图像采样 图像分解和线性时不变系统 图像数学表达 图像由基本的像素点组成,如果将每一个像素点看作一个脉冲,则每个像素点的值可以看作是脉冲的幅值,这样图像就可以看作是由一系列脉冲组成…

elasticsearch实战三 elasticsearch与mysql数据实时同步

一 介绍 elasticsearch数据不是一直不变的,需要与mysql、oracle等数据库的数据做同步。 本博客里涉及到的项目地址:https://www.aliyundrive.com/s/7bRWpTYsxWV 方案一: 同步调用,即操作mysql数据后,接着操作elastic…

智能化食品安全管理:AI视频监控在大型商场的技术方案

前言 在卖场中,尤其是熟食区,AI视频监控的应用对于食品安全至关重要。通过AI视频监控系统,卖场可以实时监测食品处理环节中的每一个细节,从员工的个人防护到清洁操作,再到区域管理,全面提升食品安全管理的…

分析模式应用――帐务模式02

Party 模式中的层次结构模型支持多种灵活的层次结构,但这里我们只要关心上下级的包含关系就可以了,参加结算的称为结算实体BalanceEntity, 不可再拆分的称为LeafEntity, 可以包含下级结算实体的称为CompositeEntity,因…

什么是网络安全

1) 什么是网络安全 作为程序员,主要是面向产品的安全的问题。比如sql注入,xss,csrf,cookie窃取等等,都值得我们去思考。保证网站运行正常,客户数据安全。 2) sql注入 简单的说,就是利用表单提…

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步,测试方法也在演变。企业需要紧跟新兴趋势,以提升软件质量、提高测试效率,并确保安全性,在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…

等级保护2.0|网络安全服务

等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护,对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…

Spatial Branching for Conic Non-Convexities in Optimal Electricity-Gas Flow

摘要—本文提出了一种基于几何的空间分支策略( spatial branching strategy),用于解决集成电力-燃气系统中的圆锥非凸方程( conic non-convex equations)。所提出的策略嵌入在空间分支定界算法中,以求解最优…

ChunkKV:优化 KV 缓存压缩,让 LLM 长文本推理更高效

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

IDEA编写SpringBoot项目时使用Lombok报错“找不到符号”的原因和解决

目录 概述|背景 报错解析 解决方法 IDEA配置解决 Pom配置插件解决 概述|背景 报错发生背景:在SpringBoot项目中引入Lombok依赖并使用后出现"找不到符号"的问题。 本文讨论在上述背景下发生的报错原因和解决办法,如果仅为了解决BUG不论原…

【Redis】redis 存储的列表如何分页和检索

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

基于SpringBoot的线上历史馆藏管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Redis持久化机制详解

为什么需要持久化 Redis通常被作为缓存使用,但是Redis一旦宕机,内存中的数据全部丢失,可能会导致数据库崩溃。如果是从数据库中恢复这些数据就会存在频繁访问数据库和读取速度慢的问题。所以redis实现数据的持久化,是至关重要的。…

代码随想录算法训练营day38

代码随想录算法训练营 —day38 文章目录 代码随想录算法训练营前言一、322. 零钱兑换二维dp数组 二、279.完全平方数二维dp数组 三、139. 单词拆分多重背包背包问题总结问题类型递推公式遍历顺序 前言 今天是算法营的第38天,希望自己能够坚持下来! 今日…

数据库高安全—审计追踪:传统审计统一审计

书接上文数据库高安全—角色权限:权限管理&权限检查,从权限管理和权限检查方面解读了高斯数据库的角色权限,本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…

【C++篇】 异常处理

目录 1,异常的概念及使用 1.1,异常的概念 1.2,异常的抛出和捕获 1.3,栈展开 1.4,异常的重新抛出 1.5,异常安全问题 1.6,异常规范 2,标准库中的异常 小结: 1&…