代码实现:

data_test_2 = {'gd':[1,1,1,1,1,1,0,0,0,0,0,0,0],'score':[1,2,0,2,2,7,4,5,4,0,4,18,np.nan]}
data_test_2 = pd.DataFrame(data_test_2) def ks_calc_cross(data,var_col,y_col):
'''
功能: 计算KS值,输出对应分割点和累计分布
输入值:-
输出值:
'ks': KS值,'crossdens': 好坏人累积概率分布以及其差值gap
'''
ks_df1 = pd.crosstab(data[var_col],data[y_col])
print(ks_df1)
print(ks_df1.cumsum(axis=0))
print(ks_df1.sum())
ks_df2 = ks_df1.cumsum(axis=0) / ks_df1.sum()
print(ks_df2)
ks_df2['gap'] = abs(ks_df2[0] - ks_df2[1])
ks = ks_df2['gap'].max()
return ks ks_value = ks_calc_cross(data_test_2, 'score', 'gd')
print(ks_value)
gd     0  1
score
0.0 1 1
1.0 0 1
2.0 0 3
4.0 3 0
5.0 1 0
7.0 0 1
18.0 1 0
gd 0 1
score
0.0 1 1
1.0 1 2
2.0 1 5
4.0 4 5
5.0 5 5
7.0 5 6
18.0 6 6
gd
0 6
1 6
dtype: int64
gd 0 1
score
0.0 0.166667 0.166667
1.0 0.166667 0.333333
2.0 0.166667 0.833333
4.0 0.666667 0.833333
5.0 0.833333 0.833333
7.0 0.833333 1.000000
18.0 1.000000 1.000000
0.666666666667 庖丁解牛:
import pandas as pd
import numpy as np data_test_2 = {'gd':[1,1,1,1,1,1,0,0,0,0,0,0,0],'score':[1,2,0,2,2,7,4,5,4,0,4,18,np.nan]}
data_test_2 = pd.DataFrame(data_test_2)
data_test_2

ks_df1 = pd.crosstab(data_test_2['score'],data_test_2['gd'])
ks_df1

ks_df1.cumsum(axis=0)

ks_df1.sum()

ks_df2 = ks_df1.cumsum(axis=0) / ks_df1.sum()
ks_df2

ks_df2['gap'] = abs(ks_df2[0] - ks_df2[1])
ks_df2

ks_df2['gap'].max()

最新文章

  1. .Net 大型分布式基础服务架构横向演变概述
  2. 不要着急改代码,先想想--centos 6.8下编译安装tmux
  3. Html --用简单的<hr>实现多样化分割效果
  4. atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
  5. [daily][network] NAT原理(转)
  6. BZOJ3307 雨天的尾巴
  7. 单选项框RadioGroup的综合应用
  8. Linux find example
  9. HDU 4283 You Are the One (12年天津 区间DP)
  10. photoshop mac版下载及破解
  11. CSS3 div水平、垂直居中,IE9以上、Firefox、Chrome均正常
  12. OCP读书笔记(20) - 复制数据库
  13. Tomcat目录下文件详解
  14. 配置python虚拟环境Virtualenv及pyenv
  15. CSDN博客投票活动开始了
  16. Servlet-生命周期简介
  17. C#泛型约束where T : class 解释
  18. C++ cout执行顺序
  19. Oracle PL/SQL游标
  20. 如何把EntityList转换成DataSet

热门文章

  1. loadrunner 场景设计-手工场景方案(Schedule)设计 Part 2
  2. 定位网页元素、透明度、z-index、包裹性和破坏性
  3. 英特尔® Open Image Denoise 库有助于节省时间,提高质量
  4. SpringBoot 和 SpringCloud 之间关系?
  5. 【嵌入式开发】树莓派h264实时视频监控
  6. 使用new关键字创建对象数组(C#,C++,Java)
  7. 基于XML配置Spring的自动装配
  8. Anaconda配置环境变量+创建虚拟环境+pycharm使用虚拟环境
  9. rust学习小记(1)
  10. tp5框架用foreach循环时候报Indirect modification of overloaded element of think\paginator\driver\Bootst错误