Перед началом блога давайте обновим некоторые основные определения

Что такое машинное обучение?

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

источник: Википедия

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

В этом блоге мы собираемся узнать об одном таком алгоритме обучения с учителем.

Алгоритмы с учителем в основном можно разделить на две категории:

Классификация:

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

Например. Логистическая регрессия, дерево решений, случайный лес, наивный байесовский метод.

Регрессия:

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

Например. Линейная регрессия, гребневая регрессия, эластичная чистая регрессия.

Сегодня мы будем изучать простую линейную регрессию.

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

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

Итак, чтобы продолжить блог, мы будем классифицировать следующие аспекты LR:

1. Что такое линейная регрессия?

2. Геометрическая интуиция

3. Проблема оптимизации

4. Реализация с библиотекой sklearn.

Что такое линейная регрессия?

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

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

Мы понимаем это с помощью приведенного ниже графика разброса.

Геометрическая интуиция:

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

Координаты обозначены, как показано ниже,

Ось X -> Фактические цены на жилье

Ось Y -> Прогнозируемые цены на жилье

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

Проблема оптимизации:

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

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

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

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

Ошибочные точки над линией можно представить как:

Ошибка₁ = Y₁ — Y₁^ {Y1: фактическая точка, Y1^ прогнозируемая точка}

Ошибка₁ будет иметь положительное значение, поскольку Y₁ будет больше, чем Y₁^.

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

Ошибка₂ = Y₂ — Y₂^ .

Ошибка₂ будет иметь отрицательное значение, поскольку Y₂ меньше, чем Y₂^.

Ошибка₃ = Y₃ — Y₃^ .

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

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

Уравнение n-мерной плоскости:

πₙ = Wᵗ X + W₀ = 0 , {где W — векторный член, а W₀ — скаляр.

Я считаю, что вы должны быть знакомы с основами линейной алгебры, чтобы знать, как выводится уравнение плоскости. Но в качестве дополнения на данный момент я бы предложил сопоставить это уравнение с наклоном линии как y = mx+c{m = Wᵗ & c =W₀}. сильный>

Это подводит нас к проблеме оптимизации, которую мы собираемся решить:

Argmin (W, W)∑ (Yᵢ — Yᵢ^) {i переходит от 1 к n}

Замена члена Yi^ уравнением плоскости

Аргмин (W, W0)∑ (Yᵢ — WᵗXᵢ + X₀ )² как {Yi^ = WᵗX + W₀}

Теперь может возникнуть путаница, почему мы заменяем π на Yᵢ^, потому что, как мы ссылаемся на изображение выше, фактическая проблема оптимизации состоит в том, чтобы уменьшить расстояние между точками, которых нет на линия.

Кроме того, здесь стоит упомянуть одну вещь относительно LR: поскольку мы делаем квадрат линейного уравнения LR, он также называется Обычный наименьший квадрат или Линейный наименьший квадрат.

И весь (Yi — WᵗXᵢ + X0)² Срок потери называется Квадратной потерей.

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

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

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

На рисунке 3 Функция(X) = WᵗX + W₀. Из чего мы можем определить, что по мере того, как ошибка увеличивается по оси X как от положительного, так и от отрицательного конца, квадрат члена ошибки также будет соответственно увеличиваться. И погрешность в начале координат будет равна нулю. Итак, теперь вы можете видеть, что основная цель всегда состоит в том, чтобы сохранить термин ошибки как можно ближе к источнику.

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

Итак, теперь давайте разберемся, как мы можем попробовать, как работает линейная регрессия, с помощью библиотеки обучения sklearn. Если вы тот, кто только начал узнавать о машинном обучении, вы должны заполучить эту блестящую библиотеку Sklearn. Только для линейной регрессии мы также можем обратиться к линейной регрессии Sklearn.

Давайте программировать.

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

Бостонский набор данных. Этот набор данных является копией репозитория машинного обучения UCI, который содержит 506 экземпляров, т. е. точек данных, и 13 функций для работы. Данные были взяты Службой переписи населения США в отношении жилья в районе Бостона, штат Массачусетс. По ссылке Sklearn Boston Dataset мы можем получить информацию о наборе данных. Причина использования этого набора данных заключается в том, что этот набор данных был частью многих документов по машинному обучению, в которых рассматривалась проблема регрессии.

Импортировать необходимую библиотеку

Sklearn предоставляет несколько наборов данных для реализации алгоритмов. Как указывалось ранее, для нашего объяснения я использовал набор данных Бостона.

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

Ниже приведены несколько целевых переменных, также называемых переменной отклика (Actual Yi) функций.

Здесь мы загрузили boston_data во фрейм данных pandas. И мы создали две переменные X -> Содержит функции и Y-> Содержит целевые переменные. Кроме того, мы разделили данные на 70–30, что означает, что 70% данных используются для обучения, а 30% данных используются для тестирования, что является невидимыми данными для обученной модели через библиотеку train_test_split.

После разделения данных на 70–30 у нас есть 339 образцов для тестирования и оставшиеся 167 образцов для тестирования нашей модели.

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

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

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

Дальнейшее исследование:

1. Попробуйте модель с другой метрикой ошибки для линейной регрессии, например: средняя абсолютная ошибка, среднеквадратическая ошибка.

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

Спасибо Народ за чтение!