如何使用 scikit 的准确度得分或混淆矩阵的准确度打印 f1 得分?

数据挖掘 Python scikit-学习 多类分类 准确性 f1score
2022-02-21 06:41:38

我想打印 f1 分数。我对 f1-accuracy score 和 accuracy score 的措辞感到困惑。这 2 个 scikit-learn 指标有什么区别?如何从这段代码中打印出 f1 分数?

from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score, classification_report
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

df = pd.read...path
X = df.drop('pricing_class', axis=1)
y = df.pricing_class

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

xgb_classification = XGBClassifier(random_state=42)
xgb_classification.fit(X_train,y_train)

xgb_results=xgb_classification.predict(X_test)
print(classification_report(xgb_results,y_test))
print('accuracy_score',accuracy_score(xgb_results, y_test))

这是一个测试样本:

在此处输入图像描述

问题 1:在 f1-score 列下有准确率行。这是 scikit-learn 分类报告的 f1-score 吗?或者这是准确度得分?

我有一种感觉,这个值是下面行的 accuracy_score 的舍入值(当我使用完整数据集时)。

问题 2:如何打印 f1 分数?

1个回答

使用f1_score而不是分类报告:

from sklearn.metrics import f1_score

...

print('f1_score', f1_score(xgb_results, y_test))