代码实现:

  1. 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]}
  2. data_test_2 = pd.DataFrame(data_test_2)
  3.  
  4. def ks_calc_cross(data,var_col,y_col):
  5. '''
  6. 功能: 计算KS值,输出对应分割点和累计分布
  7. 输入值:-
  8. 输出值:
  9. 'ks': KS值,'crossdens': 好坏人累积概率分布以及其差值gap
  10. '''
  11. ks_df1 = pd.crosstab(data[var_col],data[y_col])
  12. print(ks_df1)
  13. print(ks_df1.cumsum(axis=0))
  14. print(ks_df1.sum())
  15. ks_df2 = ks_df1.cumsum(axis=0) / ks_df1.sum()
  16. print(ks_df2)
  17. ks_df2['gap'] = abs(ks_df2[0] - ks_df2[1])
  18. ks = ks_df2['gap'].max()
  19. return ks
  20.  
  21. ks_value = ks_calc_cross(data_test_2, 'score', 'gd')
  22. print(ks_value)
  1. gd 0 1
  2. score
  3. 0.0 1 1
  4. 1.0 0 1
  5. 2.0 0 3
  6. 4.0 3 0
  7. 5.0 1 0
  8. 7.0 0 1
  9. 18.0 1 0
  10. gd 0 1
  11. score
  12. 0.0 1 1
  13. 1.0 1 2
  14. 2.0 1 5
  15. 4.0 4 5
  16. 5.0 5 5
  17. 7.0 5 6
  18. 18.0 6 6
  19. gd
  20. 0 6
  21. 1 6
  22. dtype: int64
  23. gd 0 1
  24. score
  25. 0.0 0.166667 0.166667
  26. 1.0 0.166667 0.333333
  27. 2.0 0.166667 0.833333
  28. 4.0 0.666667 0.833333
  29. 5.0 0.833333 0.833333
  30. 7.0 0.833333 1.000000
  31. 18.0 1.000000 1.000000
  32. 0.666666666667
  33.  
  34. 庖丁解牛:
  1. import pandas as pd
  2. import numpy as np
  3.  
  4. 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]}
  5. data_test_2 = pd.DataFrame(data_test_2)
  6. data_test_2

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

  1. ks_df1.cumsum(axis=0)

  1. ks_df1.sum()

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

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

  1. ks_df2['gap'].max()

ks代码助解的更多相关文章

  1. BM算法  Boyer-Moore高质量实现代码详解与算法详解

    Boyer-Moore高质量实现代码详解与算法详解 鉴于我见到对算法本身分析非常透彻的文章以及实现的非常精巧的文章,所以就转载了,本文的贡献在于将两者结合起来,方便大家了解代码实现! 算法详解转自:h ...

  2. ASP.NET MVC 5 学习教程:生成的代码详解

    原文 ASP.NET MVC 5 学习教程:生成的代码详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...

  3. Github-karpathy/char-rnn代码详解

    Github-karpathy/char-rnn代码详解 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2016-1-10 ...

  4. 代码详解:TensorFlow Core带你探索深度神经网络“黑匣子”

    来源商业新知网,原标题:代码详解:TensorFlow Core带你探索深度神经网络“黑匣子” 想学TensorFlow?先从低阶API开始吧~某种程度而言,它能够帮助我们更好地理解Tensorflo ...

  5. JAVA类与类之间的全部关系简述+代码详解

    本文转自: https://blog.csdn.net/wq6ylg08/article/details/81092056类和类之间关系包括了 is a,has a, use a三种关系(1)is a ...

  6. Java中String的intern方法,javap&cfr.jar反编译,javap反编译后二进制指令代码详解,Java8常量池的位置

    一个例子 public class TestString{ public static void main(String[] args){ String a = "a"; Stri ...

  7. Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测

    Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测 2017年12月13日 17:39:11 机器之心V 阅读数:5931   近日,Artur Suilin 等人发布了 Kaggl ...

  8. 基础 | batchnorm原理及代码详解

    https://blog.csdn.net/qq_25737169/article/details/79048516 https://www.cnblogs.com/bonelee/p/8528722 ...

  9. 非极大值抑制(NMS,Non-Maximum Suppression)的原理与代码详解

    1.NMS的原理 NMS(Non-Maximum Suppression)算法本质是搜索局部极大值,抑制非极大值元素.NMS就是需要根据score矩阵和region的坐标信息,从中找到置信度比较高的b ...

随机推荐

  1. [转] margin负值的探讨

    原文:  margin负值-权威指南 [http://www.csswang.com/exp/cssexp/3863.html] static元素是没有设定成浮动的元素,下图说明了负margin对st ...

  2. java:LeakFilling(面向对象)

    1.类的修饰符只能是:public,默认的.另外:final  ,abstract,(修饰符 (只有:public, 默认,)interface+类名 ). 2.在main函数中创建对象时,new哪个 ...

  3. 自己实现一个list比较器 实现Comparator()接口

    一:一个实体类 成员变量有名字,年龄,分数 )))))); List<User> list = new ArrayList<>(); list.add(user1); list ...

  4. java课堂疑问解答与思考2

    问题一 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 答:Xn+1=(7^5*Xn)mod(2^31-1) 程序源码: import java.util.Random; imp ...

  5. SVM的推导和理解

    主要记录了SVM思想的理解,关键环节的推导过程,主要是作为准备面试的需要. 1.准备知识-点到直线距离 点\(x_0\)到超平面(直线)\(w^Tx+b=0\)的距离,可通过如下公式计算: \[ d ...

  6. python关键字以及含义,用法

    Python常用的关键字   1.and , or and , or 为逻辑关系用语,Python具有短路逻辑,False and 返回 False 不执行后面的语句, True or 直接返回Tru ...

  7. python 并发编程 多线程 信号量

    一 信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行 如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群 ...

  8. CDH的ntp时间同步

    云服务器: ntpq -p ntpdate -u 10.52.255.1  #手动同步 自建NTP服务器: https://www.cnblogs.com/yinzhengjie/p/9480665. ...

  9. CAS导致的ABA问题及解决:时间戳原子引用AtomicReference、AtomicStampedReference

    1.CAS导致ABA问题: CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并交换,那么在这个时间差中会导致数据的变化. 比如:线程1从内存位置V中取出A,这时线程2也从V中取出A ...

  10. Windown Server 2008配置tomcat9虚拟路径

    一.用途 用于保存项目运产生的文件 二.步骤 1.修改conf\下的web.xml <!-- 找到listings将false改为true -->        <init-para ...