Сравнение линейной и логистической регрессии

Обсуждение вопроса на собеседовании по науке о данных начального уровня

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

Вопрос: В чем разница между линейной регрессией и логистической регрессией?

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

Изображение автора

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

  • Гипотеза или модельное семейство
  • Ввод и вывод
  • Функция потери
  • Техника оптимизации
  • Применение

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

Изображение Раджашри Раджадхьякса

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

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

LogReg в основном используется для классификации. Классификация — это действие по категоризации входных данных в одну из множества возможных корзин. Классификация настолько важна для человеческого интеллекта, что не будет ошибкой сказать, что «большая часть интеллекта — это классификация». Хорошим примером классификации является клинический диагноз. Рассмотрим пожилого, надежного семейного врача. Заходит женщина и жалуется на непрекращающийся кашель. Врач проводит различные обследования, чтобы выбрать одно из множества возможных состояний. Некоторые возможные состояния относительно безвредны, например, приступ инфекции горла. Но некоторые серьезные, такие как туберкулез или даже рак легких. Исходя из различных факторов, врач решает, от чего она страдает, и начинает соответствующее лечение. Это классификация в действии.

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

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

Идентификация математической функции из заданных данных называется «обучением» или «обучением». Есть два этапа обучения:

  1. «Тип» функции (например, линейная, экспоненциальная, полиномиальная) выбирается человеком.
  2. Алгоритм обучения изучает параметры (такие как наклон и пересечение линии) из заданных данных.

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

Как в LinReg, так и в LogReg семейство моделей представляет собой линейную функцию. Как известно, у линии есть два параметра — наклон и точка пересечения. Но это верно только в том случае, если функция принимает только один вход. Для большинства реальных проблем существует более одного входа. Модельная функция для этих случаев называется линейной функцией, а не прямой. Линейная функция имеет больше параметров для изучения. Если у модели есть n входных параметров, линейная функция имеет n+1 параметров. Как уже упоминалось, эти параметры извлекаются из заданных данных. Для целей этой статьи мы будем продолжать предполагать, что функция представляет собой простую строку с двумя параметрами. Функция модели для LogReg немного сложнее. Линия есть, но она совмещена с другой функцией. Мы увидим это через мгновение.

Как мы сказали выше, и LinReg, и LogReg изучают параметры линейной функции из заданных данных, называемых обучающими данными. Что содержат обучающие данные?

Данные для обучения готовятся путем записи некоторых явлений реального мира (RWP). Например, связь между максимальной дневной температурой и продажей лимонада представляет собой РРП. У нас нет видимости лежащего в основе отношения. Все, что мы можем видеть, это значения температуры и продажи каждый день. При записи наблюдений мы обозначаем одни величины как входы РВП, а другие как выход. В примере с лимонадом мы называем максимальную температуру входом, а продажу лимонада выходом.

Изображение автора

Наши обучающие данные содержат пары входных и выходных данных. В этом примере данные будут содержать строки максимальной температуры за день и проданных стаканов лимонада. Таковы будут вход и выход в LinReg.

Задача, которую выполняет LogReg, — это классификация, поэтому ее результатом должен быть класс. Давайте представим, что есть два класса с именами 0 и 1. Выход модели также должен быть либо 0, либо 1.

Однако этот метод задания выходных данных не очень удобен. См. следующую схему:

Изображение автора

Точки желтого цвета относятся к классу 1, а голубые — к 0. Линия — это наша модельная функция, которая разделяет два класса. Согласно этому разделителю обе желтые точки (a и b) относятся к классу 1. Однако принадлежность точки b гораздо более определенна, чем принадлежность точки a. Если модель просто выводит 0 и 1, то этот факт теряется.

Чтобы исправить эту ситуацию, модель LogReg выдает вероятность принадлежности каждой точки определенному классу. В приведенном выше примере вероятность того, что точка «а» принадлежит классу 1, мала, тогда как вероятность точки «б» высока. Поскольку вероятность — это число от 0 до 1, то же самое и с выходом LogReg.

Теперь посмотрите на следующую схему:

Изображение автора

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

Для того чтобы модель LogReg могла производить такой вывод, линейная функция должна быть связана с другой функцией. Эта вторая функция называется сигмоидой и имеет уравнение:

Таким образом, модель LogReg выглядит так:

Изображение автора

Сигмовидная функция также называется «логистической» и является причиной названия «логистическая регрессия».

Если классов больше двух, LogReg выводит вектор. Элементы выходного вектора — это вероятности того, что вход принадлежит этому конкретному классу. Например, если первый элемент модели клинического диагноза имеет значение 0.8, это означает, что модель считает, что пациент простудился с вероятностью 80%.

Мы видели, что и LinReg, и LogReg изучают параметры линейной функции из обучающих данных. Как они узнают эти параметры?

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

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

Потеря = Функция_Потери (Параметры_существования_оцениваемые)

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

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

Для оптимизации параметров LinReg наиболее распространенная функция потерь называется Sum of Squares Error (SSE). Эта функция принимает следующие входные данные:

1) Все точки обучающих данных. Для каждой точки указываем:

а) входные данные, такие как максимальная температура данных,

б) результаты, такие как количество проданных стаканов лимонада

2) Линейное уравнение с параметрами

Затем функция вычисляет убыток по следующей формуле:

Потеря SSE = Sum_for_all_points(
Square_of(
output_of_linear_equation_for_the_inputs — фактическая_выходная_точка_данных
))

Мера оптимизации для LogReg определяется совершенно по-другому. В функции SSE мы задаем следующий вопрос:

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

При разработке мер по оптимизации LogReg мы просим:

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

Таким образом, результатом этой меры является вероятность. В математической форме функции измерения используются логарифмы, что дало ей название логарифмического правдоподобия (LL). Обсуждая выходные данные, мы увидели, что функция LogReg использует экспоненциальные члены (члены, в которых e «возводится к» z). Логарифмы помогают эффективно справляться с этими экспонентами.

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

Итак, у нас есть две функции потерь: SSE для LinReg и NLL для LogReg. Обратите внимание, что у этих функций потерь много названий, и вам следует ознакомиться с терминами.

Несмотря на то, что линейная регрессия и логистическая регрессия выглядят и звучат очень похоже, на самом деле они совершенно разные. LinReg используется для оценки/прогноза, а LogReg — для классификации. Верно, что они оба используют линейную функцию в качестве основы, но LogReg дополнительно добавляет логистическую функцию. Они отличаются тем, как они потребляют данные для обучения и производят выходные данные модели. Они также используют очень разные функции потерь.

Более подробную информацию можно узнать. Почему ССЕ? Как рассчитывается вероятность? Мы не стали вдаваться в метод оптимизации, чтобы избежать лишних математических вычислений. Однако вы должны иметь в виду, что для оптимизации LogReg обычно требуется метод итеративного градиентного спуска, в то время как LinReg обычно может обойтись быстрым решением в закрытой форме. Эти и другие моменты мы можем обсудить в другой статье.

Сравнение линейной и логистической регрессии, переопубликовано из источника https://towardsdatascience.com/comparing-linear-and- логистической-регрессии-11a3e1812212?source=rss—-7f60cf5620c9—4 через https://towardsdatascience.com/feed

<!–

->

Отметка времени:

Больше от Блокчейн-консультанты