"Оценка F1 в машинном обучении: введение и расчет"
Машинное обучение — это динамическая область, в которой используются алгоритмы и статистические модели для анализа данных и прогнозирования. Он стал важным инструментом для решения сложных проблем в различных отраслях, включая финансы, здравоохранение и технологии.
Глубокое обучение, подмножество машинного обучения, использует искусственные нейронные сети для решения задач распознавания изображений и речи, обработки естественного языка, автономного вождения и т. д. Алгоритмы, используемые в глубоком обучении, показали замечательную точность в решении сложных задач, в некоторых случаях превосходя традиционные методы машинного обучения.
Оценка производительности алгоритмов обучения является важным аспектом понимания их возможностей. Исторически точность была единственным показателем, используемым для сравнения моделей. Однако эта метрика вычисляет только количество правильных прогнозов, сделанных моделью по всему набору данных, что применимо только в том случае, если данные равномерно распределены по разным классам.
Преодоление недостаточной точности
Неадекватность точности как единственного показателя оценки возникает, когда распределение классов в наборе данных несбалансировано. В таких случаях модель, которая просто все время предсказывает класс большинства, может по-прежнему достигать высокой точности, хотя на самом деле работает плохо. Например, в задаче бинарной классификации, где 90 % экземпляров принадлежат классу A, а 10 % принадлежат классу B, модель, которая всегда предсказывает класс A, будет иметь точность 90 %, при этом будут отсутствовать все экземпляры класса B.
Оценка F1 была впервые введена в 1979 году как способ устранения ограничений точности в таких сценариях.
Что такое оценка F-1?
Оценка F1 является широко используемой метрикой для оценки производительности моделей машинного обучения, особенно в области бинарной классификации. Это баланс между точностью и полнотой, которые являются важными факторами, определяющими эффективность классификатора.
Оценка F1 учитывает как истинные положительные результаты, так и ложные положительные результаты, обеспечивая более полную картину производительности модели, чем полагаясь только на точность. Таким образом, оценка F1 может помочь выявить такие проблемы, как несбалансированные классы, когда модель может достичь высокой точности, просто предсказав класс большинства. Учитывая как точность, так и полноту, оценка F1 дает более детальное представление о производительности модели.
Как рассчитать балл F1?
Матрица путаницы — полезный инструмент для оценки эффективности модели бинарной классификации. Он состоит из четырех компонентов:
- Истинный положительный результат (TP) относится к количеству случаев, когда модель правильно идентифицирует положительный класс.
- Ложное срабатывание (FP) относится к количеству случаев, когда модель предсказывает положительный класс, но на самом деле он отрицательный.
- Истинно отрицательный (TN) относится к количеству случаев, когда модель правильно идентифицирует отрицательный класс.
- Ложноотрицательный (FN) относится к количеству случаев, когда модель предсказывает отрицательный класс, но на самом деле он положительный.
Эти компоненты позволяют нам рассчитать несколько показателей, включая точность, точность, полноту и оценку F1.
Теперь давайте определим точность и полноту. Точность — это доля истинных положительных прогнозов (то есть количество правильных положительных прогнозов) от всех положительных прогнозов, сделанных моделью.
Напомним, с другой стороны, это доля истинных положительных прогнозов от всех фактических положительных случаев в наборе данных. И точность, и полнота варьируются от 0 до 1, причем более высокое значение указывает на лучшую производительность.
Формула для оценки F1:
Оценка F1 уравновешивает компромисс между точностью и отзывом, беря среднее гармоническое обоих показателей. Высокая точность означает меньшее количество ложных срабатываний, а высокая полнота означает меньше ложных отрицательных результатов. Оценка F1 представляет собой единую меру для оценки производительности модели, учитывающую оба аспекта.
Расчет F1-показателя
Возьмем задачу бинарной классификации со 100 наблюдениями, где наша модель правильно предсказывает 80 из них. Из 80 правильных предсказаний 70 истинно положительные (tp) и 10 истинно отрицательные (tn). С другой стороны, 20 прогнозов оказались неверными, из них 15 — ложноположительные (fp) и 5 — ложноотрицательные (fn).
Теперь мы можем рассчитать точность, отзыв и оценку F1 следующим образом:
Точность = (истинные положительные результаты) / (истинные положительные результаты + ложные положительные результаты) = 70 / (70 + 15) = 0,82.
Отзыв = (Истинно положительные результаты) / (Истинно положительные результаты + Ложноотрицательные результаты) = 70 / (70 + 5) = 0,93
Оценка F1 = 2 * (точность * полнота) / (точность + полнота) = 2 * (0,82 * 0,93) / (0,82 + 0,93) = 0,87
Оценка F1 для этой модели составляет 0,87, что указывает на то, что модель имеет хороший баланс между точностью и полнотой.
Как вычислить показатели F1 в Python?
Помимо оценки F1, также важно понимать точность и полноту нашей модели. Вот пример того, как вычислить точность и полноту в Python с помощью sklearn. библиотека метрик:
from sklearn.metrics import precision_score, recall_score # Calculate precision precision = precision_score(y_true, y_pred) print(precision) # Calculate recall recall = recall_score(y_true, y_pred) print(recall)
В этом примере истинные метки — y_true, а предсказанные метки — y_pred. Функции Precision_score и Recall_score используются для вычисления точности и полноты соответственно, которые затем распечатываются.
Оценка F1 рассчитывается с помощью функции f1_score в sklearn. metrics в Python.
from sklearn.metrics import f1_score # True labels y_true = [1, 0, 1, 1, 0, 1] # Predicted labels y_pred = [1, 0, 0, 1, 0, 1] # Calculate F1 score f1 = f1_score(y_true, y_pred) print(f1)
Вот простой пример, демонстрирующий использование оценки F1 в реальном сценарии.
Допустим, мы работаем над проблемой выявления мошеннических транзакций по кредитным картам. Набор данных состоит из списка транзакций по кредитным картам, и мы должны предсказать, является ли каждая транзакция подлинной или мошеннической. Мы обучим модель бинарной классификации на этом наборе данных и будем использовать показатель F1 для оценки производительности модели.
from sklearn.metrics import f1_score y_true = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1] # True labels (0 = genuine, 1 = fraudulent) y_pred = [0, 0, 1, 0, 1, 0, 1, 1, 1, 1] # Predicted labels f1 = f1_score(y_true, y_pred, average='binary') print("F1-score:", f1)
В приведенном выше коде с помощью f1_score мы вычисляем F1-оценку для прогнозов модели. Переменная y_true содержит истинные метки (0 = подлинный, 1 = мошеннический), а переменная y_pred содержит предсказанные метки. Среднему параметру присваивается значение «двоичный», чтобы указать, что это проблема бинарной классификации. Наконец, распечатывается оценка F1, и мы можем использовать эту метрику для оценки производительности модели.
Оценка F1 обеспечивает баланс между точностью и отзывом, что важно в сценариях, где ложноотрицательные (мошеннические транзакции, которые не были обнаружены) и ложноположительные результаты (подлинные транзакции, помеченные как мошеннические) имеют разные последствия.
Заключение
В заключение, оценка F1 играет решающую роль в оценке моделей машинного обучения, особенно в задачах бинарной классификации, где решающее значение имеет баланс между точностью и отзывом. Эта метрика обеспечивает гармоничную оценку производительности модели, учитывая как точность, так и полноту, что делает ее ценным инструментом для специалистов по обработке и анализу данных при принятии обоснованных решений о выборе и оптимизации модели. Оценка F1 широко используется в различных отраслях, включая здравоохранение, финансы и маркетинг, для оценки эффективности моделей в диагностике заболеваний, обнаружении мошенничества и определении целевых клиентов.