Как отобразить матрицу недоразумений и отчет (отзыв, точность, измерение) для каждой перекрестной проверки - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь выполнить 10-кратную перекрестную проверку в python.Я знаю, как рассчитать матрицу путаницы и отчет для сплит-теста (например, сплит 80% обучения и 20% тестирования).Но проблема в том, что я не знаю, как рассчитать матрицу путаницы и составить отчет для каждого сгиба, например, когда сгиб-10, я просто знаю код для средней точности.

1 Ответ

0 голосов
/ 07 марта 2019

Вот воспроизводимый пример с данными о раке молочной железы и 3-кратным CV для простоты:

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix, classification_report
from sklearn.model_selection import KFold

X, y = load_breast_cancer(return_X_y=True)
n_splits = 3
kf = KFold(n_splits=n_splits, shuffle=True)
model = DecisionTreeClassifier()

for train_index, val_index in kf.split(X):
    model.fit(X[train_index], y[train_index])
    pred = model.predict(X[val_index])
    print(confusion_matrix(y[val_index], pred))
    print(classification_report(y[val_index], pred))

В результате получено 3 матрицы путаницы и классификационные отчеты, по одному на каждый раз CV:

[[ 63   9]
 [ 10 108]]
              precision    recall  f1-score   support

           0       0.86      0.88      0.87        72
           1       0.92      0.92      0.92       118

   micro avg       0.90      0.90      0.90       190
   macro avg       0.89      0.90      0.89       190
weighted avg       0.90      0.90      0.90       190

[[ 66   8]
 [  6 110]]
              precision    recall  f1-score   support

           0       0.92      0.89      0.90        74
           1       0.93      0.95      0.94       116

   micro avg       0.93      0.93      0.93       190
   macro avg       0.92      0.92      0.92       190
weighted avg       0.93      0.93      0.93       190

[[ 59   7]
 [  8 115]]
              precision    recall  f1-score   support

           0       0.88      0.89      0.89        66
           1       0.94      0.93      0.94       123

   micro avg       0.92      0.92      0.92       189
   macro avg       0.91      0.91      0.91       189
weighted avg       0.92      0.92      0.92       189
...