查看: 4670| 回复: 11
跳转到指定楼层
上一主题 下一主题
收起左侧

imbalanced dataset 技术问题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
大家好,

小弟有个技术性问题想问问大家的意见
对于imbalanced dataset来说,用哪个evaluation metric比较合适?
ROC-AUC curve还是F1 score?
具体原因是什么?
谢谢!

上一篇:Udacity Data Analyst Nanodegree
下一篇:阿玛总Analytics非典型性跪经
全局:
两者各有利弊。

如果看confusion matrix的话,TP FP FN TN数据大部分都集中在TN里(假设1比0少很多)。
ROC-AUC是看TPR vs FPR,所以计算FPR的时候会用到TN,导致大部分数据点其实都集中在curve的一端,curve上大部分地方数据很稀疏,所以其实对模型的好坏不是很敏感。ROC-AUC更像是描述“模型究竟能多大程度上区分TPR和FPR”,而不是“怎样能同时降低FP和FN”。但是好处是不需要考虑threshold。

F1是precision recall的harmonic mean,所以两个计算都不需要用到TN,不会有分母特别大数据分不开的情况,对模型好坏更敏感。坏处是需要自定义threshold。实际建模的时候可以用precision-recall curve来确定threshold,来权衡FP和FN的cost。
..
总的来说两者都可以用。工作当中应该还是根据具体情况来选择,面试的话我的经验是两种的好坏能言之成理就可以。希望有帮助。
回复

使用道具 举报

推荐
iamshu 2019-4-1 23:46:42 | 只看该作者
全局:
Precision/Recall/F score. 1point 3 acres
. From 1point 3acres bbs
https://machinelearningmastery.c ... fication-in-python/
回复

使用道具 举报

🔗
wintergo 2019-4-1 05:53:55 | 只看该作者
全局:
说说我的理解,应该选ROC-AUC curve,因为它不依赖于正负样本的分布,而F1只是beta =1 的分数
回复

使用道具 举报

🔗
solomonking 2019-4-1 07:29:30 | 只看该作者
全局:
AUC-Precision and Recall curve
AUC-ROC is less sensitive to class mix which also makes it difficult to differentiate performances of two models
回复

使用道具 举报

🔗
 楼主| hjsdssz 2019-4-1 10:18:11 | 只看该作者
全局:
谢谢LS二位
我又做了些research. ----
好像这两个都可以 但是F1 score貌似是用于multiclass 而ROC-AUC用于binary
不知道对不对
回复

使用道具 举报

🔗
ccqueeny 2019-4-1 21:37:23 | 只看该作者
全局:
我觉得两个都可以,F1里面的beta可以变,根据不同的beta来看你是更focus在precision还是recall
回复

使用道具 举报

🔗
 楼主| hjsdssz 2019-4-2 11:38:00 | 只看该作者
全局:
reudnetwork 发表于 2019-4-2 01:59.--
两者各有利弊。. ----

如果看confusion matrix的话,TP FP FN TN数据大部分都集中在TN里(假设1比0少很多)。
...
. Waral dи,
非常感谢!. ----
多问一句 是如何用precision-recall curve来确定thresold的? 我印象中好像是用ROC-AUC curve可以来确定thresold (找TPR的最大值和FPR的最小值之间的balance)
谢谢
回复

使用道具 举报

🔗
iamchuan 2019-4-2 14:39:02 | 只看该作者
全局:
hjsdssz 发表于 2019-4-2 11:38
非常感谢!
多问一句 是如何用precision-recall curve来确定thresold的? 我印象中好像是用ROC-AUC curv ...

在实际问题中一般会根据type 1 error和type 2 error的cost来构建loss function去优化
回复

使用道具 举报

🔗
老狗识途 2019-4-4 01:13:54 | 只看该作者
全局:
hjsdssz 发表于 2019-4-2 11:38.1point3acres
非常感谢!
多问一句 是如何用precision-recall curve来确定thresold的? 我印象中好像是用ROC-AUC curv ...

可以设想一个情境,比如电商要找出诈骗交易。threshold作为hyperparameter可以确定FP和FN之间的tradeoff。求总的cost function需要知道FP和FN分别的cost。FN会造成实际的财产损失(没有查出诈骗,钱被骗走了),FN有可能造成间接损失(错误得增加了安全措施,过于繁琐造成用户离开)。cost function可以根据这两者来构造,甚至再叠加模型来预测FP和FN的损失来求total cost作为objective function。实际操作的时候也可以把高于threshold的case单独拿出来,再过另一个model,来降低FP的比例。. ----

以只是举一个例子,应对面试应该足够。实战还是需要具体分析。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表