Понимание деталей метода оценки модели классификации.

Возможно, вы достаточно долго работаете в отрасли в качестве Data Scientist, потеряли свои заметки или стремитесь им стать. Эта статья будет напоминанием для некоторых или для того, чтобы узнать, что на самом деле представляет собой метод оценки модели. После обучения моделей классификации машинного обучения следующей наиболее важной частью является оценка вашей модели, чтобы увидеть, как она работает, что можно оценить с помощью метода оценки модели, поэтому мы должны, по крайней мере, понять ее. В некоторых случаях это будет просто восприниматься как должное и использоваться, не зная, что это на самом деле означает, пока F-Score растет.

В этой статье объяснения метода оценки модели классификации, упомянутого в заголовке, разбиты на пять разделов, которые можно увидеть ниже:

  1. Понять, как читать матрицу путаницы.
  2. Внедрение матрицы путаницы с нуля.
  3. Понимание точности, точности, полноты и F-показателя для двоичной классификации.
  4. Понимание различий между микро-, макро- и средневзвешенной точностью и полнотой для мультиклассификации.
  5. Реализуйте точность, точность, полноту и F-оценку для любой модели классификации с нуля!

Используемый набор данных будет полностью составлен, и его можно сгенерировать из приведенного ниже кода:

Код случайным образом сгенерирует 100 экземпляров данных с равным распределением между классами (собака, кошка и человек).

1. Поймите, как читать матрицу путаницы

Прежде чем приступить к объяснению, мы начнем с нескольких определений:

  1. Истинный положительный результат (TP): фактически положительный и классифицируется как положительный
  2. Ложноположительный результат (FP): на самом деле отрицательный, но классифицируется как положительный
  3. Ложноотрицательный (FN): фактически положительный, но классифицируется как отрицательный
  4. Истинный отрицательный результат (TN): фактически отрицательный результат и классифицирован как отрицательный

Здесь, если вы посмотрите на пример 1 (бинарная схема), мы можем четко различить, какие из них являются истинно положительными (TP), ложноположительными (FP), ложноотрицательными (FN) и истинно отрицательными (TN) в схеме, которая равна 20, 5, 3, 15 соответственно.

Но это не относится к модели с несколькими классификациями.

Для модели с несколькими классификациями матрица путаницы строится как таковая в примере 2 с разделенными областями. Разделенные области являются истинно положительными (ЗЕЛЕНЫМИ), которые всегда будут диагоналями матрицы, ложноположительными (КРАСНЫМИ) ниже диагоналей и ложноотрицательными (СИНИМИ) над диагоналями.

ПРИМЕЧАНИЕ. Не путайте прогнозируемую и фактическую оси. На протяжении всей этой статьи Прогнозное значение будет располагаться по оси X, а Фактическое — по оси Y.

2. Внедрение матрицы путаницы с нуля

Ниже приведен код для создания матрицы путаницы!

Функция confusion_matrix(draw = True) создаст матрицу путаницы, используя библиотеку Seaborn как таковую (см. пример 3).

3. Понимание точности, отзыва, точности и F-оценки для двоичной классификации

Чтобы убедиться, что мы находимся на одной странице, давайте рассмотрим некоторые определения ниже:

  1. Точность: измеряет процент случаев, когда классификатор является правильным.
  2. Отзыв: доля истинно положительных случаев среди всех положительных случаев.
  3. Точность : доля истинно положительных случаев среди всех прогнозированных положительных случаев (независимо от истинности или ложности).
  4. F-Score : показатель точности классификатора путем равного взвешивания точности и полноты. Или гармоническое среднее точности и полноты модели в формальном определении.

Если мы посмотрим на пример 1 (двоичный пример), по приведенной выше формуле результаты будут следующими:

4. Понимание микро-, макро- и средневзвешенной точности и отзыва для модели с несколькими классификациями

К счастью, определения для измерения методов оценки будут такими же. Разница лишь в том, что классов больше двух.

Из трех методов усреднения макроусреднение является наиболее простым, взвешенное усреднение — вторым, а микроусреднение — последним. Следовательно, это также будет объяснено в соответствующем порядке.

Макро-усреднение

Это вычисляет точность и полноту каждого соответствующего класса и делит их на количество прогнозируемых результатов.

С точки зрения непрофессионала, Макро-усредненная точность — это просто сумма точности каждого класса, деленная на количество классов. Более подробная информация будет представлять собой сумму Истинно положительных результатов (TP), деленную на сумму столбцов (Истинно положительных и всех ложноположительных результатов) каждого класса.

То же самое относится и к макроусредненному отзыву, с той лишь разницей, что он делится на сумму строк (истинно положительные и все ложноотрицательные).

Если классы распределены неравномерно, избегайте использования макроусреднения, так как оно не будет работать оптимально из-за его зависимости от глобального распределения классов.

взвешенное усреднение

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

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

Если классы распределены неравномерно, это обычный метод оценки, поскольку он учитывает соотношение каждого класса для его точности и полноты.

Микроусреднение

Этот метод усреднения соответствует подходу один против остальных, поскольку он вычисляет точность и полноту для каждого класса True (правильно предсказывает фактическое значение) и False (прогнозируемый класс не равен к фактическому, независимо от того, какой неправильный класс он предсказал).

Если вы посмотрите на пример 4, микро-усреднение на самом деле не заботится о том, к какому классу относятся ложноотрицательные или ложноположительные результаты. Именно это имелось в виду под подходом «один против остальных».

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

5. Внедрите функции Accuracy, Precision, Recall и F-score с нуля

Точность

По формуле №1 мы могли бы вычислить точность, просуммировав диагонали матрицы (или трассы, говоря статистически) и разделив ее на количество экземпляров!

Точность и отзыв

Используя numpy, мы можем легко вычислить различные методы оценки! Эта функция будет следовать методу по умолчанию микро, в отличие от scikit-learn, который имеет метод по умолчанию взвешенный.

F-оценка

Следуя F-Score в формуле № 1, мы можем легко реализовать ее с нуля, поскольку расчеты не меняются, если модель является двоичной или мультиклассовой.

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

Теперь функция действительно завершена!

Пример результата из созданного набора данных

Вот как вы можете его использовать:

и распечатает результаты, как показано ниже:

Здесь мы видим, что средневзвешенное значение имеет более высокий F1-Score, поэтому мы, естественно, выберем его. Но не забудьте понять, почему он оценивается выше, чем другие, посмотрев на распределение прогнозов и фактическую правду!

Заключение

Если вы достигли этого момента, поздравляем! Теперь вы можете реализовать метод оценки классификации с нуля в Python.

Это подводит итог метода оценки трех усреднений и того, как его реализовать с нуля! Каждый из этих методов оценки следует использовать в соответствии с распределением классов, поскольку все они имеют разные свойства.

Гитхаб: https://github.com/gilberthputra

Портфолио: https://gilberthputra.github.io/Portfolio/

LinkedIn: https://www.linkedin.com/in/gilbert-putra/

ВНИМАНИЕ: Портфолио не часто обновляется! Я постараюсь обновлять его как можно чаще.

Приложение

Полный код