工作中用到的模型诊断指数

来源:互联网 发布:泰拉瑞亚数据如何恢复 编辑:程序博客网 时间:2024/04/28 21:06

1. 一般统计量

均值、方差、最小值、最大值、1%分位数、5%分位数、 10%分位数、25%分位数、 50%分位数、75%分位数、90%分位数、 95%分位数、 99%分位数。

一般要将数据排序后才能求得分位数。


1.1  对每个Model(SEG_A、SEG_B、SEG_C、ALL),计算score向量的统计量

1.2  对SEG_A、SEG_B、SEG_C、ALL,计算每signal向量的统计量


2. Pearson相关系数

其公式为:


其中:

0.8-1.0     极强相关
0.6-0.8     强相关
0.4-0.6     中等程度相关
0.2-0.4     弱相关
0.0-0.2     极弱相关或无相关

 
2.1  对每个Model(只有SEG_A),计算signal与tag的相关系数。

2.2  SEG_A、SEG_B、SEG_C、ALL,计算每两个signal向量之间的相关系数。


3.PSI

 PSI(Population Stability Index)是衡量模型的预测值实际值偏差大小的指标。PSI 小于 0.25 意味偏差在可以接受的范围里。



3.1 对每个Model(SEG_A、SEG_B、SEG_C),计算score向量的PSI

(1).  将基准score划分为10个区间,将预测score按照相同的边界值划分为10个区间
(2).  分别统计各个分区基准score的个数C1、预测score的个数C2
(3).  分别统计各个分区基准score的个数比例p1、预测score的个数比例p2
(4).  计算 PSI = sum ( ( p1[i] - p2[i]  ) / ( log p1[i] -   log p2[i] ) )


3.2 SEG_A、SEG_B、SEG_C、ALL,计算Signal的PSI

(1).  将基准signal划分为10个区间,将预测signal按照相同的边界值划分为10个区间
(2).  分别统计各个分区基准score的个数C1、预测score的个数C2
(3).  分别统计各个分区基准score的个数比例p1、预测score的个数比例p2
(4).  计算 PSI = sum ( ( p1[i] - p2[i]  ) / ( log p1[i] -   log p2[i] ) )


4.VIF

方差膨胀因子(Variance Inflation Factor,VIF):容忍度的倒数,VIF越大,显示共线性越严重。经验判断方法表明:当0<VIF<10,不存在多重共线性;当10≤VIF<100,存在较强的多重共线性;当VIF≥100,存在严重多重共线性。

计算方法:  对自变量作中心标准化,则X'X 为自变量的相关阵,定义


则矩阵C的主对角线元素 VIF(i) 为自变量X(i) 的方差扩大因子VIF。 若X(i) 与其余自变量的复决定系数为R(i)^2,VIF  与 复决定系数关系为:


4.1 对每个Model的SEG_A、SEG_B、SEG_C、ALL,计算每个signal的VIF:

(1). Signal的全矩阵为X

(2). 从X取得一列signal y,从X中删除y得X'

(3). 对X',y作线性回归建模,得到模型LR

(4). 使用LR,输入X,得到y的预测值y_pred

(5). 求得y的VIF= sum((y- y_mean)^2)/sum((y- y_pred)^2)

(6).从第二步开始重复,计算每个signal的VIF


5. ROC曲线

受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线): 是反映敏感性和特异性连续变量的综合指标,是用构图法揭示敏感性和特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,再以敏感性为纵坐标、(1-特异性)为横坐标绘制成曲线,曲线下面积越大,诊断准确性越高。在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值。


5.1. 对每个Model(只有SEG_A),计算score与tag的ROC曲线:

(1). 将score 降序排列

(2).  score划分为10等份(每份个数相同)

(3).  计算每一份tag的总和即命中个数,score的最大、最小值

(4).  计算每一份的未命中个数 = 个数- 命中个数

(5).  转化为累加矩阵,计算累加命中率、累加未命中率

(6). 计算 KS = max ( abs (累加命中率[i] - 累加未命中率[i]) ) 

(7).  计算 AUROC = sum ( (累加命中率[i] + 累加命中率[i-1])*( 累加未命中率[i] -  累加命中率[i-1]) )/2 ,  即求积分

(8).  计算累加前每层实际命中率、累加前每层预测命中率、每层累加率

(9).  ROC 曲线:X轴为累加未命中率[i]),y轴为累加命中率[i]。

6. AUC 

Area Under the ROC Curve,ROC 曲线下的面积,AUC 值在0.5 到1 之间。


6.1    对每个Model(只有SEG_A),计算score与tag的AUROC 见5.1:
AUROC = sum ( (累加命中率[i] + 累加命中率[i-1])*( 累加命中率[i] -  累加命中率[i-1]) )/2 ,求积分

7.KS  

6.1    对每个Model(只有SEG_A),计算score与tag的AUC见6.1:
KS = max ( abs (累加命中率 - 累加未命中率) ) 

8. CI

Condition Index  条件指数:用于诊断多重共线性。

CI > 100

强 多重共线性


CI > 30

中等多重共线性


CI > 10

弱多重共线性


Condition Index  条件指数 计算方法:计算矩阵X‘X 的特征值,则条件数K和条件指数CI分别为:


8.1. 对每个Model(SEG_A、SEG_BSEG_C),计算signal的CI:

(1). 求出回归矩阵S‘S

(2).求出矩阵S‘S的特征值lam1、lam2........lamN

(3). 求最大特征值/最小特征值 的平方根


9. Logit Plot

9.1. 对每个Model(只有SEG_A),计算signal与tag的logit关系:

(1). 若signal 是标签类型,则计算其值分别为0、1时候,对应的tag的数量、均值

(2). 若signal 是数值类型,则将signal划分为最多10个区间,计算各个区间对应的tag的数量、均值


10. CRC

10.1 对每个Model(只有SEG_A),计算score与tag 之间的线性关系:

(1).  按照score降序排列

(2).  划分为10个等份,求出每一份的score和tag的均值

(3).  使用score均值和tag均值进行线性回归建立模型LR

(4).  按照模型LR,使用score均值作为变量,带入模型LR中,计算出预测的tag均值


0 0
原创粉丝点击