最近在打一个数据挖掘的比赛,看到评分标准如下:
按如下公式计算得分:
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评估模型的时候,使用的是概率值来评估模型而没有受到阀值的影响,这样对模型的评价可能