python 曲线分析_大数据分析之Python计算KS值并绘制KS曲线
本篇教程探讨了大数据分析之Python计算KS值并绘制KS曲线,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
python实现KS曲线,相关使用方法请参考上篇博客-R语言实现KS曲线
代码如下:####################### PlotKS ##########################def PlotKS(preds, labels, n, asc): # preds is score: asc=1 # preds is prob: asc=0 pred = preds # 预测值 bad = labels # 取1为bad, 0为good ksds = DataFrame({'bad': bad, 'pred': pred}) ksds['good'] = 1 - ksds.bad if asc == 1: ksds1 = ksds.sort_values(by=['pred', 'bad'], ascending=[True, True]) elif asc == 0: ksds1 = ksds.sort_values(by=['pred', 'bad'], ascending=[False, True]) ksds1.index = range(len(ksds1.pred)) ksds1['cumsum_good1'] = 1.0*ksds1.good.cumsum()/sum(ksds1.good) ksds1['cumsum_bad1'] = 1.0*ksds1.bad.cumsum()/sum(ksds1.bad) if asc == 1: ksds2 = ksds.sort_values(by=['pred', 'bad'], ascending=[True, False]) elif asc == 0: ksds2 = ksds.sort_values(by=['pred', 'bad'], ascending=[False, False]) ksds2.index = range(len(ksds2.pred)) ksds2['cumsum_good2'] = 1.0*ksds2.good.cumsum()/sum(ksds2.good) ksds2['cumsum_bad2'] = 1.0*ksds2.bad.cumsum()/sum(ksds2.bad) # ksds1 ksds2 -> average ksds = ksds1[['cumsum_good1', 'cumsum_bad1']] ksds['cumsum_good2'] = ksds2['cumsum_good2'] ksds['cumsum_bad2'] = ksds2['cumsum_bad2'] ksds['cumsum_good'] = (ksds['cumsum_good1'] + ksds['cumsum_good2'])/2 ksds['cumsum_bad'] = (ksds['cumsum_bad1'] + ksds['cumsum_bad2'])/2 # ks ksds['ks'] = ksds['cumsum_bad'] - ksds['cumsum_good'] ksds['tile0'] = range(1, len(ksds.ks) + 1) ksds['tile'] = 1.0*ksds['tile0']/len(ksds['tile0']) qe = list(np.arange(0, 1, 1.0/n)) qe.append(1) qe = qe[1:] ks_index = Series(ksds.index) ks_index = ks_index.quantile(q = qe) ks_index = np.ceil(ks_index).astype(int) ks_index = list(ks_index) ksds = ksds.loc[ks_index] ksds = ksds[['tile', 'cumsum_good', 'cumsum_bad', 'ks']] ksds0 = np.array([[0, 0, 0, 0]]) ksds = np.concatenate([ksds0, ksds], axis=0) ksds = DataFrame(ksds, columns=['tile', 'cumsum_good', 'cumsum_bad', 'ks']) ks_value = ksds.ks.max() ks_pop = ksds.tile[ksds.ks.idxmax()] print ('ks_value is ' + str(np.round(ks_value, 4)) + ' at pop = ' + str(np.round(ks_pop, 4))) # chart plt.plot(ksds.tile, ksds.cumsum_good, label='cum_good', color='blue', linestyle='-', linewidth=2) plt.plot(ksds.tile, ksds.cumsum_bad, label='cum_bad', color='red', linestyle='-', linewidth=2) plt.plot(ksds.tile, ksds.ks, label='ks', color='green', linestyle='-', linewidth=2) plt.axvline(ks_pop, color='gray', linestyle='--') plt.axhline(ks_value, color='green', linestyle='--') plt.axhline(ksds.loc[ksds.ks.idxmax(), 'cumsum_good'], color='blue', linestyle='--') plt.axhline(ksds.loc[ksds.ks.idxmax(),'cumsum_bad'], color='red', linestyle='--') plt.title('KS=%s ' %np.round(ks_value, 4) + 'at Pop=%s' %np.round(ks_pop, 4), fontsize=15) return ksds####################### over ##########################
本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!
python 曲线分析_大数据分析之Python计算KS值并绘制KS曲线相关推荐
- 知道python测试答案_大数据分析的python基础知道章节测试答案
大数据分析的python基础知道章节测试答案 更多相关问题 下列是内流湖的是[ ]A.青海湖 B.洪泽湖 C.洞庭湖 D.西湖 下列河流冬季有结冰现象的是[ ]A.松花江 B.黄河 C.珠江 D.长江 ...
- python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号
智慧树_大数据分析的python基础_搜题公众号 更多相关问题 社会公众可以查阅烟草专卖行政主管部门的监督检查记录.() 公民.法人或者其他组织不得利用自动售货机销售烟草制品.() 烟草广告中不得有下 ...
- python智慧树判断题_智慧树知到_大数据分析的python基础_判断题答案
智慧树知到_大数据分析的python基础_判断题答案 答案: 更多相关问题 强心苷中毒先兆症状A.一定次数的早搏B.窦性心律低于60次/minC.视色障碍D.房室传导阻滞E.室性心动 强心苷在临床上可 ...
- 使用python数据分析的研究意义_大数据分析语言Python的价值和意义
Python提供了大量用于处理大数据的库.就开发代码而言,您还可以比其他任何编程语言更快地使用Python处理大数据.这两个方面使世界各地的开发人员能够将Python视为大数据项目的首选语言.要获得有 ...
- 大数据python试卷_大数据分析的python基础-中国大学mooc-试题题目及答案
大数据分析的python基础-中国大学mooc-试题题目及答案 更多相关问题 [判断题] 只有当晶闸管同时承受正向阳极电压和正向门极电压时,晶闸管才可以导通. [判断题] 换流可以通过机械开关或电子开 ...
- python 投票计数器_大数据分析Python有哪些计数器类和概率质量函数
Python Counter类 大数据分析Python有哪些计数器类和概率质量函数,Python中的Counter类是collections模块的一部分.计数器提供了一种快速的方法来计算列表中存在的唯 ...
- python审计分析_【干货】Python自动化审计及实现
0x00 摘要 Python由于其简单,快速,库丰富的特点在国内使用的越来越广泛,但是一些不好的用法却带来了严重的安全问题,本文从Python源码入手,分析其语法树,跟踪数据流来判断是否存在注入点.0 ...
- ks 曲线_R语言计算KS值、绘制KS曲线
更多大数据分析.建模等内容请关注gongzhonghao<bigdatamodeling> 将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式:label ...
- R语言计算KS值、绘制KS曲线
更多大数据分析.建模等内容请关注gongzhonghao<bigdatamodeling> 将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式:label ...
最新文章
- 金立M2017续航出色不仅是因为电池大,还有超强快充
- c++ocx交互检测弹框_吉利几何C:2022杭州亚运会移动“明信片”!
- SQL Server 分区表的创建方法与管理
- CentOS6.x下配置sendmail发邮件
- Linux常用的25条命令
- Exynos4412 IIC 总线驱动开发相关问题总结
- 计算机基础知识与程序设计二,计算机基础与程序设计.doc
- 电子科大计算机学院毕业照,电子科大毕业照拍摄指南,请内部传阅!
- Linux安装Swift开发环境
- sRGB 和 Adobe RGB 有什么区别?
- Java冒泡,选择,插入排序算法
- WireMock.NET如何帮助进行.NET Core应用程序的集成测试
- Web前端现在薪资多少?企业喜欢什么样的Web前端工程师?
- 编程语言-初学者常见的几个问题
- (Demo3D 学习笔记)案例2:飞板传输货物,并按指定货位上架
- 微信动图表情包制作教程(ok时隔一年我来把它写完了)
- html chm 打不开,Win7系统中出现CHM打不开的具体解决方法
- FFmpeg转换ts为mp4
- 国外14部经典励志电影推荐
- Linux(Ubuntu)虚拟机识别U盘
热门文章
- html如何获得网址,已知一个网址,如何获得该网址对应的html源代码?在del 找人事管理软件...
- python querystring encode_Java UriUtils.encodeQueryParam方法代碼示例
- 陕西师范大学计算机科学学院公寓楼,陕西师范大学计算机科学学院简介
- php 头像拼图,php 有趣的头像拼图
- CTF(Pwn) Rop + ret2libc 题型 常规解法思路 (初级)
- Python中bytes和str区别详细介绍
- Python中按值来获取指定键的两种方法
- 2019 Python100道 面试 题,你会几道?
- C语言fseek()函数(whence)重新定位文件指针位置
- C++string类型与C语言字符数组的转换 std::string.c_str()函数