正确计算Sklearn的F1得分

时间:2016-05-27 22:14:14

标签: python cross-validation

我在Python工作,我试图从我训练有素的模型中获得f1分数。文档将语法列为:

f1_score(y_true, y_pred, average='macro')

但是我无法弄清楚y_true和y_pred应该是什么。逻辑上y_true应该是y的真值,而y_pred应该是y的预测值但是根据该定义我一次只能检查一个值,我是否遗漏了某些东西,或者有没有办法检查整个y数据集?

1 个答案:

答案 0 :(得分:1)

F分数是数据集精度和召回的重量平均值。即你预测的哪一部分是真实的,你预测了哪些部分的真实性:https://en.wikipedia.org/wiki/F1_score

我相信Sklearn的函数需要y_true和y_pred的数组或标签矩阵,其中y_true是"第i个元素的实际标签" y_pred是第i个元素"的预测/分类标签。每个的顺序必须匹配!排序是允许Sklean计算所有预测的F分数而不仅仅是单个值。

e.g。如果我使用分类器/模型对5个人进行预测以获得癌症:

y_pred = [True, False, True, False, False]

我发现只有第三个人得了癌症:<​​/ p>

y_true = [False, False, True, False False]

查看Sklearn文档中的示例了解更多信息:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html