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

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

Вот несколько причин, по которым…

  • Вам нужно сначала полностью понять фундаментальные аспекты алгоритмов машинного обучения, прежде чем переходить к более сложным моделям. Линейная регрессия является естественным сочетанием многих из этих аспектов.
  • Его легко понять, легко объяснить и он обладает универсальностью, которая позволяет применять его для лучшего понимания различных проблем, связанных с наукой о данных.
  • С появлением новых алгоритмов, таких как XGboost, появились новые приложения для линейной регрессии. Например, прогнозы, сделанные моделями черного ящика, можно лучше понять с помощью линейной регрессии.

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

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

  1. Основы линейной регрессии
  2. Расширенные аспекты линейной регрессии
  3. Подробный сквозной проект по науке о данных с использованием линейной регрессии в python.
  4. Улучшение проекта
  5. Другие методы оценки
  6. Глубокое погружение в одну из этих техник

Основы

Эта часть относительно проста. Большинство читателей все равно все это узнают, но думайте об этом как о глоссарии того, что будет дальше.

Общая форма линейной зависимости между набором непрерывных переменных выглядит следующим образом…

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

  • y является зависимой переменной. Что вы пытаетесь предсказать.
  • х — независимые переменные. Индикаторы, которые вы используете для прогнозирования
  • бета-члены представляют собой коэффициенты или параметры регрессии. Они представляют числовое соотношение между y и x. Вся цель алгоритма линейной регрессии состоит в том, чтобы оценить эти параметры.
  • член эпсилон - это член ошибки, это стохастическая или случайная часть уравнения, которая объясняет неопределенность отношения.

Поскольку невозможно смоделировать точное значение y, линейная регрессия оценивает взаимосвязь, оценивая параметры и вычисляя математическое ожидание y. Ниже приведено уравнение регрессии, которое используется в качестве линейного приближения для отношения, обратите внимание, как член ошибки исчезает…

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

Простой пример

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

Вот типы вопросов, на которые будут даны ответы в примере Python, который я публикую в другом примере, но они были помещены здесь, чтобы стимулировать некоторые мысли…

  • Достаточно ли у меня данных?
  • Достаточно ли среднего балла и опыта? Как насчет пола, местоположения и положения?
  • Могу ли я добавить больше независимых переменных? сколько слишком много?
  • Насколько хорошо моя модель обобщает? Я построил модель, используя данные из Великобритании, но могу ли я использовать ее во Франции?
  • Можно ли действительно зафиксировать взаимосвязь независимых переменных с помощью линейной регрессии?

Почему это называется линейной регрессией?

  1. Многие считают, что слово «линейный» происходит от предположения о взаимосвязи между зависимой переменной и независимыми переменными. На самом деле он используется для описания взаимосвязи между параметрами you и зависимой переменной. При этом полиномиальная регрессия по-прежнему остается линейной регрессией. Логистическая регрессия с помощью функции логита по-прежнему является линейной регрессией.
  2. Машинное обучение с учителем обычно делится на два типа задач: регрессию и классификацию. Выход этой модели принадлежит действительной числовой прямой, следовательно, регрессии. Вот почему логистическая регрессия является регрессией, даже если она применяется к задачам классификации; вывод - действительное число. Выходные данные логистической регрессии преобразуются в класс только после назначения порога, что делает его применимым к задачам бинарной классификации.

Обычный алгоритм наименьших квадратов

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

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

Общий процесс выглядит следующим образом:

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

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

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

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

Допущения линейной регрессии

