数据挖掘之模型评估(AUC和F-measure)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhougb3/article/details/80254309

最近在打一个数据挖掘的比赛,看到评分标准如下:

按如下公式计算得分:
score=0.6×auc+0.4×F1
其中:
auc值为在测试集上,根据预测结果按照标准auc定义计算的分值;
F1值为针对测试集中实际标签为1(风险用户)的用户,根据预测结果,按照标准F-measure定义计算的分值。

对于一个刚接触数据挖掘的人来说,连评分规则都没看懂,GG了,于是果断查了下AUC的用法。

AUC是一个模型评价指标,只能用于二分类模型的评价。很多机器学习的模型对分类问题的预测结果都是概率,如果要计算accuracy,需要先把概率转化成类别。这就需要手动设置一个阈值,如果对一个样本的预测概率高于这个预测,就把这个样本放进一个类别里面。低于这个阈值,放进另一个类别里面。

AUC是指 随机给定一个正样本和一个负样本,分类器输出该正样本为正的那个概率值 比 分类器输出该负样本为正的那个概率值 要大的可能性。

对于一批已知正负的样本集合(M正N负),任取一个正样本和一个负样本,共有M*N种方法(事件集合,作为分母)。每次取一个正样本,通过我们的模型来计算他的概率值,再根据所有负样本的概率值,概率值低于正样本概率值的就是符合条件的(分子数值加1)。遍历完M个正样本的情况,得到的结果就是AUC值。

知乎上说,AUC方法可以避免将预测概率转换为类别。个人理解,在使用AUC评估模型的时候,使用的是概率值来评估模型而没有受到阀值的影响,这样对模型的评价可能更准确些。

参考:https://www.zhihu.com/question/39840928?from=profile_question_card

接下来要了解一下F-measure方法了。这个方法是建立在精确率(precision)和召回率(recall)的基础上。具体参考此篇博客:https://blog.argcv.com/articles/1036.c

比赛要求的提交格式如下:

参赛队伍在初赛、复赛阶段均以csv文件格式提交的预测结果,结果文件中每行代表对一个用户的预测结果,形式为”uid, label”。其中:
uid应按照预测的风险可能性从高到低排序;
label为用户的风险判别标记,取值为0或1(0-非风险用户,1-风险用户)。

将风险性从高到低排序,这样子系统就可以计算出AUC值来给你的模型评分了。AUC值不会受阀值影响,但是F-measure会。在修改模型时要考虑一下是哪种因素。

猜你喜欢

转载自blog.csdn.net/zhougb3/article/details/80254309