在了解有趣的gauc之前,如果对auc还不太了解,可以先看看这篇文章AUC
给大家举个例子,假设你现在训练了一个模型K,你用这个模型来预测中午吃什么?
此时有两个顾客,小明和小白
刀削面(正) | 担担面 (正) | 晋糕 (负) | |
小明 | 0.4 | 0.2 | 0.1 |
小白 | 0.5 | 0.3 |
ok,以上的食物都很好吃啊,只是举个例子。
那么此时就可以计算模型K的AUC = (2+2+1)/6 = 0.83, 感觉一般,但是对小明来说
小明的auc = 1+1/2 = 1
小白的auc = 1/1*1 = 1
auc的具体计算逻辑,可以参考前情回顾哈,这里简单说一下,分子就是有多少正样本预测的概率值大于负样本的预测概率值,分母是正负样本的组合。
到此刻,大家是不是有点感觉了,我计算整个模型K的针对于所有的样本来说,它的auc好像并不高,感觉模型好像训练的并不是很优秀,但是分别针对于小明和小白,auc都是满分💯。换句话说,这个模型其实预测的很好。
其实auc是整体的一个评价值,就是常规的二分类问题,就用auc来评价是没问题的。
但是当是推荐场景的时候,就需要思考一下了,考虑什么呢?需要考虑的是不同用户了。
我希望你整体的样本auc都很好,同时我也希望推荐给每个用户的也很好,这就是gauc。
gauc其实就是针对不同用户的auc的值的一个加权平均。
举个例子,推荐午饭为例,系统给小明和小白推荐午饭吃什么,刀削面推不推?担担面要不要推?晋糕要不要推?整体的auc显示,好像并不是很准确的样子,只有0.83。但是小明感觉,推的很准,auc是1,小白感觉也是,推的很准,auc也是1,所以模型是准确的。这个情况下,我们需要更细粒度的考虑的时候,需要参考gauc这一指标
上一篇:JDBC教程上篇