鉴于我有一个深度学习模型(从前同事那里移交)。由于某些原因,缺少训练/开发集。
在我的情况下,我想将数据集分为100个类别。数据集极不平衡。数据集的大小约为数千万
首先,我运行模型并获得整个数据集的预测。
然后,我对每个类别抽取100条记录(根据预测),并得到10,000个测试集。
接下来,我为测试集标记每个记录的基本事实,并计算每个类别的精度,召回率,f1,并得到F1-micro和F1-macro。
如何估算整个数据集的准确性或其他指标?我使用每个类别的精度的加权总和(权重是整个预测的比例)进行估算是否正确?
由于预测类别的分布与真实类别的分布不同,我认为加权方法不起作用。有人可以解释吗?
答案 0 :(得分:0)
如果您采用加权平均值,那么问题在于,如果您的分类器在多数班上表现良好,但在少数班上表现不佳(这是典型的情况),则不会反映在分数中。
推荐的方法之一是使用平衡的准确性评分(有关scikit学习实施,请参见here)。基本上,它是所有召回分数的平均值:对于一个班级中的每个观察,它会检查正确分类的人数,并在所有班级中将其平均。这样可以为您提供合理的总体评分。