Pytorch ROC-AUC较高,但PR-AUC值非常低

Pytorch ROC-AUC较高,但PR-AUC值非常低,pytorch,precision-recall,Pytorch,Precision Recall,我正在研究DNA序列数据,并在Pytorch中使用CNN。我的数据集极不平衡 正类样本(~500) 负类样本(~150000) 所以我使用WeightedRandomSampler在向数据加载器提供数据之前对类进行过采样和平衡 我使用5倍交叉验证。当我进行一些测试运行时,我可以得到一个不错的ROC值,但PR-AUC值似乎很低 对于折叠1: 中华民国auc 0.9667848699763594 精度auc 0.055329116326074484 对于折叠2: 中华民国auc 0.84763212

我正在研究DNA序列数据,并在Pytorch中使用CNN。我的数据集极不平衡

正类样本(~500)

负类样本(~150000)

所以我使用WeightedRandomSampler在向数据加载器提供数据之前对类进行过采样和平衡

我使用5倍交叉验证。当我进行一些测试运行时,我可以得到一个不错的ROC值,但PR-AUC值似乎很低

对于折叠1:

中华民国auc 0.9667848699763594

精度auc 0.055329116326074484

对于折叠2:

中华民国auc 0.8476321207961566

精度auc 0.03307627288669479

对于折叠3:

roc auc 0.9528898540612085

精度auc 0.05020178518546394

我怀疑有很多错误的否定。由于正类样本(~500)与负类样本(~150000)相比非常低,因此模型更好地学习负类,并预测大多数测试样本为负

我试着用计算机来衡量这个积极的班级

weight = [50.0]

class_weight = torch.FloatTensor(weight).to(device)

criterion = nn.BCEWithLogitsLoss(pos_weight=class_weight)
通过这样做,几乎所有样本都被预测为阳性

我也尝试了自适应学习率,但精确回忆值似乎没有改善。 有人能指导我,让我知道提高准确度和回忆值的方法吗?

谢谢