一、

转自https://blog.csdn.net/weixin_38111819/article/details/79214815

在机器学习模型构建的时候,我们往往会遇到数据样本正负比例极其不平衡的情况,例如在征信模型或者判断客户购买商品是否使用分期时,往往正负样本比达到10:1,这样会造成许多实际问题。

样本不均衡会导致:对比例大的样本造成过拟合,也就是说预测偏向样本数较多的分类。这样就会大大降低模型的范化能力。往往accuracy(准确率)很高,但auc很低。

解决办法:

1.上采样:

增加样本数较少的样本,其方式是直接复制原来的样本。样本较少时采用。

2.下采样:

减少样本数较多的样本,其方式是丢弃这些多余的样本。样本较多时采用。

实际情况下,上采样用的更多一些。

3.合成样本:

增加样本数目较少的那一类的样本,合成指的是通过组合已有的样本的各个 feature 从而产生新的样本。

一种最简单的方法就是从各个 feature 中随机选出一个已有值,然后拼接成一个新的样本,这种方法增加了样本数目较少的类别的样本数,作用与上面提到的上采样方法一样,不同点在于上面的方法是单纯的复制样本,而这里则是拼接得到新的样本。这类方法中的具有代表性的方法是 SMOTE(Synthetic Minority Over-sampling Technique),这个方法通过在相似样本中进行 feature 的随机选择并拼接出新的样本。

4.改变样本权重:

增大样本数较少类别的样本的权重,当这样的样本被误分时,其损失值要乘上相应的权重,从而让分类器更加关注这一类数目较少的样本。

 

二、转自https://zr9558.com/2016/02/02/%E7%82%B9%E5%87%BB%E7%8E%87%E9%A2%84%E6%B5%8B%E4%B9%8B%E7%94%9F%E6%88%90%E6%AD%A3%E8%B4%9F%E6%A0%B7%E6%9C%AC/

在机器学习,数据挖掘和推荐系统这几个大领域中,用支持向量机模型(Support Vector Machines)或者逻辑回归模型(Logistic Regression)做模型的预估是十分常见的事情。既然是分类模型,那么就需要确定正负样本,以便模型进行合理而有效的分类,因此如何根据具体的业务来确定正负样本就是一个十分关键的问题。

点击率预测的正负样本如何产生:

对于视频或者音频节目而言,分成几个种类:

喜欢的节目:用户当天播放过的节目;

历史的节目:用户在过去的一段时间内播放过所有节目;

曝光的节目:一段时间内对用户曝光的节目。

由此,正样本可以定义为用户当天播放过的节目,也就是“喜欢”。负样本则有两种选择方案:

(1)负样本指的是对用户曝光过的节目,但是用户至始至终都没有播放过,也就是说该节目并不在“历史”和“喜欢”两个分类里面。

(2)负样本指的是在整个抽样的池子里面,但是用户至始至终都没有播放过,也就是说该节目并不在“历史”和“喜欢”这两个分类里面。

此时还需注意抽样比例,一般来说 负样本的个数/正样本的个数 = 1:1 或者 2:1。

但是视频类节目和广告有区别,有可能该节目只是因为标题取得好或者图片配的好,才会吸引用户进去点击,但是用户观看了很短的时间就发现不喜欢该节目。所以在选择正样本的时候,从某种层面上来说需要考虑用户的观看时间,设定一定的阀值或者一定的观看比例才能够反映用户是否喜欢该节目。比如YouTube的视频节目,不止有“订阅”,“添加到”,“分享”,还有能够反映用户喜好的“like”(顶一下),“dislike”(踩一下)。有的时候顶一下可能不足以反映用户是否喜欢,但是踩一下基本上可以确定该用户不喜欢这个视频节目。除了“like”和“dislike”,对于其余的一些APP或者视频网站,还会有其余的操作,比方说评论,分享,收藏,下载等操作。这些操作从某些层面上也会看出用户是否喜欢该节目。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