样本噪声处理方案

为什么进行样本筛选?

数据粗存在噪声,会极大影响模型的训练效果
(注意:数据噪声和样本不平衡是不同的)

那么此类样本如何进行判断筛选呢?我们将其归纳为如下两类:
基于模型的策略;
基于某些假设的策略;

1. 基于模型的策略:

这些样本和之前的明显错误的或者异常的是不一样的,我们没法直接观测到,数据分析的手段也较难判断。那么这个时候该如何处理此类的样本呢?下面是一种我们在实践中使用的流程图。
在这里插入图片描述

对应的算法步骤为:

  1. 我们先对训练数据进行模型的训练(例如典型的树模型等),得到我们的模型;
  2. 使用在训练集上训练得到的模型对训练集进行预测;
  3. 我们对预测结果进行特定的筛选(一般我们会选择删除绝对误差最大的样本,至于删除的比例是一个超参数,可以自己调);

很多时候,在通过上面的操作得到的数据集上训练得到的新模型效果会有些许提升。

注意:在二分类问题中,我们发现删除训练集合上预测结果为0.5附近的样本,很多时候也可以带来部分的小提升,可能这部分样本是较难训练的,所以对其进行删除,反而有助于模型更好的训练。

2. 基于某些假设的策略:

基于模型的策略很多时候能带来一定的帮助,但也只能找到部门可疑的样本,而且我们需要先训练一个模型,这样的成本较大,那么是否还有其它可疑参考的策略呢?答案是肯定的。

这种策略我们称之为是基于假设的策略。

顾名思义,就是我们先对我们的数据进行某种形式的假设,然后把不满足我们假设的数据进行剔除等操作。

举几个典型的例子:

例子1:
在推荐问题中,用户的点击是较大程度地受到曝光商品的位置影响,用户往往倾向于点击位置靠前的商品,而在很多商家的统计中,大家也发现,曝光前10的商品会占据所有曝光商品70%以上的点击,很多用户都不会去看曝光排名靠后的商品,也就是说,用户基本没有对这些商品进行评估,自然也就不会去点击购买。而如果我们直接将所有的样本全部当做是负样本处理,并不是最优的策略。

针对此类问题,很多算法工程师会选择记录用户最后一次点击样本的曝光位置,并将曝光位置大于该值的样本直接删除,或者将最后一次点击样本的位置加上某个值,把大于该值的样本直接进行剔除。这么做既可以减少训练样本的个数,而且有些时候也能取得更优的效果。

例子2:
在销量预测问题中,为了数据的完整性,很多时候商家会直接给出历史五年的销量纪录,预测未来几天的销量。但是我们知道,用户在刚刚营业的时候往往会给出非常多的优惠活动,例如开业一周内,所有商品打五折等等。而且随着时间的变化,销量变化是非常大的,尤其是这种跨度较长的数据集中,几年前的数据可能对于当前的预测完全没有任何参考价值。例如下图,十年前,买手机的用户还没有那么多,但是10年之后,几乎每个人都会有一到两款手机,所以十年前的数据可能对于当前的预测并不能带来任何帮助,反而会引入噪音。

所以在对此类问题建模时:我们经常会假设过早的数据的分布与当前差异较大,刚刚营业期间的数据也会带来误导等,不使用过早的数据,同时将刚刚营业的数据剔除等。

3.数据量与计算的平衡

**这边和前面所说的错误数据,噪音数据不太一样,可能所有的数据都是真实的没有太多错误的,更多的是考虑到计算时间,存储资源等因素而做的操作。**而关于采样的策略也有很多。此处,我们介绍几种使用的最多的策略。

3.1.随机降采样:

随机负采样是最简单也是最常用的一种策略,它的思路非常简单,一般可以分为两步:

  1. 保留所有的正样本;
  2. 从负样本中随机抽取一定比例的样本;

但是随机降采样需要注意一点,就是要先做特征然后再进行负样本的采样。

3.2.时间序列采样

所有涉及到时间相关的问题,例如推荐问题,电商搜索,销量预测,流量预测等问题在数据量足够大的时候,我们往往都会对其进行采样,保留最近天的数据,这么做看上去我们丢弃了很多有用的数据,会损失模型的效果,但是其实在实践中,我们发现,很多时候,使用最近天的数据进行训练,再增加数据量并不能带来非常大的提升,反而会耗费大量的计算和存储资源。

所以这个时候,我们往往只需要按照时间戳进行采样,保留特定时间段以及之后的数据即可。

参考:
https://blog.csdn.net/shenxiaoming77/article/details/50617438
https://www.sohu.com/a/259283749_100059377Strategies for Addressing Class https://medium.com/@ODSC/strategies-for-addressing-class-imbalance-5b31b73f7b6f
https://mp.weixin.qq.com/s/EAl7ZrJj2TG_hM9i1XSbnQ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值