F1多类标签交叉验证分数

问题描述 投票:0回答:1

我想获得每个类别(我有4个类别)和每个交叉验证对折的F1分数。 clf是我训练有素的模型,X_test是功能,y_test是测试集的标签。由于我正在进行5倍交叉验证,因此我应该在第一张上获得4个F1分数,在第二张上获得4个F1分数……总共20个。我能以一种简单的方式在python中这样做吗?] >

下面的代码行将为我提供所有类别的平均F1,每折只有5个值。我在cross_val_score(scoring)中检查了变量https://scikit-learn.org/stable/modules/model_evaluation.html的选项,似乎我无法在每一折中获得每个班级的F1分数(否则我可能会迷路)。

scores = cross_val_score(clf, X_test, y_test, cv=5, scoring='f1_macro')

我想获得每个类别(我有4个类别)和每个交叉验证对折的F1分数。 clf是我训练有素的模型,X_test是功能,y_test是测试集的标签。 ...

python cross-validation multilabel-classification
1个回答
0
投票

好吧,我找到了解决方案。 X是我的要素数据框,y是标签。f1_score(y_test, y_pred, average=None)为每个班级提供F1分数,而无需汇总。因此,每一次折叠,我们训练模型,然后在测试集上进行尝试。

© www.soinside.com 2019 - 2024. All rights reserved.