假设一个两类分类问题。一个类别有超过95%的标签数据,而另一个类别有5%的标签数据。这两门课很有偏颇。
我正在做类验证来评估不同的分类器,我发现如果一个分类器故意对具有多数(95%)标签的类进行预测,即使对其他类的预测结果不准确,从精度/召回来看,很难区分,因为另一个类只有5%的标签数据。
下面是我使用的方法/度量(使用精度/召回)。我想知道是否还有其他更好的度量或方法来评估5%的小类?我给5%的小类分配了一个权重,但是我在这里要求一种更系统的方法来测量有偏见的数据集。
使用scikit learn + python 2.7。
scores = cross_validation.cross_val_score(bdt, X, Y, cv=10, scoring='recall_weighted')
print("Recall: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
scores = cross_validation.cross_val_score(bdt, X, Y, cv=10, scoring='precision_weighted')
print("Precision: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))发布于 2016-08-28 06:57:49
这是一个常见的统计问题,因此你会在互联网上找到大量的资源。检查,例如,打击不平衡训练数据的8种策略。
可能最简单的方法是重新整理数据。最简单的方法是复制少数类,直到这两个类的代表相等为止。一种统计上更好的方法是首先了解您的类的覆盖范围的概率分布,然后为每个类绘制n个样本。因此,您就有了一个平衡的数据集。
当然,这取决于您的数据--或者仅仅是从数据的无偏子集上学习。有关更多选项,请参阅本文。
https://stackoverflow.com/questions/39188687
复制相似问题