Оценка качества моделей машинного обучения: выбор, интерпретация и применение метрик - Михнин Алексей 2 стр.


Метрика Accuracy (Точность)

Метрика Accuracy (Точность) является одной из наиболее базовых и понятных метрик для оценки качества работы алгоритма классификации. Она измеряет долю правильно классифицированных объектов относительно общего числа объектов в наборе данных.

Метрика Accuracy рассчитывается следующим образом:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

где:

TP (True Positives) количество правильно классифицированных положительных объектов;

TN (True Negatives) количество правильно классифицированных отрицательных объектов;

FP (False Positives) количество неправильно классифицированных положительных объектов (ложные срабатывания);

FN (False Negatives) количество неправильно классифицированных отрицательных объектов (пропущенные срабатывания).

Accuracy принимает значения в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение Accuracy к 1 (или 100%), тем лучше работает алгоритм классификации.

Однако, стоит отметить, что метрика Accuracy не всегда является оптимальным выбором для оценки качества классификации, особенно если в наборе данных есть сильный дисбаланс классов. В таких случаях использование других метрик, таких как Precision, Recall или F1-score, может быть более информативным и адекватным.

Пример 1:

Пусть у нас есть 100 пациентов, из которых 90 здоровы, и 10 больны. Модель правильно классифицирует всех 90 здоровых пациентов и 10 больных пациентов. В этом случае:

TP (True Positives) = 10 (правильно классифицированные больные пациенты)

TN (True Negatives) = 90 (правильно классифицированные здоровые пациенты)

FP (False Positives) = 0 (нет ошибок при классификации здоровых пациентов)

FN (False Negatives) = 0 (нет ошибок при классификации больных пациентов)

Теперь рассчитаем Accuracy:

Accuracy = (TP + TN) / (TP + TN + FP + FN) = (10 + 90) / (10 + 90 + 0 + 0) = 100 / 100 = 1.0 или 100%

В данном примере точность модели составляет 100%.

Пример 2:

В задаче классификации картинок с котами и собаками у нас есть 1000 картинок, и модель правильно классифицировала 900 из них. Допустим, 500 картинок изображают котов, а другие 500 собак. Пусть модель правильно классифицировала 450 картинок с котами и 450 картинок с собаками. В этом случае:

TP (True Positives) = 450 (правильно классифицированные картинки с котами)

TN (True Negatives) = 450 (правильно классифицированные картинки с собаками)

FP (False Positives) = 50 (картинки с собаками, классифицированные как коты)

FN (False Negatives) = 50 (картинки с котами, классифицированные как собаки)

Теперь рассчитаем Accuracy:

Accuracy = (TP + TN) / (TP + TN + FP + FN) = (450 + 450) / (450 + 450 + 50 + 50) = 900 / 1000 = 0.9 или 90%

В данном примере точность модели составляет 90%.

Метрика Precision (Точность)

Метрика Precision (Точность) это одна из метрик качества работы алгоритма классификации, которая показывает, насколько точно модель предсказывает положительный класс. Precision фокусируется на правильно классифицированных положительных объектах и ложных срабатываниях (ложноположительные результаты).

Метрика Precision рассчитывается следующим образом:

Precision = TP / (TP + FP)

где:

TP (True Positives) количество правильно классифицированных положительных объектов;

FP (False Positives) количество неправильно классифицированных положительных объектов (ложные срабатывания).

Precision принимает значения в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение Precision к 1 (или 100%), тем точнее модель предсказывает положительный класс.

Важно отметить, что метрика Precision не учитывает ошибки второго рода, то есть пропущенные срабатывания (False Negatives). В некоторых ситуациях, особенно когда пропущенные срабатывания могут иметь серьезные последствия (например, в медицинской диагностике), лучше использовать другие метрики, такие как Recall (полнота) или F1-score, которые учитывают и ошибки первого, и второго рода.

Пример 1: В задаче определения спам-писем почты, модель может быть настроена таким образом, чтобы допустить только небольшое количество ложных срабатываний. Если модель правильно определила 10 спам-писем из 15, то точность модели для класса спам будет 66.7%.

давайте распишем пошаговое решение для метрики Precision (Точность) на примере 1:

Определите класс, для которого вы хотите рассчитать точность. В данном примере это класс "спам".

Разделите все примеры на 4 категории: True Positive (TP), False Positive (FP), True Negative (TN) и False Negative (FN). В данном примере это:

TP: модель правильно определила спам-письмо как спам (10 писем).

FP: модель неправильно определила не спам-письмо как спам (5 писем).

TN: модель правильно определила не спам-письмо как не спам (0 писем).

FN: модель неправильно определила спам-письмо как не спам (0 писем).

Рассчитайте точность как отношение TP к общему числу положительных ответов (TP + FP):

Precision = TP / (TP + FP) = 10 / (10 + 5) = 0.667 = 66.7%

