问题:真实世界的数据分布不一定均衡,那为什么大多数ML/DL要做数据均衡?
答案:根据场景来决定是否要数据均衡
场景1: 癌症二分类
真实数据分布是:绝大多数人没有癌症,极少数人有癌症;如果不做数据均衡,那么一个ML分类器会倾向于把所有样本判断成没有癌症,即全是漏报,没有误报
在辅助医生诊断时,显然是不行的:可以有误报,尽量没有漏报;
所以在训练模型时要做数据均衡。
场景2: 英文字母识别
真实数据分布不是均匀分布,高频字母例如e,低频字母例如v;
如果做数据均衡,那么训练后的分类器对于每个字母分类错误的概率都是一样的;
如果不做数据均衡,那么训练后的分类器对于每个字母分类错误的概率不一样,错误概率的分布应该是接近字母的分布;
所以要根据场景做选择,例如做文本识别,高频字母识别准确率比低频字母准确率更重要,所以不能做数据均衡。
总结
分类错误概率的分布和训练数据的分布具有一致性,所以要不要做数据均衡,要由场景来决定。
数据均衡方法
如果要做数据均衡,可以从以下几个方面考虑:
- 数据上采样/下采样
- NN:Focal Loss
- NN:二分类时,可以调整分类阈值
- 数据合成:SMOTE算法,利用小众样本在特征空间的相似性来合成新样本