不均匀正负样本分布下的机器学习

不均匀正负样本分布下的机器学习

@机器学习那些事儿 发起的讨论, 2014-11-15

@好东西传送门 整理于 2014-12-09


39 条精选讨论(选自165条原始评论和转发)

机器学习那些事儿     2014-11-15 17:48
工业界机器学习典型问题: 正负样本分布极不均匀(通常<1:10000),有什么较好的方案构造训练集的正负样本分布?构造后如何解决训练数据与预测的分布不一致?请大牛帮忙解释下 @老师木   @李沐M   @星空下的巫师   @徐盈辉_仁基
北冥乘海生   转发于 2014-11-15 17:50
这个跟模型的形式和估计方法都有关,有些情况下正负例不均衡时估计有偏,可以校正一下。
小兔子大坏坏   评论于 2014-11-15 18:25
上采样、下采样、代价敏感,没什么好办法
特级飞行员舒克   转发于 2014-12-07 17:27  回复 @phunter_lau
回复 @phunter_lau:mark,sampling
范涛_中科大   评论于 2014-12-07 17:40  回复 @特级飞行员舒克
这个之前调研过,主要分重采样和欠采样!这种不平衡是因为比率的不平衡给一些学习方法带来问题。但是在某些领域,比如反欺诈和安全,不仅是比率极不平衡,而且是正样本样本绝对数很小。需要扩散正样本方法!
特级飞行员舒克   转发于 2014-12-07 17:54
聚类然后从负样本中找和正样本比较紧邻的作为正样本怎么样? @phunter_lau   @范涛_中科大   @winsty
范涛_中科大   转发于 2014-12-07 17:57
回复 @特级飞行员舒克: Synthetic Minority Over-sampling Technique 我试过这个方法,解决部分问题,主要还是需要增加样本在特征空间的覆盖! 工程上光靠算法也解决不了问题,有的还是需要加入下经验知识来做。
睡眼惺忪的小叶先森   转发于 2014-12-07 18:03  回复 @范涛_中科大
我也说说。抛砖引玉:1,比例是一个关键的参数,据我们的经验,1:14是一个常见的“好”比例。[哈哈] 2,stratified sampling,也就是根据特征来采样,尽量使样本都覆盖特征空间。3,训练的时候,这个正负样本的“出场”顺序也很关键,不然可能还没遇到正(负)样 本模型就已经收敛了。
梁斌penny   转发于 2014-12-07 18:05  回复 @特级飞行员舒克
这就是一种伪标注方法,是可行的。当然最后还是需要验证一下效果,来证明这个方法对这类数据是solid的
孙明明_SmarterChina   转发于 2014-12-07 18:16  回复 @梁斌penny
这问题太笼统了。正负样本不平衡只是个表象,处理方法要根据本质原因来定。
齐浩亮   转发于 2014-12-07 18:37  回复 @梁斌penny
用排序思想构造所谓的序对,
宋云涛   转发于 2014-12-07 18:55
如果1:10算是均匀的话,可以将多数类分割成为1000份。然后将每一份跟少数类的样本组合进行训练得到分类器。而后将这1000个分类器用assemble的方法组合位一个分类器。记得读到的论文可行,但没有验证过
宋云涛   评论于 2014-12-07 18:57
采样的话要么损失信息要么影响数据分布,基本的序对的话也会引起信息的损失~
特级飞行员舒克   转发于 2014-12-07 19:55  回复 @Juggernaut_One
回复 @Juggernaut_One:我认为有些场景下正负样本之间并没有严格明显的界线,是可以互相转换的。
特级飞行员舒克   转发于 2014-12-07 19:59  回复 @Juggernaut_One
回复 @Juggernaut_One:在百度实习做广告点击率预估时,曾经想过在模型训练时不用0/1作为label,而是根据特征情况给一个float值(在[0,1]区间周围),或者更简单一些分别对目标值0/1做一些扰动,后来由于某些原因没做成。
wb王传鹏   转发于 2014-12-07 20:00
@刘尚堃  你说过有不少技巧[哈哈]
离家出走的托尔斯泰   转发于 2014-12-08 02:34
这在机器学习里面被称类别不平衡问题,可以参考Haibo, H. and E. A. Garcia (2009). "Learning from Imbalanced Data." Knowledge and Data Engineering, IEEE Transactions on" 的survey.已有很多方法提出
phunter_lau   转发于 2014-12-08 05:02  回复 @梁斌penny
或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法但是我也是听同事说的
小吴COKE   转发于 2014-12-08 05:26  回复 @梁斌penny
聚类本身不是已经默认了相似度测定了么。。。。[汗]
cswhjiang   转发于 2014-12-08 05:33  回复 @phunter_lau
Transductive 是指要求 label 的数据在training 一个model的时候已经确定了,相对于inductive 而言。训练数据和测试数据分布不同是domain adaptation、sample bias、data shift。但是他原先的问题其实是imblance problem,google下能找到方法,比如   http://t.cn/Rzph0Wt
思奇吞象   评论于 2014-12-08 05:50
标准解决方法:设计objective function的时候给不同misclassification的情况不同的relative weights。也就是说给从小数量的样本被分成大数量的样本更大的penalty
anch3or   转发于 2014-12-08 07:53  回复 @梁斌penny
@phunter_lau:或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法
孙明明_SmarterChina   转发于 2014-12-08 08:35  回复 @好东西传送门
训练数据与预测数据分布不一致,有专门研究的课题,sample selection bias,主要方法是各种reweighting
机器学习那些事儿   转发于 2014-12-08 09:06  回复 @特级飞行员舒克
这应该和半监督的间谍算法类似吧,不过这只能解决抽样问题,没法较好的确定正负样本之间的比例吧?
老师木   转发于 2014-12-08 10:12  回复 @梁斌penny
我以前搞过一个support cluster machine,类似的想法,很久以前的工作了,仅可以参考一下。
vinW   评论于 2014-12-08 10:17
按理是跟你的目标有关。如果你的目标是 预测的分布 跟训练的分布一致,那就加大对分布不一致的惩罚系数就是。
Jason_wbw   转发于 2014-12-08 10:19  回复 @特级飞行员舒克
我理解那么多的负样本的情况下,其实负样本已经并不是真正的`负样本`了,顺带扔个之前被推荐的paper   http://t.cn/RzpInP3
王小科科科   转发于 2014-12-08 10:32
我的处理方式挺简单的,将负样本取样数量减少,然后在计算预测概率的时候,调整常数因子。
晴阴雨雪天各种读书   转发于 2014-12-08 11:11  回复 @岩间花树GT
早几年kdd有篇paper解决这个的,其实原理都差不多
微笑刺客4067   转发于 2014-12-08 12:09
关注。。伪标注有时间试一试!
夏睿   转发于 2014-12-08 12:50  回复 @孙明明_SmarterChina
Sample selection bias 可以解决一部分预测与训练数据分布不一致(还包括迁移学习、领域适应问题),不过好像没见过直接用它解决类别不平衡
昊奋   转发于 2014-12-08 13:08
抛砖引玉,这个倒是可以参考positive only learning等半监督学习中如早期的spy算法等来构造合适的负例来解决正负例不平衡的问题。在只有正例的学习问题中,负例千差万别,且数量也远超正例,符合楼主的问题描述
AixinSG   转发于 2014-12-08 13:48  回复 @昊奋
这个建议看起来比上采样下采样或者调权重更靠谱
小飞鱼_露   转发于 2014-12-08 17:12
这个看起来像 one-class recommendation 问题,不知是否可以考虑转化成 learning to rank 问题,如果不是为了拟合一个分布的话 (PS: 字数不够了...)   @AixinSG   @昊奋
NeoLScarlet   转发于 2014-12-08 17:14  回复 @算文解字
貌似生成不平衡那边的样本效果最好。
复旦李斌   转发于 2014-12-08 17:39  回复 @老师木
于是大家搜出来的都是我的那篇。。。[衰][衰]
离家出走的托尔斯泰   评论于 2014-12-08 18:04
个人觉得在类别不平衡条件下,Transductive SVM (TSVM)应该对于的active learning 来标注,可能结果更好。
昊奋   转发于 2014-12-08 20:04
learning to rank对于训练数据量的要求较高,同时要确定用于learning to rank的pair,还是需要找到负例,从而将正例和负例形成偏序配对。所以learning to rank是一种方法,但个人认为这会将简单问题复杂化,且本质还是需要去找负例。
开机就好ing   转发于 2014-12-08 21:06  回复 @昊奋
用单类分类算法如svdd也可以
杲a杲   评论于 2014-12-09 02:48
感觉都没扯到点子上啊,最经典的imbalanced的方法,cascade learning,详见viola的face detection paper.

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值