关于在机器学习和深度学习中class imbalance(分类不平衡)问题

在我利用神经网络训练数据的过程中发现准确率总是处于60%-70%,感觉这个不是神经网络该有的表现,我认为我的问题应该出现在神经个数控制和神经网络的层数控制以及数据集的处理(数据过于集中于某一个类)。class imbalance出现时,会导致mse(误差)最小化但是已经把最小的群体忽略掉了(因为对整体影响很小,考虑进去会导致整体误差偏大),但是小群体往往又是重要的群体,这种情况下我准备先解决class imbalance的问题。关于深度和神经个数的问题我准备利用grid search/random search方法解决。
这里对文献进行调研和反思,总结一下该问题的解决方式。进一步着手自己问题的解决。

文献1

文献名称:Class Imbalance Problem in Data Mining: Review
2013年的一篇review,较多引用,叙述清晰。
处理这类问题的方法主要分为三类:利用算法,利用数据预处理,利用特征选择这三个方法。
数据预处理:主要分为两类,第一类通过添加样本,称为过度抽样,第二类是移除样本,称为不足抽样。
算法:主要分为两类,算法修改以及新建算法,主要的方式为利用代价(cost)函数,识别为基础的算法,核心算法(比如SVM)等。
同时利用抽样的方法结合算法的优化可以更好的进行预测。

关于抽样

两种方式:under-sampling/over-sampling,两种方式可以单独使用也可以结合使用

under-sampling

最主要的方法叫做random under-sampling
这个方法通过移除种类过量的样本,这样就可以平衡各个分类之间的不平衡的现象。但是这个方法的问题在于容易丢失一些重要的信息。
如下图:
random undersample
可以看出这个方法能够随机的移除过表达的○样本,两类样本之间就会比较的均衡。

over-sampling

最主要的方法为random over-sampling
与undersampling相对,这个方法通过添加表现不足的种类样本,来平衡两者之间的不平衡关系。
如下图:
random oversampling

关于algorithm

算法的目标是优化对没有见过的数据集的表现能力。
一种算法为一类学习方法,它是通过给定特定的类来利用算法进行学习,而排斥调其他的组,这样实现对特定组的预测模型构建。
一种算法为代价敏感的学习方法,这个方法是通过最大化loss function.但是这个方法需要通过给定的数据集决定一个数据集特异的代价函数。
SVM是文献中的一种方法,暂时还未理解具体含义

关于特征(feature)选择

对于高维数据,提取有效的特征是很有效的方法,能够降低时间提升效率和准确性,但是最近才有研究特征的选择在分类不平衡的问题上的作用,具体到yahoo的一个项目中能够有效的优化,文献没有具体说明如何去优化。

示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值