栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AUC究竟在衡量模型什么能力?代码实现

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AUC究竟在衡量模型什么能力?代码实现

当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

它不受类别不平衡问题的影响,不同的样本比例不会影响AUC的评测结果

 

#author: wepondef naive_auc(labels,preds):    """    最简单粗暴的方法   先排序,然后统计有多少正负样本对满足:正样本预测值>负样本预测值, 再除以总的正负样本对个数     复杂度 O(NlogN), N为样本数    """    n_pos = sum(labels)    n_neg = len(labels) - n_pos    total_pair = n_pos * n_neg    labels_preds = zip(labels,preds)labels_preds = sorted(labels_preds,key=lambda x:x[1])accumulated_neg = 0satisfied_pair = 0for i in range(len(labels_preds)):    if labels_preds[i][0] == 1:        satisfied_pair += accumulated_neg    else:        accumulated_neg += 1 return satisfied_pair / float(total_pair)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/364440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号