Classification Report
Classification report - это отчет, который предоставляет метрики для оценки качества модели классификации. Он помогает понять, насколько хорошо модель справляется с задачей классификации путем анализа различных показателей, таких как точность, полнота, F1-мера и поддержка (support).
Для генерации classification report можно использовать функцию classification_report из библиотеки sklearn.metrics. Пример кода ниже демонстрирует использование этой функции на простом примере:
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# Загрузка датасета Iris
iris_data = load_iris()
X = iris_data.data
y = iris_data.target
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Создание и обучение модели
model = KNeighborsClassifier()
model.fit(X_train, y_train)
# Предсказание классов на тестовых данных
y_pred = model.predict(X_test)
# Генерация classification report
report = classification_report(y_test, y_pred)
print(report)
Результат выполнения кода будет выглядеть следующим образом:
precision recall f1-score support
0 1.00 1.00 1.00 8
1 0.67 1.00 0.80 2
2 1.00 0.78 0.88 9
accuracy 0.92 19
macro avg 0.89 0.93 0.89 19
weighted avg 0.95 0.92 0.92 19
В classification report представлены следующие метрики:
- precision (точность) - отношение верно классифицированного числа примеров данного класса к общему числу примеров, которые модель отнесла к данному классу.
- recall (полнота) - отношение верно классифицированного числа примеров данного класса к общему числу примеров данного класса в тестовой выборке.
- f1-score (F1-мера) - гармоническое среднее между точностью и полнотой, позволяет оценить сбалансированность модели.
- support (поддержка) - количество примеров в тестовой выборке для каждого класса.
Также, в classification report приведены значения average для каждой метрики:
- macro avg (макро среднее) - среднее значение для каждого класса без учета их дисбаланса.
- weighted avg (взвешенное среднее) - взвешенное среднее значение, учитывающее долю примеров для каждого класса в тестовой выборке.
В данном примере видно, что модель показывает высокую точность и полноту для класса 0, но имеет проблемы с классами 1 и 2, особенно в отношении полноты. F1-мера показывает сбалансированное значение для каждого класса.