作者: 3mv229dzgahjmg1u6b

在某次商品促销活动中,根据用户偏好相关的特征训练了一个机器学习模型,现需要对该模型进行离线评估。该模型是二分类模型,可以获取到模型在某个用户下对于商品的打分和真实的样本标签,由于样本量较大,因此模型对于不同的用户下的商品打分可能存在分值相同的情况。使用 ROC 曲线下的面积(Area Under Curve)进行模型评估,因此需要计算通用模型 AUC。AUC 通常用来表示随机选出一对正负样本,分类器对于正样本的打分大于负样本打分的概率,假设一个数据集中有 M 个正样本, N 个负样本,将所有的样本按照预测值从小到大排序,也就是: 其中 rank 代表正样本在排序中的索引加一,如果排序以后某一正样本对应的索引为 1,则 rank 值为 2。如果某一机器学习给出的预测分数经过排序后为 [0.3, 0.4, 0.5, 0.6],此时对应的 rank 变为 [1, 2, 3, 4],只需要把相应正样本抽取然后根据公式计算即可。如果模型给出的预测值中存在数值一样的情况,那么排序的过程中,需要对一样的数值进行平均化处理,如果单纯只考虑预测数值不出现重复的情况,那么这种 AUC 计算的应用场景是非常局限的。如果某一机器学习模型给出的预测分数经过排序后为 [0.3, 0.4, 0.5, 0.5, 0.5, 0.5, 0.6],此时对应的 rank 变为 [1, 2, 4.5, 4.5, 4.5, 4.5, 7],其中 (3+4+5+6)/4 = 4.5。 请根据题目描述和输入、输出、补充说明的信息,完成通用 AUC 的计算。

加载更多