[- Простое объяснение линейной регрессии -]

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

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

Awesome Machine Learning Resources:
- For learning resources go to How to Learn Machine Learning! 
- For professional resources (jobs, events, skill tests) go to AIgents.co — A career community for Data Scientists & Machine Learning Engineers.

Линейная регрессия в машинном обучении

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

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

Общая формула линейной регрессии следующая:

  • ŷ - это значение, которое мы прогнозируем.
  • n - количество характеристик наших точек данных.
  • xi - значение функции ith.
  • Θi - это параметры модели, где Θ0 - член смещения. Все остальные параметры являются весовыми коэффициентами для характеристик наших данных.

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

Хорошо, это кажется довольно интуитивным. Как теперь вычислить значения Θi, которые лучше всего соответствуют нашим данным? Очень просто: использование наших данных для обучения модели линейной регрессии.

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

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

Шаги для обучения модели следующие:

  • Во-первых, мы должны выбрать метрику, которая говорит нам, насколько хорошо работает наша модель, путем сравнения прогнозов, сделанных моделью для домов в обучающем наборе, с их фактическими ценами. Эти показатели представляют собой такие показатели, как Среднеквадратичная ошибка (MSE) или Среднеквадратичная ошибка (RMSE).
  • Мы инициализируем параметры модели (Θi) определенным значением (обычно случайным образом) и вычисляем эту ошибку для всех данных обучения.
  • Мы итеративно модифицируем эти параметры, чтобы минимизировать эту ошибку. Это делается с помощью таких алгоритмов, как градиентный спуск, который я сейчас вкратце объясню.

Тренировка с градиентным спуском

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

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

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

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

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

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

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

Эти параметры представлены зеленой линией оптимального соответствия.

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

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

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

Заключение и другие ресурсы

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

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

Чтобы увидеть больше подобных сообщений, подписывайтесь на меня на Medium и следите за обновлениями!

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