Простое и всестороннее введение в линейную, нелинейную и логистическую регрессию

Предисловие:

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

Регрессия

Регрессия — это процесс оценки связи зависимой переменной (Y) с одной или несколькими независимыми переменными (Xi). Он используется в основном для поиска закономерностей в заданном наборе выборок данных и прогнозирования значения переменной при заданном наборе значений других переменных. Он имеет широкий спектр приложений, от предсказания прогнозов погоды до прогнозов цен на жилье. Значение этих переменных часто является непрерывным, однако существует подмножество методов регрессии, в которых значения могут быть дискретными (например, номинальные/порядковые). Через некоторое время мы увидим различные типы методов регрессии.

Линейная регрессия

В своей простейшей форме модель регрессии представляет собой линейную функцию, посредством которой значение зависимой переменной может быть получено путем линейной комбинации значений независимых переменных. Например, если данные представлены в двух измерениях, такую ​​модель можно записать в виде уравнения прямой (рис. 2). Уравнение прямой имеет три коэффициента (a, b и c). Если мы запишем зависимую переменную y как y = f(x), то увидим, что нам нужен только наклон (m ) и точка пересечения 'c' для обозначения любой строки. Это означает, что если мы хотим найти линию, которая лучше всего соответствует набору точек данных, нам нужно найти только лучшие значения для этих двух переменных.

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

Аппроксимация линий путем решения системы линейных уравнений

Если мы запишем каждую точку в виде линейной комбинации (y = mx + c), то получим набор линейных уравнений. Чтобы найти значения ‘m’ и ‘c’, нам нужно как минимум два уравнения. И мы видим, что у нас больше двух уравнений, следовательно, наша задача разрешима. В более общем смысле мы можем написать набор линейных уравнений с n отсчетами и d’ размерностями, как показано на рис. 4.

Мы можем организовать все наклоны и точки пересеченияв комбинированный вектор с именем w’. Кроме того, мы можем добавить столбец единиц в X, чтобы сделать продукт возможным и получить соответствующую линейную комбинацию значений. Затем мы можем решить эту систему линейных уравнений (Y = X w), взяв обратную матрицу и найдя веса ‘w’. Решение обеспечивает наклон и пересечение линии, наилучшей подходящей для данного набора выборок данных, как показано на рисунке 5.

Подгонка линий градиентным спуском

Матричное обратное решение для системы линейных уравнений работает для задач, в которых наименьший шум и нет особенностей. Однако в большинстве больших реальных данных эти ограничения могут не соблюдаться. Поэтому для решения системы линейных уравнений часто используется более надежный и общий метод, который называется Градиентный спуск. Это итеративный метод оптимизации, который стремится найти оптимальную точку (минимум/максимум) целевой функции путем постепенного продвижения к выходному решению. В частности, вычисляется производная целевой функции (например, dy/dw = X в данном случае) и небольшой шаг берется в направлении оптимальной точки (т. е. J =|y-y'|-› 0для y'= Xw' прогнозируемого значения). После каждого шага веса обновляются как w' = wальфа * Jгде альфа — скорость обучения. Пример вывода линии с использованием Градиентного спуска показан на рисунке 6.

Нелинейная регрессия

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

Полиномиальная регрессия

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

Мы можем построить полином путем умножения линейных уравнений. Частный случай многочлена 4-й степени показан на рис. 8. Мы создали сложный многочлен путем умножения четырех простых линейных уравнений с точками пересечения 1, 5, 6 и 12 соответственно. Множитель 0,01 обеспечивает коэффициент масштабирования, а знак минус отражает всю кривую. Это просто для того, чтобы показать, что многочлен может быть разной формы. Основная цель изучения такой кривой — найти сложную закономерность, которая может существовать в реальном наборе данных. Например, данные могут быть непрерывным сигналом с несколькими режимами, поступающими от датчика, который может потребоваться спрогнозировать с помощью модели нелинейной регрессии.

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

Регрессия гауссовского процесса

Бывают ситуации, когда мы хотим, чтобы модель предсказывала не только очень точные значения функций — как в случае линейной/полиномиальной аппроксимации, — но также должна учитывать запас. В таких случаях мы изучаем распределение (т. е. среднее значение и дисперсию) в каждой точке вместо одного значения веса. Он может иметь прямое применение в ситуациях, когда сигнал либо зашумлен, либо имеет небольшую степень турбулентности. Моделирование проблемы регрессии как гауссовского процесса позволяет точно прогнозировать сенсорные данные. Сердцем такой регрессии гауссовского процесса является функция ядра. Может существовать множество функций ядра, которые подходят для различных типов данных и приложений. Наиболее распространенной функцией ядра является экспоненциальная функция (например, ядро ​​радиального базиса), которая обеспечивает нелинейную связь между независимыми и зависимыми переменными. Таким образом, целью процесса регрессии является задача оптимизации, при которой оптимизируются наиболее подходящие значения среднего и дисперсии для каждой точки входных данных. Пример вывода такой регрессии гауссовского процесса можно увидеть на рисунке 10 для различных типов ядер. Полоса вокруг кривой предсказывает, насколько уверенно модель предсказывает значения в определенной точке. Чем уже полоса, тем строже выходные значения.

Регулярная логистическая регрессия

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

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

Проблемы классификации требуют обучения на одном наборе данных, в то время как ожидается, что модель будет предсказывать значения для другого набора данных. Поэтому важно, чтобы модель не была слишком жестко ограничена только для тренировочного набора и должна хорошо работать для входных значений, которых не было в тренировочном наборе. Эта проблема называется «переобучение» и устраняется с помощью метода, называемого «Регуляризация». Регуляризация — это релаксационный термин в процессе оптимизации, который дает подгонке модели передышку. Это реализуется путем добавления дополнительного члена в целевую функцию, как в приведенном выше уравнении. Коэффициент для такого термина Regularization, Lambda, является весовым коэффициентом, который обеспечивает компромисс между точностью и обобщаемостью. Результаты такой подгонки регрессии можно увидеть на рисунке 12.

Заключительные замечания

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

Чтобы получить код, перейдите по ссылке:

https://www.github.com/azad-academy/MLBasics-Regression

Поддержите меня на Patreon:



Найди меня в Substack:



Подпишитесь на обновления в Твиттере:

https://www.twitter.com/@azaditech