= KS 曲线及 KS 值
== KS 曲线及 KS 值解读

image::chapter-sc/ks/ks.png[]

=== KS 曲线坐标轴

* X轴（模型预测得分）: 模型预测得分小于等于某个分数
* Y轴（正常/违约客户占总正常/违约客户百分比）: 模型预测得分小于等于某个分数的情况下，分别统计占比

在 KS 曲线中包含两条曲线：

* 正常客户KS曲线：模型预测得分小于等于某个分数时，正常的客户占所有正常客户的百分比
* 违约客户KS曲线：模型预测得分小于等于某个分数时，违约的客户占所有违约客户的百分比

=== KS 曲线绘制

=== KS 值
直观的讲，就是两条 KS 曲线相距最远的线段的长度，即上图中红色的线段的长度。

== KS 曲线及 KS 值系统实现

[#KS_KPI]
=== KS 指标表
对每个需要验证的模型根据模型预测评分分别对 <<MV_GENERAL_SAMPLE>> 进行样本个数统计。

. KS 指标表: MV_SC_KS_KPI
|===
|模型标识 | 模型名称 | 评分截断点(X) | 评分小于等于截断点事实正常的客户个数 | 事实正常的总客户个数 | 评分小于等于截断点事实违约客户个数 | 事实违约的总客户个数 | 正常客户占比(Y1) | 违约客户占比(Y2)
|        |        | 小于等于      | N                              | TN                | D                            | TD                | N/TN           | D/TD
|M1      | 模型1   | 0           | 0                               | 90               | 0                            | 10                | 0              | 0
|...     | ...    | ...          | ...                            | ...               | ...                         | ...                | ...            | ...
|M1      | 模型1   | 50           | 3                              | 90               | 3                            | 10                | 0.033           | 0.3
|...     | ...    | ...          | ...                            | ...               | ...                         | ...                | ...             | ...
|M1      | 模型1   | 100          | 90                             | 90               | 10                           | 10                 | 1              | 1
|===

上表中每一行代表某个模型的一个截断点下的正常客户占比和违约客户占比。其字段意义说明如下：
|===
|字段中文名称                     | 字段名称                   | 字段类型           | 字段约束 | 备注
|模型标识                         | FD_MODEL_ID              | varchar(32)       | 不能为空 | 
|模型名称                         | FD_MODEL_NAME            | varchar(100)      | 不能为空 | 
|平分率截断点(X)                   | FD_SCORE_CUT_OFF_POINT   | 整数              | 不能为空 | 对平分进行平分,代表在小于等于截断点时的数据
|评分小于等于截断点事实正常的客户个数  | FD_N                     | 整数               | 不能为空 | 
|事实正常的总客户个数               | FD_TN                    | 整数               | 不能为空 | 
|评分小于等于截断点事实违约客户个数    | FD_D                     | 整数              | 不能为空 | 
|事实违约的总客户个数               | FD_TD                     | 整数              | 不能为空 | 
|正常客户占比(Y1)                  | FD_Y1                     | 小数（精度 6）     | 不能为空 | FD_Y1=FD_N/FD_TN
|违约客户占比(Y2)                  | FD_Y2                     | 小数（精度 6）     | 不能为空 | FD_Y2=FD_D/FD_TD
|===
			
=== KS 曲线绘制

* 通过 <<KS_KPI>> 中的 X 和 Y1 值 绘制并连接各个点形成正常客户的 KS 曲线。
* 通过 <<KS_KPI>> 中的 X 和 Y2 值 绘制并连接各个点形成违约客户的 KS 曲线。
* 将两条曲线绘制在同一张坐标系中

=== KS 值计算
max(Y1-Y2)
