机器学习样本不平衡如何处理?

问:在机器学习训练时候,有时候会出现正负样本极其不平衡的情况,什么情况下会出现这种情况?有何有效的方法避免此类问题?
答:
场景:在一般人群中生病vs没病;在一般工作状态下故障vs无故障;在一般交易中正常vs欺诈,等。
解决方法:
1、收集更多或不同的数据。
2、生成合成的样本。
3、数据重采样。
4、将性能指标更改为混淆矩阵、精确性和召回率。F1得分,kappa,ROC曲线等。
5、采用内建非平衡算法,如 RUS Boost Tree等。
6、添加惩罚函数,将惩罚项加入到不同的cost函数中。
7、尝试异常检测,改变检测算法。

问:为啥要用Focal Loss,为啥不用SoftMax Loss?
答:
1、Focal Loss在训练过程中,会根据分类样本的难易性,自动调整样本的权重,这样训练过程中,可以将关注点集中于难以分类的样本上,不会关注过多的简单样本,可以解决样本不均衡的问题。
2、在图像分割类问题中,对于小物体的分割,背景的像素点比前景要多很多,正负样本存在不均衡的问题,Focal Loss可以集中于难以分类的像素上,解决简单样本过多的问题,都是softmax loss不具备的。

问:不直接使用第三方库,写一个计算二维灰度图像的直方图函数histogram,bin个数为256?
答:
代码:

def hist(im):
    assert isinstance(im, np.ndarray) and (im.dtype == np.dtype('uint8'))
    ret = np.zeros((256,), dtype=np.float)
    for elem in im.flatten():
        assert 0 <= elem < 256
        ret[elem] += 1
    ret = ret / np.sum(ret)
    return ret
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值