Таким образом, в данном примере модель правильно определила 10 из 15 спам-писем, что соответствует точности в 66.7%.

Пример 2:

В задаче классификации новостей на две категории политика и спорт модель классифицировала 200 статей, из которых 150 статей по политике и 50 статей по спорту. Модель правильно определила 120 статей по политике и 40 статей по спорту. Однако, 30 статей по политике модель неправильно классифицировала как спортивные статьи, а 10 спортивных статей как статьи по политике. Рассчитаем метрику Precision для класса "политика".

Определите класс, для которого вы хотите рассчитать точность. В данном примере это класс "политика".

Разделите все примеры на 4 категории: True Positive (TP), False Positive (FP), True Negative (TN) и False Negative (FN). В данном примере это:

TP: модель правильно определила статью по политике как статью по политике (120 статей).

FP: модель неправильно определила спортивную статью как статью по политике (10 статей).

TN: модель правильно определила спортивную статью как спортивную (40 статей). Значение TN не важно для расчета Precision, поскольку оно не учитывается в формуле.

FN: модель неправильно определила статью по политике как спортивную статью (30 статей). Значение FN также не важно для расчета Precision.

Рассчитайте точность как отношение TP к общему числу положительных ответов (TP + FP): Precision = TP / (TP + FP) = 120 / (120 + 10) = 120 / 130 = 0.923 = 92.3%

Таким образом, в данном примере модель правильно определила 120 из 130 статей, которые были классифицированы как статьи по политике. Точность модели для класса "политика" составляет 92.3%.

Метрика Recall (Полнота)

Метрика Recall (Полнота) это одна из метрик качества работы алгоритма классификации, которая показывает, какую долю объектов положительного класса модель смогла правильно классифицировать. Recall фокусируется на правильно классифицированных положительных объектах и пропущенных срабатываниях (ложноотрицательные результаты).

Метрика Recall рассчитывается следующим образом:

Recall = TP / (TP + FN)

где:

TP (True Positives) количество правильно классифицированных положительных объектов;

FN (False Negatives) количество неправильно классифицированных положительных объектов (пропущенные срабатывания).

Recall принимает значения в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение Recall к 1 (или 100%), тем лучше модель справляется с задачей распознавания положительного класса.

Важно отметить, что метрика Recall не учитывает ложные срабатывания (False Positives). В некоторых случаях, когда ложные срабатывания могут иметь серьезные последствия, например, в задачах определения спам-писем, лучше использовать другие метрики, такие как Precision (точность) или F1-score, которые учитывают и ошибки первого, и второго рода.


Пример 1:

Пример 1: В задаче классификации писем на спам и не спам, модель должна максимизировать количество обнаруженных спам-писем. Если модель правильно определила 80 из 100 спам-писем, то полнота модели для класса "спам" будет 80%.

Давайте рассмотрим пошаговое решение для метрики Recall (Полнота) на примере 1:

Определите класс, для которого вы хотите рассчитать полноту. В данном примере это класс "спам".

Разделите все примеры на 4 категории: True Positive (TP), False Positive (FP), True Negative (TN) и False Negative (FN). В данном примере это:

TP: модель правильно определила спам-письмо как спам (80 писем).

FP: модель неправильно определила не спам-письмо как спам (20 писем).

FN: модель неправильно определила спам-письмо как не спам (20 писем).

Рассчитайте полноту как отношение TP к общему числу положительных примеров (TP + FN):

Recall = TP / (TP + FN) = 80 / (80 + 20) = 0.8 = 80%

Таким образом, в данном примере модель правильно определила 80 из 100 спам-писем, что соответствует полноте в 80%.

Пример 2: Представьте, что вы работаете аналитиком в интернет-магазине, который хочет улучшить свой алгоритм рекомендаций товаров пользователям. Вы хотите проверить, насколько хорошо работает текущий алгоритм и решаете посчитать метрику полноты для одной из категорий товаров "электроника".

Для этого вы берете случайную выборку из 200 пользователей, которые просмотрели товары в категории "электроника" на вашем сайте за последний месяц. После того, как вы применили алгоритм рекомендаций, вы получили следующие результаты:

Из 200 пользователей 120 купили хотя бы один рекомендованный товар в категории "электроника" (TP).

Из 200 пользователей 80 не купили ни одного рекомендованного товара в категории "электроника" (FN).

Рассчитайте метрику полноты (recall) для категории "электроника".

Решение:

TP = 120 (пользователи, которые купили хотя бы один рекомендованный товар в категории "электроника") FN = 80 (пользователи, которые не купили ни одного рекомендованного товара в категории "электроника")

Recall = TP / (TP + FN) = 120 / (120 + 80) = 0.6 = 60%

