How to learn from imbalanced data

一般可选用cost sensitive learning method 来处理学习器。 也就是给不同的分类结果根据实际情况附上权重。此外对于数据的处理也很重要可用oversampling (复制class类比较少的)and undersampling(discard 类比较多的)来选取合适数据。 两种方法可以同时运用。效果会在不同的数据集上表现的不同。
■网友
可以通过bootstrapping调整成balanced。。。如果你用logistic regression的话,可以调整threshold probability。 做evaluation的时候选AUC之类的选model,而不用accuracy。其实quora有类似问题,下面很多答案已经回答很好了https://www.quora.com/In-classification-how-do-you-handle-an-unbalanced-training-set
■网友
Imbalanced data 的处理最重要的就是在training的时候将训练样本变成balanced。 random forest等一系列bagging的方法能很好的解决这个问题,例如,random forest可以调节正负label的样本数量,可以直接用training set中小样本的数量作为size,大样本的label取小样本size的一个子集。此外svm效果也不错,可以通过调节不同的class的weights来对大样本的training error进行有效控制。
■网友
@Quora


    推荐阅读