我的数据是垃圾邮件/非垃圾邮件数据…我试图使用内置函数计算微观/宏观平均值,但得到的数字完全相同。它们都给我了:0.6666666667…这可能是真的吗?即使我更改了数据,它们给我的数字与上述不同,但宏观等于微观!我的计算方式如下:
cm= metrics.confusion_matrix(y_test,y_pred)#计算FP,FN
TP=cm[1,1]
TN=cm[0,0]
FP=cm[0,1]
FN=cm[1,0]
print cm#计算假阳性率
print "计算假阳性率"
print FP,TN,FP
print FP/float(TN+FP)
print "计算宏观平均值"
print metrics.average_precision_score(y_test, y_pred, average='macro', sample_weight=None)
print "计算微观平均值"
print metrics.average_precision_score(y_test, y_pred, average='micro', sample_weight=None)
回答:
微观和宏观平均值是为多类别问题(或至少是序列)定义的。如果你的数据是简单的二元分类(看起来是这样的),这两个值是相同的。