本篇教程探讨了大数据分析之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曲线相关推荐

  1. 知道python测试答案_大数据分析的python基础知道章节测试答案

    大数据分析的python基础知道章节测试答案 更多相关问题 下列是内流湖的是[ ]A.青海湖 B.洪泽湖 C.洞庭湖 D.西湖 下列河流冬季有结冰现象的是[ ]A.松花江 B.黄河 C.珠江 D.长江 ...

  2. python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号

    智慧树_大数据分析的python基础_搜题公众号 更多相关问题 社会公众可以查阅烟草专卖行政主管部门的监督检查记录.() 公民.法人或者其他组织不得利用自动售货机销售烟草制品.() 烟草广告中不得有下 ...

  3. python智慧树判断题_智慧树知到_大数据分析的python基础_判断题答案

    智慧树知到_大数据分析的python基础_判断题答案 答案: 更多相关问题 强心苷中毒先兆症状A.一定次数的早搏B.窦性心律低于60次/minC.视色障碍D.房室传导阻滞E.室性心动 强心苷在临床上可 ...

  4. 使用python数据分析的研究意义_大数据分析语言Python的价值和意义

    Python提供了大量用于处理大数据的库.就开发代码而言,您还可以比其他任何编程语言更快地使用Python处理大数据.这两个方面使世界各地的开发人员能够将Python视为大数据项目的首选语言.要获得有 ...

  5. 大数据python试卷_大数据分析的python基础-中国大学mooc-试题题目及答案

    大数据分析的python基础-中国大学mooc-试题题目及答案 更多相关问题 [判断题] 只有当晶闸管同时承受正向阳极电压和正向门极电压时,晶闸管才可以导通. [判断题] 换流可以通过机械开关或电子开 ...

  6. python 投票计数器_大数据分析Python有哪些计数器类和概率质量函数

    Python Counter类 大数据分析Python有哪些计数器类和概率质量函数,Python中的Counter类是collections模块的一部分.计数器提供了一种快速的方法来计算列表中存在的唯 ...

  7. python审计分析_【干货】Python自动化审计及实现

    0x00 摘要 Python由于其简单,快速,库丰富的特点在国内使用的越来越广泛,但是一些不好的用法却带来了严重的安全问题,本文从Python源码入手,分析其语法树,跟踪数据流来判断是否存在注入点.0 ...

  8. ks 曲线_R语言计算KS值、绘制KS曲线

    更多大数据分析.建模等内容请关注gongzhonghao<bigdatamodeling> 将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式:label ...

  9. R语言计算KS值、绘制KS曲线

    更多大数据分析.建模等内容请关注gongzhonghao<bigdatamodeling> 将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式:label ...

最新文章

  1. 金立M2017续航出色不仅是因为电池大,还有超强快充
  2. c++ocx交互检测弹框_吉利几何C:2022杭州亚运会移动“明信片”!
  3. SQL Server 分区表的创建方法与管理
  4. CentOS6.x下配置sendmail发邮件
  5. Linux常用的25条命令
  6. Exynos4412 IIC 总线驱动开发相关问题总结
  7. 计算机基础知识与程序设计二,计算机基础与程序设计.doc
  8. 电子科大计算机学院毕业照,电子科大毕业照拍摄指南,请内部传阅!
  9. Linux安装Swift开发环境
  10. sRGB 和 Adobe RGB 有什么区别?
  11. Java冒泡,选择,插入排序算法
  12. WireMock.NET如何帮助进行.NET Core应用程序的集成测试
  13. Web前端现在薪资多少?企业喜欢什么样的Web前端工程师?
  14. 编程语言-初学者常见的几个问题
  15. (Demo3D 学习笔记)案例2:飞板传输货物,并按指定货位上架
  16. 微信动图表情包制作教程(ok时隔一年我来把它写完了)
  17. html chm 打不开,Win7系统中出现CHM打不开的具体解决方法
  18. FFmpeg转换ts为mp4
  19. 国外14部经典励志电影推荐
  20. Linux(Ubuntu)虚拟机识别U盘

热门文章

  1. html如何获得网址,已知一个网址,如何获得该网址对应的html源代码?在del 找人事管理软件...
  2. python querystring encode_Java UriUtils.encodeQueryParam方法代碼示例
  3. 陕西师范大学计算机科学学院公寓楼,陕西师范大学计算机科学学院简介
  4. php 头像拼图,php 有趣的头像拼图
  5. CTF(Pwn) Rop + ret2libc 题型 常规解法思路 (初级)
  6. Python中bytes和str区别详细介绍
  7. Python中按值来获取指定键的两种方法
  8. 2019 Python100道 面试 题,你会几道?
  9. C语言fseek()函数(whence)重新定位文件指针位置
  10. C++string类型与C语言字符数组的转换 std::string.c_str()函数