Введение:

Первый сценарий. АЗ – инженер по машинному обучению. Ему поручили разработать алгоритм, который может прогнозировать вероятность смерти от кашля. У него есть доступный ему набор данных, который включает больше отрицательных случаев и меньше положительных случаев, то есть случаев людей, которые действительно умерли от кашля. Он разрабатывает алгоритм, который при обучении на доступных данных обучается с точностью 98%, но при воздействии на данные из реальной жизни, включающие 10 умерших пациентов из 100 пациентов, алгоритм, кажется, имеет очень низкую производительность, он ошибочно классифицируется как люди, которые выжить тем, кто позже умер. Это означает, что если бы этим пациентам было назначено более подходящее лечение, возможно, они выжили бы. С другой стороны, если бы модель предсказывала, что умрут люди, которые позже выживут, больница потратила бы скудные ресурсы на неправильную группу пациентов. Ему нужно выбрать баланс между ложными положительными и ложными отрицательными результатами.

Второй сценарий: TD работает инженером по машинному обучению в кредитной линии. Ему поручено разработать модель, позволяющую прогнозировать на основе истории транзакций их клиентов их способность получать кредиты и возвращать их. Он придумывает различные модели, которые, по-видимому, имеют превосходную точность обучения, превышающую 90%, но при развертывании для коммерческого использования банк обнаруживает, что большое количество людей, которые модель одобрила кредиты для последующего дефолта, и после расследования и проверки их транзакций. истории было очевидно, что модель не должна была одобрять кредиты, но модель показала очень хорошую точность во время обучения. Ему нужно придумать способ уменьшить количество ложных срабатываний модели, чтобы сократить расходы банка на неработающие кредиты.

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

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

Хорошая модель машинного обучения, получившая достаточное количество данных определенного класса, должна быть способна точно и во многих случаях предсказывать вероятность этого класса. Поэтому, соблюдая логику приведенной выше формулы, следует ожидать, что если алгоритм обучается в течение большого количества эпох (эпохи — это количество итераций по набору данных) на данных, которые имеют 85 % одного класса A и 15% класса B, он должен иметь высокую точность вероятностей для класса A, и поэтому модель машинного обучения будет признана имеющей высокую точность, но не только это, потому что модель видел больше о классе 85 %, обычно он предсказывает все классы как класс A, поэтому, когда модель сообщает о точности 85 %, она просто имеет точность 100 % при прогнозировании класса A, но Точность 0% при прогнозировании класса B, это большая проблема, особенно когда последствия неправильной классификации класса B очень высоки.

Для решения этой задачи обычно используются новые показатели производительности модели: точность, полнота, оценка f1.

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

Напомним, с другой стороны, является мерой вероятности предсказания положительного из числа положительных результатов. Проще говоря, это просто означает, что если в наборе данных есть 100 достоверных положительных результатов, сколько из них модель предсказывает как положительные.

Оценка F1 стремится обеспечить баланс между ними, поскольку в большинстве случаев трудно решить, следует ли выбирать высокую точность или высокий отзыв.

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

Давайте рассмотрим пример, используя сценарии, описанные в начале этой заметки: модель, предсказывающая, что 3 пациента с кашлем умрут, когда на самом деле умирает 6 (напомним: 0,5), работает плохо по сравнению с моделью, которая точно предсказывает 5 из 6 случаев (напомним, : 0,83). Модель, которая делает первое, будет означать неадекватную помощь оставшимся трем пациентам, и они в конечном итоге умрут — это плохо во всех случаях.

С другой стороны, если модель предсказывает, что 4 из 6 пациентов умрут, когда умрут только 2 (точность: 0,5), в то время как другая предсказывает, что 1 пациент из 6 умрет, когда в конечном итоге умрут все 6 (точность: 1). Модель, использующая первое, означает, что больница потратит ресурсы на двух дополнительных пациентов, что в основном означает потери, а модель, использующая второе, будет означать, что она упустила возможность прогнозировать состояние здоровья пациента — ужасно плохое.

Это представляет собой проблему выбора между высокой полнотой/низкой точностью или низкой полнотой/высокой точностью, обычно это решается в зависимости от конечной цели. В условиях здоровья никогда нельзя выбирать одно в пользу другого, поэтому мы довольствуемся показателем f1, который пытается сбалансировать эти два показателя. Хороший показатель f1 равен 1, плохой — 0, средний — 0,5, поэтому чем ближе к 1, тем лучше модель.

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

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

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

