Классификация с помощью машинного обучения имеет множество применений, мы можем классифицировать между мертвыми и живыми (Классическая проблема Титана!), мы можем классифицировать различные типы продуктов на основе их характеристик, мы можем классифицировать различные виды животных или растений на основе их признаков. Но возникает вопрос, как оценить нашу модель. Насколько точна наша модель? Мы не можем просто сравнить каждую точку данных вручную, нам нужно придумать какое-то решение нашей проблемы. Здесь, в этой статье, я расскажу о некоторых основных показателях, используемых для оценки модели.

Точность:

Классический подход к оценке модели — проверка ее точности. Точность модели говорит нам о том, сколько наших выборок точно предсказано, формула для точности приведена ниже.

Точность проверяет, соответствует ли предсказание фактическому значению, если совпадает, возвращается 1, функция суммирования суммирует все единицы и делит на общее количество выборок. Мы можем использовать точность в scikit-learn.

из sklearn.metrics импорта precision_score

печать (accuracy_score (y_true, y_pred))

y_true — это истинные значения меток для классификации, а y_pred — прогнозируемые метки для классификации.

Матрица путаницы:

Эта матрица очень полезна для определения прогнозов. Здесь 4 раздела. TP означает истинные положительные результаты. В бинарной классификации TP — это значения, действительно классифицированные как 1. FN означает ложноотрицательные значения, те значения, которые были классифицированы как 0, но на самом деле были 1. FP означает ложноположительные значения, то есть те точки, которые на самом деле были 0, но они были классифицированы как 1. TN означает истинно отрицательный. Это количество правильно классифицированных негативов, то есть их было 0, и они были классифицированы как ноль. Эти ярлыки очень помогают нам в разработке полезных мер для оценки.

Мы можем использовать scikit-learn для вычисления матрицы путаницы.

из sklearn.metrics импортировать путаницу_матрицу

TN, FP, FN, TP = матрица_путаний (y_true, y_pred)

Сбалансированная точность:

Иногда наши данные не сбалансированы. Это означает, что в случае классификации типов растений растений 1 больше, чем растений 2. Таким образом, классическая точность может давать необъективные результаты. Эта проблема может быть решена с помощью сбалансированной точности.

Мы можем использовать scikit-learn для вычисления сбалансированной точности.

импортировать из sklearn.metrics balance_accuracy_score

печать (balanced_accuracy_score (y_true, y_pred))

Точность:

Мы можем определить точность как общее количество правильных положительных прогнозов среди общего количества прогнозов, которые были предсказаны моделью положительными. Например, модель должна предсказать, является ли вещь манго или не манго. Если он предсказывает, что есть 55 манго, но на самом деле действительно предсказано манго 45, точность составляет 45/55. Фактическая формула точности выглядит следующим образом

Мы можем рассчитать точность с помощью scikit-learn.

из sklearn.metrics импортировать precision_score

печать (precision_score (y_true, y_pred)

Отзывать:

Мы можем определить отзыв как общее количество правильных срабатываний, предсказанное общим количеством срабатываний на самом деле. Обсуждая верхний пример, если модель правильно предсказывает, что есть 55 манго, но на самом деле манго 60, то отзыв составляет 55/60. Формула для расчета отзыва следующая

Мы можем рассчитать отзыв с помощью scikit-learn.

из sklearn.metrics импортировать Recall_score

печать (отзыв_оценка (y_true, y_pred)

F1-Оценка:

Оценка модели F1 вычисляется с использованием только точности и полноты. Он измеряет производительность модели путем вычисления гармонического среднего значения точности и полноты для положительного класса меньшинства. Его значение находится в диапазоне от 0 до 1 (1 — наиболее точное значение). Он описывает сбалансированную модель активности между точностью и отзывом. Он также может быть хорошо применим к несбалансированным наборам данных, потому что это среднее гармоническое. Формула для расчета F1-счета:

Мы можем рассчитать F1-score с помощью scikit-learn.

из sklearn.metrics импортировать f1_score

печать (f1_score (y_true, y_pred))

Индекс подобия Жаккара:

Сходство Жаккара измеряет сходство между двумя наборами данных, чтобы увидеть, какие элементы являются общими, а какие разными. Сходство Жаккара рассчитывается путем деления количества наблюдений в обоих наборах на количество наблюдений в любом наборе. Формула для вычисления сходства Жаккара следующая:

Числитель вычисляет аналогичные значения между прогнозируемыми и фактическими значениями, а знаменатель вычисляет все (общие значения), которые есть. Мы можем рассчитать сходство Жаккара с помощью scikit-learn.

из sklearn.metrics импортировать jaccard_score

печать (jaccard_score (y_true, y_pred))

Заключение:

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

Библиография:

3.3. Метрики и оценка: количественная оценка качества прогнозов — документация scikit-learn 1.1.1

Сходство Жаккара — LearnDataSci

Что такое хороший результат F1? Просто объяснено (2022) (stephenallwright.com)