Хобрук: Ваш путь к мастерству в программировании

Можно ли и нужно ли использовать class_weight и balanced_accuracy_score вместе для несбалансированных данных?

Если я обучаю свой классификатор (скажем, LogisticRegression()) с параметром class_weight='balanced' в scikit-learn, должен ли я использовать обычную меру точности (т. е. accuracy_score) или сбалансированную точность (т. е. balanced_accuracy_score), когда мои классы несбалансированы в наборе данных?

Другими словами, будет ли использование одного из двух параметров (во время обучения или измерения) устранять или требовать использования другого?


  • Хотя о scikit-learn, это на самом деле теоретический/методологический вопрос, а не вопрос программирования, поэтому, возможно, здесь он не по теме; Вместо этого я предлагаю опубликовать его на сайте Cross Validated. 23.03.2021
  • Имейте в виду, что class_weight не применяется при выводе (если это то, что вы подразумеваете под временем измерения). 23.03.2021
  • Не убедил ответ? 29.03.2021

Ответы:


1

Две вещи, то есть использование class_weight=balanced, и конкретная мера точности (сбалансированная или нет), которую вы выберете для оценки своих результатов, на самом деле не имеют отношения к ним.

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

Использование class_weight, с другой стороны, повлияет на то, как алгоритм взвешивает выборки, принадлежащие к разным классам, для вычисления потери во время обучения, вот и все; он не применим во время логического вывода (когда классы фактически неизвестны) и не имеет никакого отношения к тому, как (т. em> проблема, а не моделирование).

В общем, здесь в принципе допустимы все комбинации: с использованием class_weight='balanced' (отдельно или, возможно, в сочетании с sample_weight) или без использования любого из двух вариантов точности (простого или сбалансированного). Или, отвечая на поставленный в заголовке вопрос - можно, но не нужно.

Говоря о sample_weight: если вы решите использовать его с fit() метод логистической регрессии, и, кроме того, вы решили использовать сбалансированную точность (которая требует аргумент sample_weight), было бы разумно использовать общие значения для обоих; но опять же, это именно так - разумный подход, а не правило или строгое требование, и вы можете не делать этого, если у вас есть на это причины.

Позвольте мне четко пояснить, что сказанное выше проистекает из очень фундаментальных принципов; таким образом, он общеприменим и не имеет ничего конкретно общего с каким-либо внутренним устройством scikit-learn.

24.03.2021
Новые материалы

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..