Понять разницу между проблемами регрессии и классификации

[Эта запись в блоге изначально была опубликована Иво Бернардо в блоге DareData как «DS — Building Blocks: Regression vs. Classification]

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

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

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

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

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

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

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

  • Показатель успеха проекта.
  • Вывод модели(ей)

Прочитав этот пост, вы сможете поделиться своими идеями по этой теме в своих следующих инициативах в области данных. Давайте начнем!

Почему это важно и в чем основные отличия?

Если у вас есть проект, в котором нужно что-то предсказать, вы обычно (для простоты игнорируя другие решения) используете алгоритм регрессии или классификации. Эти два типа алгоритмов являются решением для обучения с учителем (у нас будет статья об этом в будущем!) и имеют большое различие, которое объясняется в одном предложении:

Алгоритмы классификации предсказывают дискретную метку, а регрессия предсказывает непрерывную метку

Ждать! Не уходи так рано. Давайте разберем этот жаргон:

  • «Алгоритмы классификации предсказывают дискретную метку». Мы хотим предсказать что-то, что мы можем поместить в определенные классы. Например, если мы хотим спрогнозировать отток клиентов, мы можем разделить клиентов только на две категории: отток и отсутствие оттока. Нет половинчатого или полуоттока, что означает, что нет бесконечно малых значений между оттоком или отсутствием оттока клиентов. Все, что подходит только под определенное количество категорий, вероятно, будет решено с помощью алгоритма классификации.
  • «Регрессия предсказывает непрерывную метку» —здесь мы хотим предсказать непрерывную переменную. Цена дома, например. Можете ли вы сосчитать классы, в которые вы можете вписать «цены на жилье»? Неа! Ну... вы можете, но вам нужно будет управлять миллиардом категорий, таких как дома стоимостью 100 000,1, 100 000,2, 100 000,3 долларов и так далее. Тот факт, что наша цель – предсказать переменную, содержащую бесконечно малые непрерывные значения, подходит для алгоритма регрессии.

Под капотом вы будете оптимизировать для разных вещей. Это так же, как если бы вы строили лодку или автомобиль. Оба являются транспортными средствами, оба питаются от какого-то источника энергии, но они должны быть оптимизированы для разных целей. Один едет по воде, а другой по дороге. Что происходит, когда вы пытаетесь оптимизировать автомобиль для езды по воде? Ну.. я думаю, вы можете себе представить.

Взгляд на классификацию

Начну с небольшого примера. Давайте представим, что мы хотим понять, какие клиенты уйдут (больше не будут покупать что-то у вас), и у нас есть следующий двухмерный график:

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

Зеленые точки были примерами клиентов, которые не уходили. Красные были теми, кто это сделал.

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

По сути, мы хотим предсказать вероятность принадлежности клиента к каждому из этих двух классов, где сумма вероятностей между ними равна 100%. Кажется очевидным, но если наша модель диктует, что у клиента есть 20% шанс оттока, то у него есть 80% шанс не оттока — это основной аргумент в пользу алгоритмов классификации, вписывающих «сущности» в закрытые сценарии.

Проведем мысленный эксперимент. Можете ли вы нарисовать одну линию, которая для каждого y имеет только один x (имеется в виду, не поднимая воображаемый карандаш), которая идеально разделяет два класса?

Давайте посмотрим:

Мы только что создали наш первый алгоритм! Если мы предположим, что все, что выше линии, не сбивается, а все, что ниже линии, будет, у нас будет только два неправильно классифицированных примера — значение точности около 96%. Этот алгоритм очень хорош! Что происходит, когда анализируется поведение нового клиента?

Если бы вам пришлось угадывать, к какому классу, по вашему мнению, принадлежал бы наш покупатель? Отток или не отток? Очевидно, нет оттока!

Итог — почему это проблема классификации? Мы решаем проблему, когда мы хотим поместить наши объекты в набор определенных классов. Какие еще примеры из реальной жизни подходят под это описание? Давайте посмотрим:

  • Если человек собирается дефолт или нет.
  • Если кто-то собирается претендовать на свою страховку или нет.

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

  • Если определенная деталь с завода классифицируется как небольшой дефект, крупный дефект или отсутствие дефекта.
  • Если изображение - это изображение кошки, собаки или птицы.

Эти задачи классификации, как правило, выводят значение, связанное с «вероятностью» (в зависимости от используемого алгоритма, выходное значение из модели может быть только показателем вероятности).

Подводя итог, как определить проблему классификации?

  • Объект, который вы моделируете, принадлежит к одному классу, который является взаимоисключающим.
  • Вероятность исходов в сумме достигает 100%.

