Перекрестная проверка используется для оценки производительности отдельных моделей или гиперпараметров в разных разделах набора данных.В конце концов, у вас нет окончательной производительности как таковой, у вас есть индивидуальная производительность каждого разделения и совокупная производительность по разделениям.Вы можете потенциально использовать tn, fn, fp, tp для каждого из них, чтобы создать агрегированную точность, отзыв, чувствительность и т. Д., Но затем вы можете просто использовать предопределенные функции для этих метрик в sklearn и агрегировать их в конце.
например
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
accs, precs, recs = [], [], []
for train_index, test_index in skf.split(x, y):
x_train, x_test = x[train_index], x[test_index]
y_train, y_test = y[train_index], y[test_index]
tfidf = TfidfVectorizer()
x_train = tfidf.fit_transform(x_train)
x_test = tfidf.transform(x_test)
clf = LogisticRegression(class_weight='balanced')
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred)
rec = recall_score(y_test, y_pred)
accs.append(acc)
precs.append(prec)
recs.append(rec)
print(f'Accuracy: {acc}, Precision: {prec}, Recall: {rec}')
print(f'Mean Accuracy: {np.mean(accs)}, Mean Precision: {np.mean(precs)}, Mean Recall: {np.mean(recs)}')