ohem算法
‘壹’ 样本不平衡及其解决办法
样本不平衡问题在分类模型中可能会导致对少数类的预测精度下降,尽管整体精度看似高,但在实际应用中可能并不理想。一个常见的示例是通过make_classification创建的n类数据集,其中类别分布密集,易于分类,但实际工作中可能遇到类别分布不均的情况。
为了解决这个问题,imbalanced-learn库提供了丰富的工具。其中包含重采样方法,如欠采样和过采样。欠采样策略如随机欠采样、NearMiss算法(通过距离计算选择样本)、ENN(删除不一致的多数类样本)、RENN(重复上述过程)、Tomek Link Removal(删除形成链接的多数类样本)等。过采样则通过增加少数类样本,如随机过采样、SMOTE(通过插值生成样本)、BorderlineSMOTE(区分safe、danger和noise样本)、以及ADASYN(根据近邻样本分配生成样本数量)。
数据增强也是另一种策略,如在图像领域对样本进行几何变换和像素变换,以及在文本领域使用特定模型增强数据。从损失函数出发,可以使用带权值的损失函数,如在逻辑回归和SVC模型中调整权重,或者采用focal loss,通过调整样本权重来平衡模型对难易分类的处理。在目标检测领域,OHEM(One-Hot Encoding Loss)则聚焦于挖掘困难负样本。
选择对样本不平衡不敏感的模型,如树模型,或者结合采样与集成学习,如EasyEnsembleClassifier和balance cascade算法,可以改善模型性能。异常检测方法也被用来识别数据集中的异常数据。评价样本不平衡问题时,除了传统的Accuracy、Precision、Recall和F1,还可以通过ROC曲线、AUC、R-P曲线和AUPRC来衡量模型性能。