文章目录

  • 小心情
  • 前言
  • 将分箱后的评分转为小数
  • 踩坑点

小心情

平平无奇我真棒!!!

前言

toad包里的scorecard能自动将概率转为评分卡,想学习toad的童靴,可以参见:toad使用教程。

概率转评分卡,并将评分转到希望的区间内(比如[300,1000]),主要是调整scorecard内的以下4个参数:

  • base_odds
    基准好坏比
  • base_score
    基准分数:当基准好坏比取值为base_odds,基准得分设定的分数
  • rate
    设定的比base_odds好坏的倍数
  • pdo
    当比base_odds坏的倍数为rate时,基准评分降低pdo分。

将分箱后的评分转为小数

重点:scorecard支持评分卡card传入

step:

  1. 先用scorecard拟合一次评分卡
  2. 再将拟合出的评分卡四舍五入, 传入拟合的评分卡
  3. 对样本进行预测

step1:先用scorecard拟合一次评分卡

(combiner传入训练好的 toad.Combiner 对象,transer传入先前训练的 toad.WOETransformer 对象)

from toad.scorecard import ScoreCard
card = ScoreCard(combiner=combiner, transer=t, C=0.1, class_weight='balanced', base_score=600,base_odds=1,pdo=220,rate=2)
card.fit(x,y)
card1 = card.export(to_frame=True)

step2: 再将拟合出的评分卡四舍五入

# 自定义转card整数的函数,并包装成scordcard函数需要的字典格式
def dict_type(card1):card1.score=card1.score.round()card1.value.fillna('nan',inplace=True)namelist=list(set(card1.name))myvalue=[]for var in namelist:ind_loc=card1.name==varvalue_dict = dict(zip(card1.value.loc[ind_loc],card1.score.loc[ind_loc]))myvalue=myvalue+[value_dict]big_dict = dict(zip(namelist,myvalue))return big_dict# card2是四舍五入的新卡
card2 = dict_type(card1)# 重新拟合card
card = ScoreCard(combiner=combiner, transer=t,card = card2, C=0.1, class_weight='balanced', base_score=600,base_odds=1,pdo=220,rate=2)
# 将评分卡结果导出并保存
final_card = card.export(to_frame=True)
final_card.head()
final_card.to_csv('output//final_card.csv',index=None)

step3:对样本进行预测

final_score=pd.DataFrame(card.predict(data),index=data.index,columns=["score"])
final_score.to_excel("output//final_score.xlsx")
final_score.describe() #最终评分描述性统计预览# 我的final_score评分卡就变为整数了。score
count  52225.000000
mean     687.702020
std       99.094676
min      348.000000
25%      632.000000
50%      704.000000
75%      760.000000
max      988.000000

踩坑点

  1. scorecard()中的card只能用指定的dict形式,所以尝试了其他的to_dict()方法,以及to_json(),可能是学艺不精,所以没能成功将card2传到scorecard中,思索了一番还是自己手动转成它需要的dict形式。
  2. card1.value.fillna(‘nan’,inplace=True),这句是对比card.export()导出来的字典形式,和我初始没有这句代码的字典形式,发现card.export()对空值的分箱是"nan",而我的是nan,so调整了之后,才可以传到scorecard()中。

