Обработка проблем несбалансированного класса с помощью коэффициента корреляции Мэтью
2 мая 2022 г.Иногда в науке о данных и машинном обучении мы сталкиваемся с проблемами несбалансированных классов. Это проблемы, когда один класс может иметь больше экземпляров, чем другой. Это делает точность плохой метрикой. Если класс A показывает 90% в нашей выборке, а другой — 10%, то мы можем просто получить точность 90%, всегда прогнозируя класс A.
Одной из метрик, помогающих решить эту проблему, является Коэффициент корреляции Мэтью (MCC), который был введен в двоичном формате Мэтьюзом в 1975 году. Прежде чем мы покажем расчет для MCC, давайте сначала вернемся к концепции матрицы путаницы. Как вы можете видеть на изображении ниже, матрица путаницы состоит из четырех ячеек, созданных путем объединения прогнозируемых значений с реальными значениями. Две из этих ячеек представляют правильные прогнозы (истинно положительные и истинно отрицательные), а другая представляет неверные прогнозы (ложноположительные и ложноотрицательные).
Коэффициент корреляции Мэтью рассчитывается следующим образом:
MCC принимает значения от -1 до 1. Оценка 1 указывает на полное соответствие. Но как MCC соотносится с другими популярными показателями несбалансированных классов?
Коэффициент корреляции Мэтью против оценки F1
F1-score – еще один очень популярный показатель для проблем с несбалансированным классом. Оценка F1 рассчитывается как:
Таким образом, это просто гармоническое среднее точности и полноты. Согласно статье, MCC имеет два преимущества по сравнению с F1-оценкой.
- F1 меняется при смене класса, а MCC остается неизменным, если положительный класс переименовывается в отрицательный, и наоборот.
- F1 не зависит от количества образцов, правильно классифицированных как отрицательные.
Поэтому утверждается, что MCC является полной мерой по сравнению с F1.
Коэффициент корреляции Мэтью против каппы Коэна
[Каппа Коэна] (https://thedatascientist.com/performance-measures-cohens-kappa-statistic/) – одна из моих любимых мер, о которой мы писали в этом блоге. Это отличный показатель для несбалансированных проблем класса. В этом статье сравниваются две метрики. Приводится аргумент в пользу МКЦ, но я лично считаю, что он слишком теоретический. Я обнаружил, что на практике обе метрики дают одинаковые результаты, и я использую обе во всех своих проектах.
Использование MCC в Python и R
Использовать MCC в python очень просто. Вы можете просто использовать API метрик Scikit Learn. Центр клиентов можно выполнить с помощью функции matthews_corrcoef. В R вы можете использовать функцию mcc из mltools пакет.
Ранее опубликовано [здесь] (https://thedatascientist.com/metrics-matthews-correlation-coefficient/).
Оригинал