Рассмотрим основные метрики классификации, которые раскроют сильные и слабые стороны вашей модели и станут отправной точкой при выборе направления ее корректировки.
Сначала перечислим их, а потом на примере рассчитаем вручную:
Полнота/чувствительность (Recall, True Positive Rate, Sensitivity) - отношение правильно определенных положительных случаев ко всем положительным (показывает какую часть положительных случаев модель правильно классифицирует).
Прецизионность (Precision) - отношение правильно определенных положительных наблюдений ко всем определенным как положительные.
f1−score - отношение удвоенного произведения precision и recall к их сумме.
Специфичность (Specificity, True Negative Rate) - отношение правильно определенных отрицательных случаев ко всем отрицательным (показывает какую часть отрицательных случаев модель правильно классифицирует).
На основе указанных выше показателей вычисляются аналогичные метрики для всего набора при выборе разных стратегий обобщения, например, взвешивая каждый класс одинаково (macro avg) или пропорционально представительству в данных (weighted avg).
Точность (Accuracy) - отношение правильно классифицированных наблюдений ко всем.
Если в модели классификации присутствуют несколько классов, то ряд метрик (полнота, прецизионность, F1−score, специфичность) вычисляются при фиксации одного класса как положительного, а остальных - как отрицательных. В то же время другие (macro avg, weighted avg, точность) характеризуют набор данных в целом.
Рассчитаем данные метрики для классов цветов ириса (setosa, versicolor, virginica) в соответствии с приведенной ниже матрицей неточностей:
Полнота
Для каждого из классов ориентируемся на строки:
setosa = первый элемент первой строки на сумму ее элементов (в этой строке - значения из класса setosa) = 11/11 = 1
versicolor = 12/13 = 0,923
virginica = 6/6 = 1
Прецизионность
setosa = первый элемент первого столбца на сумму его элементов (в этом столбце значения, определенные как setosa из разных классов) = 11/11 = 1
versicolor = 12/12 = 1
virginica = 6/7 = 0,857
f1-score
f1-score = 2*прецизионность*полнота/(прецизионность+полнота)
setosa = 2/2=1
versicolor = 2*0.92*1/(0.92+1) = 1.84/1.92 = 0,958
virginica = 2*1*0.857/(1+0.857) = 1.714/1.857 = 0.923
Специфичность
setosa = 19/19 = 1
versicolor = 17/17 = 1
virginica = 23/24 = 0.958
macro avg
Рассчитывает среднее метрических показателей для каждого класса, взвешивая их одинаково:
полнота = (1+0,923 +1)/3 = 0.974
прецизионность = (1+1+0,857)/3 = 0.952
f1-score = (1+0.958+0.923)/3 = 2.911/3 = 0.96
weighted avg
Рассчитывает среднее метрических оценок для каждого класса, взвешивая их пропорционально представительству в сведениях:
setosa - 11/30
versicolor - 13/30
virginica - 6/30
С учетом этого:
полнота = (1*11+0.923*13+1*6)/30 = (17+12)/30 = 0.966
прецизионность = (11+13+6*0.857)/30 = (24+5)/30 = 0.966
f1-score = (11+13*0.958+6*0.923)/30 = (11+12.45+5,54)/30 = 0.966
Точность
Подсчитываем общее количество правильно классифицированных наблюдений и делим его на количество всех - 29/30 = 0.966