sklearn.metrics.precision_recall_fscore_support输出解读

1 投票
1 回答
910 浏览
提问于 2025-04-18 12:31

我正在使用sklearn来计算一个二分类项目的精准率和召回率。

scores = cross_validation.cross_val_score(clf, numpy.asarray(X_features), numpy.asarray(Y_targets), \
                            cv = 5, score_func = metrics.metrics.precision_recall_fscore_support )

我使用的评分函数是metrics.metrics.precision_recall_fscore_support

下面是部分输出结果:

[[[  0.95652174   1.        ]
  [  1.           0.95348837]
  [  0.97777778   0.97619048]
  [ 44.          43.        ], ......]

第一行是精准率,第二行是召回率。
但是因为这是一个二分类问题,我想知道哪一列是代表“0”类,哪一列是代表“1”类?如果是多分类问题,比如“0”、“1”、“2”,那么sklearn是怎么排列输出的类别的呢?

1 个回答

2

在使用fit()这个方法的时候,你可以通过分类器模型的classes_属性来获取对应的类别,顺序是一样的(比如说:my_model.classes_)。

但在你的情况下,这个属性不可用,所以你可以使用numpy.unique(Y_targets)来获取类别。这是一个内部使用的相同方法,所以得到的顺序也是一致的。

撰写回答