Метрика полноты для категории "электроника" составляет 60%. Это означает, что ваш текущий алгоритм рекомендаций смог правильно найти 60% всех пользователей, которые купили товары в этой категории за последний месяц. Вам следует анализировать результаты и работать над улучшением алгоритма, чтобы повысить метрику полноты и увеличить долю пользователей, которым будут рекомендованы интересные товары в категории "электроника".

Метрика F1-score (F-мера)

Метрика F1-score (F-мера) это совместная метрика для оценки качества алгоритма классификации, которая учитывает обе метрики Precision (Точность) и Recall (Полнота). F1-score является гармоническим средним между Precision и Recall, что делает эту метрику более сбалансированной, чем каждая из них по отдельности. F1-score особенно полезна в случаях, когда классы в данных несбалансированы или когда ошибки первого и второго рода имеют схожую важность.

Метрика F1-score рассчитывается следующим образом:

F1-score = 2 * (Precision * Recall) / (Precision + Recall)

где:

Precision = TP / (TP + FP) точность;

Recall = TP / (TP + FN) полнота;

TP (True Positives) количество правильно классифицированных положительных объектов;

FP (False Positives) количество неправильно классифицированных положительных объектов (ложные срабатывания);

FN (False Negatives) количество неправильно классифицированных положительных объектов (пропущенные срабатывания).

F1-score принимает значения в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение F1-score к 1 (или 100%), тем лучше модель справляется с задачей классификации, учитывая обе метрики Precision и Recall. Если F1-score равен 0, это означает, что модель полностью не справляется с задачей классификации.

Пример 1: В задаче определения, является ли человек носителем определенной генетической мутации, модель должна быть высоко точной и полной. Если точность модели равна 90%, а полнота 80%, то F1-score будет равен 84%.

давайте распишем пошаговое решение для метрики F1-score (F-мера) на примере 1:

Рассчитайте точность и полноту модели, используя соответствующие формулы:

Precision = TP / (TP + FP) Recall = TP / (TP + FN)

В данном примере, точность = 0.9 (или 90%) и полнота = 0.8 (или 80%).

Рассчитайте F1-score как гармоническое среднее точности и полноты:

F1-score = 2 * (Precision * Recall) / (Precision + Recall)

F1-score = 2 * (0.9 * 0.8) / (0.9 + 0.8) = 0.84 (или 84%)

Таким образом, в данном примере F1-score равен 84%.

Мы получили F1-score равный 84%, что указывает на то, что модель демонстрирует неплохую производительность с учетом обеих метрик (точность и полнота). Это позволяет оценить модель с более сбалансированной точки зрения по сравнению с использованием только одной из метрик.

Пример 2: В задаче определения, является ли новость фейковой или нет, модель должна быть высоко точной и полной. Если точность модели равна 85%, а полнота 90%, то F1-score будет равен 87.5%.

давайте рассмотрим пошаговое решение для метрики F1-score (F-мера) на примере 2:

Рассчитайте точность и полноту модели, используя соответствующие формулы:

Precision = TP / (TP + FP) Recall = TP / (TP + FN)

В данном примере, точность = 0.85 (или 85%) и полнота = 0.9 (или 90%).

Рассчитайте F1-score как гармоническое среднее точности и полноты:

F1-score = 2 * (Precision * Recall) / (Precision + Recall)

F1-score = 2 * (0.85 * 0.9) / (0.85 + 0.9) = 0.875 (или 87.5%)

Таким образом, в данном примере F1-score равен 87.5%.

Метрика ROC AUC

Метрика ROC AUC (Receiver Operating Characteristic Area Under the Curve) это метрика качества алгоритма классификации, основанная на анализе ROC-кривой. ROC-кривая представляет собой графическое представление взаимосвязи между чувствительностью (True Positive Rate, TPR) и специфичностью (False Positive Rate, FPR) классификатора при различных пороговых значениях.

True Positive Rate (TPR) или Recall (Полнота) определяется как TP / (TP + FN);

False Positive Rate (FPR) определяется как FP / (FP + TN).

ROC AUC является численным значением, равным площади под ROC-кривой. Оно принимает значения в диапазоне от 0 до 1 (или от 0% до 100%). Чем ближе значение ROC AUC к 1 (или 100%), тем лучше модель справляется с задачей классификации. Значение ROC AUC, равное 0.5, означает, что модель работает на уровне случайного предсказания, а значение, меньше 0.5, указывает на то, что модель предсказывает хуже случайного предсказания.

Преимущества использования метрики ROC AUC заключаются в том, что она не зависит от порога классификации, устойчива к несбалансированным классам и может быть использована для сравнения различных моделей классификации.

Однако стоит отметить, что ROC AUC может давать оптимистичные оценки при наличии сильно несбалансированных классов. В таких случаях рекомендуется использовать другие метрики, такие как Precision-Recall AUC, которые учитывают ошибки первого и второго рода.

Назад