精度很高?论AUC的重要性

AUC的重要性

PS:终于登陆kaggle,发现原始数据的测试集table是直接将女性标1,所以模型精度看似很高,实际提交只有0.77……

今天使用Dense预测Titanic生存数据,深刻体会到了AUC的重要性。
使用2层Dense准确率从0.6直接升到最高0.96,兴冲冲去做O2O优惠券使用预测,做完发现精确度提高很大,结果一算AUC悲剧了……
AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。
关键问题是如果二分类样本值大部分均为0,则很容易得到1个高精确度的模型,这时候的衡量标准应该为AUC,避免模型将所有期望均预测为0同样可以得到1个精确度很高的结果。
另记录下今天的收获:
DataFrame行索引重排:
valid = valid.reset_index(drop=True)
lambda:返回的是函数式,应再次输入参数才行
增加归一化后loss曲线变得平滑?这一点需要再次验证,并寻找理论基础
西瓜书p.33:
根据概率预测结果,将样本进行排序,概率直接决定泛化能力。

P-R曲线

查准率(准确率)P=TP/(TP+FP):排序靠前位置截断
查全率(召回率)R=TP/(TP+FN):靠后位置截断

P-R曲线以
查全率为横轴,
查准率为纵轴
查全率越高的同时查准率越大,曲线越靠外围性能越好。

ROC曲线

ROC曲线研究泛化能力,全称‘受试者工作特征’(Receiver Operation Characteristic)
按照预测结果对样例排序,逐个把样本作为正例进行预测,作图,
横轴为‘真正例率’TPR=TP/(TP+FN)
纵轴为‘假正例率’FPR=FP/(TN+FP)

即横轴衡量判断错误的,纵轴衡量判断对的,错误的越大,对的也应该更大才可以

当ROC曲线有交叉时,通过AUC衡量两个模型的优劣

PS:AUC=0.5即在随机猜测……

每日一学

代价敏感错误率

代价敏感错误率:二分类任务两个值很多时候价值不等,需引入二分类代价矩阵costij来衡量分类代价

代价曲线:
横轴:取值为【0,1】的正例代价
纵轴:取值为【0,1】的归一化代价

ROC曲线上的每个点转化为平面上的一条线段,然后取多有线段的下界,围成的面积即为期望总体代价
线段端点:(0,FPR),(1,FNR)

比较检验方法

1.假设检验(单model)

将测试错误率假设为泛化错误率
根据测试错误率估算泛化错误率的分布
通过多次留出法或交叉验证,错误率均值、方差估算

定义变量 τ = 根号k(u-e)/ρ

τ服从t分布

衡量模型泛化能力,双边t检验常用临界值西瓜书P.40

2.交叉验证t检验

两个不同模型k折交叉验证准确率求差并平方,服从t分布
5*2交叉验证,5次2折,每次2折验证前随机打乱数据,使5次数据划分不重复

3.McNemar检验

两个model正确、错误列联表相等

4.Friedman检验与Nemenyi后续检验

多个数据集上比较model性能

偏差与方差

泛化误差可分解为偏差、方差、噪声之和

偏差:model本身的拟合能力
方差:数据变化带来的影响(扰动)
噪声:预测上界,不能预测噪声。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值