模型的评估
# 训练集和测试集概念
# 训练集 用来训练模型或确定参数的数据
# 测试集 是用来验证模型的准确性的数据
# 交叉验证 70%的数据作为训练集,30%的作为验证集,测试集用交叉表的形式表示
# 混淆矩阵
# 1 0 灵敏度 = A / (A + B) 样本真/真实真
# 真 1 A(击中) B(漏报) 特异度 = D / (C + D) 样本假/真实假
# 实 0 C(虚报) D(正确否定)
# 1.ROC 曲线 :用来描述模型分辨能力,对角线以上的图形越高越好
# Y轴--> 灵敏度 (预测真的能力随着Y轴增大增大) X轴--> 1-特异度(也就是说特异度随着X轴减小,预测假的能力随X轴增大减小)
# ROC区域占正方形面积,特征:
# a.敏感度和特异度越大越好
# b.ROC曲线间的相对重要性
# c.沿对角线分布可以认为是随机因素造成的
# 训练集 约等于 验证集 而 验证集 大于 训练集的可能性不大
# 随着阈值(就是逻辑回归中预测概率从大到小排序) 下降 灵敏度 上升 特异度 下降
# 阈值最大值,所有客户都为否 阈值最小值,所有客户都为真
# 违约值分值高敏感,违约分值低铭感
# ROC曲线结果:
# [0.5,0.7] 表示效果比较低,但是预测股票已经很不错了
# [0.7,0.85) 表示效果一般
# [0.85,0.95] 表示效果良好
# [0.95,0.1] 社会科学建模中不太可能出现
# 注意:
# 有时候ROC曲线有可能会落入对角线以下,这是需要检查检验方向与状态值的对应关系
# 如果ROC曲线在对角线两边均有分布,需检查数据或者专业背景
# 2.K-S曲线 :用来描述模型对违约客户的分辨能力
# X:深度(首先按照预测概率从高到低排序,分为N组) Y红:正例的累积密度 Y蓝:负例累积密度
# P(预测概率) 实际类别 为真组中累积百分比 为假组中累积百分比 (为真-为假)*100
# 0.98 1 0.09 0 9
# 0.93 1 0.18 0 18
# 0.82 0 0.18 0.11 7
# ...
# K-S统计量:
# < 20 模型无鉴别能力
# 20~40 模型勉强接受
# 41~50 模型具有区别能力
# 51~60 此模型有很好的区分能力
# 61~75 此模型有非常好的区分能力
# > 75 此模型异常,可能有问题
# 3.洛伦兹曲线:用来描述预期违约客户的分布
# X:深度 Y:正例的累积密度
# 4.累积提升曲线:由于展示使用模型预测结果与随机情况下获取显性样本的能力
# X:深度 Y:正例累积密度/基准概率
# 5.分类与预测算法评价
# 绝对误差 E = 实际值 - 期望值 相对误差 e = (实际值 - 期望值)/实际值*100
# 平均绝对误差 MAE = (1/N)∑(第i个实际与预测值的绝对误差)
# 均方误差 MSE = (1/N)∑(第i个实际值 - 第i个预测值)^2
# 均方根 RMSE = 根号(MSE)
# 平均绝对百分误差
# 识别准确度 = (正确肯定的分类数 + 正确的否定的分类树 )/总样本量 *100
# 识别精确度 = 正确肯定的分类数 / (正确肯定的分类数 + 错误肯定的分类数) * 100
# 反馈率 = 正确肯定的分类数 / (正确肯定的分类数 + 正确否定的分类数) * 100
# ROC曲线
# 混淆矩阵
参考资料:《Python数据分析与挖掘实战》和 CDA《信用风险建模》微专业