Склоняясь к регрессии

Регрессия — это проблема другого типа, которую необходимо решить.

Он тесно связан с непрерывными переменными. Это означает, что вы хотите предсказать непрерывное значение — например, цену дома.

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

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

Но… имеет ли смысл понимать, будет ли стоимость дома выше определенного порога? Имеет ли смысл рассматривать дом стоимостью 60 тысяч в той же группе, что и дом стоимостью 100 тысяч?

Вероятно, не!

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

Нет единого класса, который вы хотите предсказать — и ваш алгоритм может выводить миллион (даже больше) чисел — теперь ваш алгоритм может предсказывать такие значения, как 13569,1 €, 105484,2 €, 100000,0001. €, 15453,15 €, 1586659, 12 €, среди всех других бесконечно малых возможностей.

Рассчитав мою линию регрессии, как только появится новый дом, я могу предсказать его цену, используя свое уравнение:

Какую цену вы предскажете для этого дома площадью 60 квадратных футов? Вероятно, около 50 000 евро, так как это значение, которое наш новый дом (с реальной неизвестной ценой!) попадает в наше уравнение — это то, что мы называем нашим лучшим предположением, основанным на нашей модели.

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

Разные проблемы, разные показатели

Помимо оптимизации для разных вещей, классификация и регрессия также оцениваются с помощью разных показателей.

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

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

Какова точность нашего алгоритма? Мы просто суммируем главную диагональ и делим ее на сумму всей матрицы, чтобы найти ошибку! 2/(15+1+1+36), что составит 3,77%. Вычитая это значение из 100 %, мы получаем нашу точность, 96,23 %!

Можем ли мы извлечь эту матрицу путаницы и точностьдля регрессии?Как нам заполнить матрицу, если классы для классификации отсутствуют? Проверка нашего примера цены дома:

При регрессии вы не можете использовать показатели, основанные на матрице путаницы (включая точность!), так как вы не можете ее заполнить. Итак, как мы можем оценить наши регрессионные модели и оценить их эффективность?

В основном метрики ошибок привязаны к простому понятию — разнице между созданной нами линией и реальными ценами на жилье! Используя только пару моментов для примера:

Разница между точками и нашей линией (помните, что это линия, которую мы будем использовать для прогнозирования новых цен на жилье!) будет определять множество показателей регрессии — некоторые из них — это средняя абсолютная ошибка, средняя квадратичная ошибка или среднее значение. Ошибка в квадрате. Не нужно их знать — просто знайте, что это совершенно разные метрики, чем то, что называют «точность».

Можете ли вы назвать их?

Время лакмусовой бумажки! Давайте посмотрим, смог ли я правильно передать эти понятия. Можете ли вы назвать, являются ли следующие проблемы классификацией или регрессией? Ответы в конце поста!

  1. Прогнозирование того, сколько Клиент потратит в течение следующих 4 месяцев.
  2. Прогнозирование, является ли транзакция мошеннической или нет.
  3. (хитрый!) Предсказание количества людей, которые выживут при крушении лодки.
  4. (хитрый!) Предсказать, выживет ли конкретный человек в лодочной катастрофе.
  5. Прогнозирование количества месяцев, которые пройдут, прежде чем пользователь удалит приложение.
  6. Предсказание количества книг в чьей-либо библиотеке.
  7. Предсказание, собирается ли пользователь удалить приложение или нет.

Надеюсь, вы все правильно поняли!

Заключение

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

В будущем мы также обратимся к другим строительным блокам DS, таким как:

  • Контролируемое и неконтролируемое обучение;
  • Основные статистические данные и что они означают;
  • Распределение данных;
  • Различные модели;

Если у вас есть какие-либо отзывы или вы заинтересованы в обсуждении некоторых из этих тем, напишите мне по адресу [email protected] или через LinkedIn.

Спасибо, что нашли время, чтобы прочитать этот пост, и я надеюсь, что он был вам интересен — свяжитесь с нами через наш веб-сайт, чтобы узнать больше о наших услугах или просто поболтать на темы Data Science/Engineering!

О, и самое главное, вот ответы на вызов!

  1. Регрессия
  2. Классификация
  3. Регрессия
  4. Классификация
  5. Регрессия
  6. Регрессия
  7. Классификация

DareData Engineering — это компания, занимающаяся консультированием данных и кадровым агентством, которая помогает компаниям устанавливать современные системы искусственного интеллекта. Найдите нас на следующих ресурсах:

Не стесняйтесь обращаться, мы будем рады услышать от вас!