Я только что закончил четвертую неделю «Машинного обучения Zoomcamp 2022» Алексея Григорева, и чтобы поделиться своими заметками и прогрессом, я буду делать это через эту среду. Еженедельные статьи, написанные в виде интервью, в которых рассматриваются основные темы, изученные за неделю, а также другие общие положения курса или рекомендации по заданиям или проектам. Надеюсь, вам понравится, и любые отзывы будут приветствоваться.

-С возвращением, Манчи, приятно снова видеть вас здесь, пришло время поговорить о четвертой неделе этого Zoomcamp под названием Метрики оценки для классификации, какие уроки принесет нам эта неделя ?

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

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

· Какое значение точности необходимо, чтобы считать модель достаточно хорошей?

· Какие другие показатели можно использовать для измерения производительности модели?

· Всегда ли правильно использовать точность для измерения правильной работы модели и когда эта мера может привести к неправильному толкованию?

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

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

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

Когда я говорю «правильные прогнозы», я имею в виду значения, которые были предсказаны как положительные и положительные (Истинно положительные) и значения, которые были предсказаны как отрицательные и отрицательные (Истинно отрицательные). Значение этой метрики может быть в диапазоне от 0 до 1, так как по мере того, как делаются более правильные прогнозы, значение точности будет ближе к единице, в противном случае оно будет ближе к нулю.

-Итак, можем ли мы всегда полагаться на этот показатель (точность), чтобы узнать, насколько хороша наша модель?

Ответ — да и нет, на многие вопросы можно ответить «зависит от», и этот не исключение. Давайте подумаем о следующем случае: одним из элементов, который мы можем изменить в нашей модели классификации, является порог принятия решения, значение также в диапазоне от 0 до 1, которое будет определять, является ли вероятность принадлежности к одному из двух классов. достаточно для того, чтобы запись была отнесена к определенному классу.

Давайте включим числа, чтобы сделать пример более понятным, к одной из наших записей модель предсказала вероятность 0,6 принадлежности к положительному классу с порогом принятия решения 0,5, поскольку вероятность больше или равна порогу принятия решения, тогда что запись будет помечена как положительная, если бы вероятность была меньше 0,5, то эта запись была бы классифицирована как отрицательная, пока все ясно?

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

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

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

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

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

Напомним, что формула будет правильным прогнозом по общему количеству прогнозов или истинно положительным плюс истинно отрицательным по общему количеству прогнозов. Как предполагается в сбалансированных данных, тогда у нас будет только истинно положительный результат, потому что в нашем примере мы не классифицировали ни один из них как отрицательный, и мы ожидаем, что они будут только половиной прогнозов, а другая половина будет ложноположительной, поскольку они неправильно классифицируются, поэтому получается (TP + TN) / n или (0,5 + 0) / 1.

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

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

-Теперь я понимаю, поэтому лучшим показателем было бы учитывать не только правильные прогнозы (истинно положительные и истинно отрицательные), но и ошибки (ложноположительные и ложноотрицательные), я прав?

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

Значения каждого из пересечений могут быть целыми значениями или пропорциями к общему количеству прогнозов, таким образом, легче визуализировать, сколько правильных прогнозов мы получили, глядя на диагональ (TN и TP) сверху слева направо. ищем, чтобы это число было очень близко к 1 (если у нас есть значения, пропорциональные сумме), а другая диагональ (FP и FN), от верхнего правого до нижнего левого, была как можно ближе к нулю или имела меньше неверных прогнозов.

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

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

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

Настало время упомянуть метрики «точность» и «отзыв», они будут служить дополнением к «точности», и мы можем использовать таблицу путаницы, чтобы найти необходимые значения для уравнений.

Во-первых, давайте опишем метрику точности, которая измеряет долю правильных положительных прогнозов, для этого нам нужно будет только рассмотреть положительный класс, второй столбец матрицы путаницы (или таблицы) и значения True Positive и Ложно положительный. В результате уравнение точности в TP / TP + FP. Эта метрика дает нам способ количественно оценить производительность модели, чтобы правильно классифицировать прогнозы для положительного класса, и с ее помощью можно получить более подробные результаты, а не точность.

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

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

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

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

-Из метрик, изученных на этой неделе, больше всего мое внимание привлекла кривая ROC и ее площадь под кривой (AUC ROC). Я всегда осознавал силу графиков для понимания концепций и поведения. можете немного рассказать об этом показателе?

Конечно, кривая ROC (рабочая характеристика приемника) представляет собой графическое представление двух других показателей: FPR (коэффициент ложных срабатываний) и TPR (TPR).

FPR представляет собой долю ложноположительных результатов среди общего числа негативов, общее количество негативов состоит из истинно негативных и ложноположительных результатов, что приводит к уравнению в FP / FP + TN, если бы мы вспомнили нашу матрицу путаницы, то мы бы поместили себя в значениях первой строки. Если нам нужна более высокая производительность модели, то мы ожидаем, что это значение TPR будет достаточно близко к нулю, и минимизируем эту функцию, чтобы мы не генерировали много положительных прогнозов с их истинными значениями. отрицательные.

В случае TPR, о котором мы уже упоминали, это метрика отзыва, которая представляет собой долю истинно положительных результатов, деленную на общее количество положительных результатов, и которая также переводится во вторую строку матрицы путаницы, что приводит к уравнению ТП/ТП+ФН. Если нам нужна более высокая производительность модели, то мы должны искать это значение, достаточно близкое к единице, чтобы мы не генерировали прогнозы отрицательных значений для наблюдений с истинными положительными значениями.

Кривая ROC представляет собой точное графическое представление этих двух показателей (TPR на вертикальной оси и FPR на вертикальной оси) при различных значениях порога принятия решения о классификации модели. Затем эта кривая будет охватывать все пороги принятия решений от 1 до 0 и найдет на ней различные значения, которые будут принимать показатели FPR и TPR.

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

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

Кое-что, что я хотел бы добавить, — это интерпретация площади под кривой ROC (AUC ROC), которая переводится как вероятность того, что положительная запись, выбранная случайным образом, имеет более высокое значение вероятности, чем отрицательная запись, также выбранная случайным образом. Для нашей идеальной модели мы сказали, что у нас будет AUC, равная 1, а для случайной модели — AUC, равная 0,5, поэтому модель с приблизительным AUC, равным 0,8, можно считать невероятно эффективной моделью.

-Последняя тема, затронутая на этой неделе, — перекрестная проверка, для чего она нужна и из чего она состоит?

Этот метод часто используется на этапе настройки параметров, когда мы ожидаем выбрать наилучшие параметры для повышения производительности нашей модели. Перекрестная проверка состоит из разделения нашего полного обучающего набора данных на k разделов, обучения модели на k -1 разделах и ее оценки на оставшемся подмножестве. Затем мы оцениваем одну и ту же модель на всех различных k подмножествах данных и оттуда получаем среднее значение площади под кривой ROC и стандартное отклонение для всех разделов или складок, таким образом мы можем подтвердить, имеет ли наша модель аналогичные производительность среди различных наборов данных.

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

-И, наконец, как я могу получить доступ к Machine Learning Zoomcamp 2022?

Всю соответствующую информацию можно найти по следующей ссылке:



Или в социальных сетях Алексея Григорьева:

  • Линкедин:

https://www.linkedin.com/in/agrigorev/

  • Твиттер:

https://twitter.com/Al_Grigor?s=20&t=0GubFiiB8kfJkQPPGqaaCg