С недообучением связана концепция дисбаланса данных. В этом случае набор данных, состоящий из 2 или более классов, содержит непропорциональное количество соответствующих классов в наборе данных. Это означает, что если модель обучается на наборе данных, состоящем из 90 % класса X и 10 % класса Y, она узнает больше об особенностях класса X и, поскольку класс X имеет более высокую долю, при оценке точности, модель демонстрирует довольно высокую точность обучения, но при воздействии новых данных, а точность в классе Y имеет первостепенное значение, модель работает плохо, потому что во время обучения, несмотря на точность 90 %, она просто имела точность 100 % в классе X и точность 0 % в классе X. класс Y. Мы углубимся в решение этой проблемы в последующих подзаголовках.

Методы обработки несбалансированных наборов данных:

Для решения проблемы дисбаланса наборов данных был предложен ряд методов, в том числе следующие:

  1. Избыточная выборка: как следует из названия, это просто включает передискретизацию набора данных меньшинства до баланса с количеством класса большинства. В этом случае, предполагая, что набор данных из 1000 экземпляров имеет 100 положительных экземпляров и 900 отрицательных экземпляров, что дает соотношение 90:10, положительные экземпляры передискретизируются с целью добавления дополнительных 900 экземпляров, так что в конце операции мы имеем соотношение положительных и отрицательных экземпляров в наборе данных 50:50.
  2. Недостаточная выборка: это включает в себя понижение количества выборки класса большинства, чтобы сбалансировать количество класса меньшинства. Используя пример в методе передискретизации, это включает в себя уменьшение количества мажоритарного класса с 900 до 100 экземпляров, так что окончательное соотношение положительных и отрицательных классов составляет 50:50.
  3. Генерация синтетических экземпляров классов меньшинства или большинства с использованием методов, например, SMOTE.

Но есть проблема с простой избыточной или недостаточной выборкой набора данных. Много раз, когда вы смотрите на реальные ситуации, в случайной, непредвзятой выборке данных, состоящей из положительных и отрицательных классов, едва ли можно найти баланс между положительными и отрицательными классами. Используя сценарий, описанный в первом абзаце этой статьи, совершенно нелогично ожидать, что из каждых 10 человек, у которых разовьется кашель, умрет значительное число или 50% — это редко случается (безопасно для пандемии), так как таким образом, вряд ли можно получить набор данных, в котором более 20% случаев умирают от кашля.

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

Другой способ:

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

Идея весов классов и штрафов за стоимость:

Это включает в себя использование понимания затрат, необходимых для того, чтобы делать неправильные прогнозы. Давайте посмотрим на это так:

Используя сценарий, нарисованный в начале этого произведения, пусть:

  1. Xo (мертвые) представляют класс меньшинства, в то время как ,
  2. Си (живой) представляет класс большинства.

Позволять;

  1. стоимость/ошибка предсказания Xi, когда истинное значение Xo представлено как C**, в то время как,
  2. стоимость/ошибка предсказания Xo, когда его Xi представлено C*.

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

А вот и весовые коэффициенты классов. Идея весовых коэффициентов классов заключается в том, чтобы придать больший вес классу меньшинства с учетом C** и C*, так что когда в модели представлен случай, когда человек кашляет и действительно мертв , он может предсказать так точно. При этом выходные вероятности для каждого класса учитывают соответствующую информацию о стоимости/ошибке.

Для достижения такой избыточной/недостаточной выборки с использованием весов классов алгоритмы классификационного машинного обучения всегда допускают корректировку весов классов, что обычно обозначается аргументом ключевого слова class_weight всякий раз, когда вы вызываете метод fit соответствующего алгоритма.

Подводя итоги

  1. Одной только точности никогда не бывает достаточно, чтобы использовать ее для оценки производительности модели машинного обучения.
  2. Precision, Recall, F1_Score — лучшие показатели для оценки производительности модели машинного обучения.
  3. Понимание цели модели необходимо для выбора между высокой точностью/низкой полнотой и наоборот при разработке модели.
  4. Баланс набора данных и/или другие факторы имеют большое значение для того, чему учит модель. Важно учитывать реальную возможность случайных, непредвзятых и несбалансированных данных, чтобы быть уверенным, что балансировка набора данных не вносит в него некоторую предвзятость, в дополнение к балансировке набора данных и передаче плохих данных в модель, где она обучается. неправильные пропорции между классами и плохо работают с реальными данными.
  5. Стоимость ошибки между прогнозами разных классов не всегда симметрична как таковая, важно учитывать это при подаче данных в модель. Это включает в себя понимание практической полезности алгоритма и, в большинстве случаев, также знание предметной области.

Спасибо за чтение! Меня можно найти в LinkedIn, а некоторые мои работы можно найти на моем Github, и не забудьте также оставить аплодисменты и комментарии.