Линейная регрессия сопровождается рядом допущений. Выводу алгоритма OLS можно полностью доверять только в том случае, если выполняются эти предположения.

  1. Линейность. Чтобы построить высокопроизводительную модель, вам нужно будет выбрать переменные, которые имеют сильную линейную связь с зависимой переменной. Есть несколько способов выбора таких переменных, с помощью графиков или просмотра коэффициента корреляции Пирсона.
  2. Нормальность и независимость остатков. Математическая теория линейной регрессии предполагает, что ошибки нормально распределены и не зависят друг от друга. Вы можете проверить нормальность остатков с помощью графиков, таких как гистограмма или график QQ, или использовать статистические тесты, такие как тест Шапиро-Уилка.
  3. Гомоскедастичность остаточной дисперсии. Остатки должны иметь постоянную дисперсию, как следует из предположения, сделанного в отношении ошибок. С более интуитивной точки зрения вы хотите, чтобы алгоритм OLS хорошо справлялся с минимизацией всех ошибок. Если есть гетероскедастические ошибки, вы будете знать, что ваша модель хорошо справилась с некоторыми точками данных, но плохо с другими. Для проверки гетероскедастичности можно использовать график Scale-Location или тест Бреуша-Пагана.
  4. Отсутствие автокорреляции в остатках. Автокорреляция или серийная корреляция — это просто корреляция ряда с его запаздывающими значениями. Если в остатках есть корреляция, если они имеют характерный паттерн или тенденцию внутри себя, то, очевидно, в них все еще есть некоторая информация, которая не была извлечена алгоритмом МНК. Это означает, что модель для этого набора данных может быть улучшена. Вы можете проверить автокорреляцию с помощью графиков ACF/PACF или использовать статистические тесты, такие как тест Дарбина-Ватсона или Бреуша-Годфри.
  5. Отсутствие мультиколлинеарности в независимых переменных. Коррелированные переменные могут вызвать ряд проблем в вашей модели, особенно при вычислении статистики коэффициентов.Вы можете выбирать между переменными с высокой степенью корреляции, чтобы избежать мультиколлинеарности. Вы можете проверить, имеет ли ваша модель мультиколлинеарность, с помощью коэффициента инфляции дисперсии для коэффициентов модели.
  6. Понимание влиятельных данных. Влиятельные точки в этом контексте являются выбросами, которые оказывают значительное влияние на коэффициенты модели линейной регрессии. Влиятельные точки могут возникать из-за нездоровых данных или аномалий. В работе с ними нет установленного правила, метод может меняться от проекта к проекту. К счастью, есть способ легко идентифицировать их на расстоянии повара.

Эти предположения следует проверить перед запуском модели в производство. Я подробно расскажу об интуиции и математике, лежащих в основе этих предположений, в моей следующей статье.

Вывод и оценка

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

  • Точки представляют данные
  • Линия и плоскость представляют модель линейной регрессии, которая была адаптирована к значениям y с использованием выбранных значений x.
  • Вертикальные линии представляют остатки/ошибки, которые были сделаны в прогнозе.

Если y — реальное значение, y_hat — прогнозируемое значение, а эпсилон — остаток, то легко увидеть, что…

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

Как только вы получите прогнозируемые значения, как вы измерите производительность своей модели? Существует ряд показателей, которые вы можете использовать, но с академической точки зрения наиболее часто используемым является коэффициент детерминации или R². Сначала я дам интуицию, стоящую за R², затем я представлю вам математику, стоящую за ней. Затем я попытаюсь объяснить, почему в реальном проекте вы должны использовать R² только как небольшую часть вашей общей оценки производительности модели.

R² дает нам представление о полезности нашей линии регрессии для прогнозов. Он измеряет, насколько хорошо регрессия соответствует наблюдаемым данным из метода алгоритма наименьших квадратов.

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

Член ошибки, сделанный по всем точкам данных средним, называется общей суммой квадратов ошибок, SST. Он представляет собой общую изменчивость зависимых переменных без учета независимых переменных…

Член ошибки, сделанный линией регрессии, представляет собой общую сумму квадратов ошибок, SSE, и может быть представлен следующим…

Сумма квадратов регрессии представляет собой разницу в обоих прогнозах. Интуитивно понятно, что эта статистика необходима для построения статистики R², но ее также можно визуализировать на диаграмме ниже…

Формула для R² выглядит следующим образом…

Значение r-квадрата принимает значения от 0 до 1, и это легко показать. Не существует рекомендаций по определению того, что определяет хорошее значение R², поскольку линейную регрессию можно применять к множеству различных полей.

Недостатки

  • Это относится только к данным поезда, вычисления для тестовых данных нелогичны и могут даже давать отрицательные значения. В машинном обучении важна производительность на невидимых данных, и R² не является хорошим представлением этого.
  • Это серьезная проблема, когда мы пытаемся подобрать данные временных рядов, когда нас интересует будущее, а не прошлое.
  • Его нельзя использовать для сравнения других типов моделей. Вы не можете сравнить модель линейной регрессии с моделью xgboost, используя R²
  • Вы можете увеличить R², добавив независимые переменные и переоснащение.
  • R² — это смещение с точки зрения МНК. Таким образом, вы можете использовать R² как скорее индикатор, показывающий, что алгоритм OLS работает, а не показатель производительности для вашей модели.

Будущие статьи

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

  • Стандартная ошибка оценки
  • дисперсионный анализ
  • Выбросы
  • Корреляция Пирсона
  • Остаточная диагностика
  • Тесты на нормальность, автокорреляцию и гетероскедастичность
  • Проверка гипотезы
  • Использование доверительных интервалов

Дополнительно

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

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