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

Алексей Михнин, 2023

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

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Оценка качества моделей машинного обучения: выбор, интерпретация и применение метрик предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Метрики качества модели для задач классификации

Метрики качества модели для задач классификации, такие как Accuracy, Precision, Recall, F1-score, ROC AUC, Log Loss и Confusion Matrix (Матрица ошибок), применяются в различных жизненных ситуациях, где необходимо оценить производительность алгоритмов классификации. Вот несколько примеров:

Медицинская диагностика: В медицине алгоритмы классификации могут использоваться для диагностики заболеваний, определения стадий рака, предсказания риска развития определенных заболеваний или идентификации патогенов. Метрики, такие как Accuracy, Precision, Recall, F1-score, ROC AUC и Confusion Matrix, могут быть использованы для оценки эффективности этих алгоритмов и улучшения точности диагностики.

Фильтрация спама: В системах фильтрации спама алгоритмы классификации используются для определения спам-писем и разделения их от легитимных сообщений. Метрики, такие как Accuracy, Precision, Recall, F1-score, ROC AUC и Log Loss, могут быть использованы для оценки производительности этих систем и определения того, насколько хорошо они фильтруют спам.

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

Рекомендательные системы: В рекомендательных системах, таких как интернет-магазины, потоковые сервисы и социальные сети, алгоритмы классификации используются для предоставления персонализированных предложений пользователям. Метрики, такие как Accuracy, Precision, Recall, F1-score и ROC AUC, могут помочь оценить эффективность рекомендаций и улучшить качество предложений.

Текстовый анализ и анализ тональности: В области анализа текста алгоритмы классификации используются для определения темы, жанра или эмоциональной окрас ки текста. Метрики, такие как Accuracy, Precision, Recall, F1-score, ROC AUC и Confusion Matrix, могут быть использованы для оценки эффективности этих алгоритмов и улучшения качества анализа.

Распознавание изображений: В задачах распознавания изображений, таких как определение объектов на фотографиях, классификация видов животных или распознавание лиц, алгоритмы классификации играют ключевую роль. Метрики, такие как Accuracy, Precision, Recall, F1-score, ROC AUC и Confusion Matrix, могут быть использованы для оценки производительности этих систем и определения областей для дальнейшего улучшения.

Классификация новостей: В задачах классификации новостей алгоритмы классификации используются для определения темы статьи, источника информации или оценки достоверности новости. Метрики, такие как Accuracy, Precision, Recall, F1-score, ROC AUC и Confusion Matrix, могут быть использованы для оценки эффективности этих алгоритмов и улучшения качества анализа.

Для некоторых метрик качества модели для задач классификации возможно определить хорошие, средние и плохие значения. Однако для других, таких как Log Loss и Confusion Matrix, такие диапазоны не могут быть определены без контекста и масштаба данных. Тем не менее, я представлю таблицу значений для некоторых из метрик:

Для Log Loss и Confusion Matrix не существует фиксированных границ для хороших, средних и плохих значений, потому что они зависят от контекста и масштаба данных. Оценка Log Loss должна проводиться в сравнении с другими моделями на том же наборе данных, а Confusion Matrix должна быть анализирована для определения различных видов ошибок, которые допускает модель.

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

Метрика 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, которые учитывают ошибки первого и второго рода.

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Оценка качества моделей машинного обучения: выбор, интерпретация и применение метрик предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я