评分卡--toad--scorecard函数,调整评分以整数形式输出相关推荐

  1. 评分卡模型(一)评分卡建模实战

    评分卡模型(一)评分卡建模实战 小P:我看你做的这些数据挖掘,虽然预测结果挺准的,但是完全不知道怎么来的啊 小H:其实在风控领域有个很流行的评分卡模型,可以很直观的告诉你什么特征加分,什么特征减分,每 ...

  2. 评分卡上线后如何进行评分卡的监测

    有一段时间没来写博了,一直忙我司申请评分卡.催收评分卡的上线工作,那么我们的评分卡上线后,如何对评分卡的效果进行有效监测,监测哪些指标,监测的指标阈值达到多少我们需要对现有评分卡进行调整更新?这是我们 ...

  3. 标准评分卡分数计算原理_评分卡的形式、刻度及应用场景

     看到有伙伴提问: ①我们的评分卡做好后,后续的使用策略是什么呀,都有哪些方向? ②评分卡分数切割点如何定,制定的业务逻辑是什么? 其实,这个问题不好回答,也好回答. 一方面,不好回答是因为金融市场 ...

  4. 信用评分卡模型总结9:评分卡生成及sas实施

    1.标准评分卡的格式 标准评分卡采用的格式是评分卡中的每一个变量都遵循一系列IF-THEN法则.数据记录中每一个变量的值都适用此法则的结果决定了该特定变量所分配的分支,总分就是评分卡中所有变量的贡献的 ...

  5. 写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息。

    写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息. #include <stdio.h> int sushu(int m) { int i,n=0; for(i=2;i& ...

  6. R 语言快速构建信用评分卡模型---scorecard包

    前言 R 语言快速构建机器学习,基于某大佬的scorecard包. # github主页 - R版: http://github.com/shichenxie/scorecard # 加载[data. ...

  7. 评分卡模型建模详细步骤-评分卡建模实例之scorecardpy

    目录 0.引言 1.scorecardpy介绍 2.评分卡建模过程 2.1数据加载 2.1变量筛选 2.2数据划分 2.3变量分箱 2.3.1 自动分箱 2.3.2 手动调整分箱 2.4变量转化woe ...

  8. python评分卡建模_Python实现半自动评分卡建模(附代码)

    作者:Summer Memories 个人公众号:风控汪的数据分析之路 知乎专栏:小鑫的数据分析笔记 这次分享一个自己写的python脚本,可以实现半自动化的评分卡建模.运行脚本时需要input已经预 ...

  9. 【菜菜的sklearn课堂笔记】逻辑回归与评分卡-用逻辑回归制作评分卡-分箱

    视频作者:菜菜TsaiTsai 链接:[技术干货]菜菜的机器学习sklearn[全85集]Python进阶_哔哩哔哩_bilibili 分训练集和测试集 from sklearn.model_sele ...

最新文章

  1. C++11中auto的使用
  2. 系统开发小结【未完待续】
  3. Crash 的文明世界
  4. [转]HTTP/3 未来可期?
  5. thinking-in-java(13) String字符串
  6. springboot整合elasticsearch_Spring Boot学习10_整合Elasticsearch
  7. 08 Tomcat+Java Web项目的创建和War的生成
  8. JZOJ 3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll)
  9. 关于ftp的被动模式与IPTABLES策略
  10. poj2594 Treasure Exploration 二分匹配之最小路径覆盖+传递闭包
  11. SpringNet整合NHibernate相关配置
  12. chrome 历史版本和chrome webDriver历史版本
  13. REGEXP_REPLACE SQL正则表达式
  14. 不同尺寸SMA头介绍以及之间的区别
  15. 【coq】函数语言设计 笔记 07 - indProp
  16. ARM开发板使用GDB调试程序
  17. sklearn专题六:聚类算法K-Means
  18. 视频配音怎么配出好听的声音?试试这三个视频配音方法
  19. 为什么老派摄影师认为您只是个时髦的时髦
  20. Learning Saliency Propagation for Semi-Supervised Instance Segmentation

热门文章

  1. error: yaml: line 6: mapping values are not allowed in this context
  2. ESP32基于Arduino框架下U8g2驱动I2C OLED 时间显示
  3. ffplay 播放yuv视频
  4. 【蓝桥杯单片机组第八届省赛】— 基于单片机的电子钟程序设计与调试
  5. ffmpeg使用一:录屏保存为yuv420p
  6. 为什么说小度智能屏是下一代操作系统?
  7. idea 文件夹右键新建没有Class
  8. 【调剂】211西安电子科技大学网络与信息安全学院关于开放2020年非全日制硕士研究生调剂系统的通知...
  9. python:实现prefix conversions前缀转换算法(附完整源码)
  10. 【高效工具】Typora 使用保姆级教程 | 历史版本已被禁用