Изучение и развитие интуиции для работы регрессии

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

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

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

Структура блога:

  1. Введение
  2. Контролируемое машинное обучение
  • 2.1 Введение в регрессию
  • 2.2 Введение в классификацию
  • 2.3 Непрерывные и дискретные данные

3.Регрессия

  • 3.1 Зависимые и независимые переменные
  • 3.2 Типы регрессии
  • 3.3 Простая линейная регрессия
  • 3.4 Множественная линейная регрессия

1. Введение

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

2. Контролируемое машинное обучение

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

2.1 Регрессия. В регрессии мы пытаемся предсказать «непрерывные переменные» (обсуждаемые далее), такие как цена дома, количество случаев заражения коронавирусом, цена акции, температура. в определенный день и т.

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

2.2 Классификация. В классификации мы пытаемся предсказать что-то, называемое «Дискретная переменная» (обсуждается далее), например, категорию «Цветок», «Пол человека», «Спам по электронной почте» или не и т. д., где мы уверены, что вывод будет из определенного списка категорий.

  • Пример: предположим, что у вашей подруги есть домашнее животное, и она рассказывает вам о его характеристиках и о том, что это одно из [Кролика, Собаки, Кошки, Коровы]. Теперь вы угадываете, как это собака или кошка и т. д.

2.3 Непрерывные и дискретные данные

Нам нужно, чтобы вы сделали для нас две вещи:

  1. Угадай число.
  2. Выберите животное из списка [Собака, Кошка, Корова, Кролик].

Теперь то, что вы здесь сделали, это только что узнали, что такое дискретные и непрерывные переменные. В первом мы угадали какую-то форму числа, которое может быть чем угодно; мы не ограничены, это непрерывные данные, это могут быть 10, 100, 10,10, 57,80 и т. д., тогда как во втором случае мы выбрали некоторое значение из четко определенного пула значений, которые являются дискретными.

3 Регрессия

Регрессия — это изучение и использование данных для прогнозирования непрерывной переменной на основе результатов набора данных. Для этого нам нужно знать о зависимой переменной и независимой переменной.

3.1 Зависимые и независимые переменные:

«Зависимая переменная — это переменная, зависящая от различных факторов, которые служат независимыми переменными».

Запутались? не волнуйся, читай дальше

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

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

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

Теперь попробуйте перечитать первое утверждение; это не будет так запутанно, как раньше.

3.2 Тип регрессии:

Теперь регрессия может быть выполнена многими способами. Некоторые методологии регрессии:

  1. Простая линейная регрессия
  2. Множественная линейная регрессия
  3. Логистическая регрессия
  4. Ридж-регрессия
  5. Лассо-регрессия
  6. Полиномиальная регрессия
  7. Опорная векторная регрессия
  8. Регрессия дерева решений
  9. Случайная регрессия Форреста

Мы рассмотрим первые 2 в этом блоге, а остальные будут рассмотрены позже в этой серии, поскольку они немного продвинуты.

3.3 Простая линейная регрессия:

Вы когда-нибудь слышали о наклоне графика? или просто уравнение y=mx+c? Если да, то вы уже знаете, что такое простая линейная регрессия. Если нет, то мы здесь для вас. Читайте вперед.

Предположим, вы покупаете две шоколадки за 10 долларов, можете ли вы угадать цену 4 шоколадок, это будет 20 долларов, вы можете прийти к этому результату двумя способами:

Первый:

Вычислите цену 1 шоколадки, затем рассчитайте цену 4 шоколадок. Например, если 2 шоколадки стоят 10 долларов, то 1 шоколадка стоит 5 долларов, значит, четыре шоколадки стоят 20 долларов.

Второй:

Составьте для этого график (немного утомительно, но работает), поэтому предположим, что вы спрашиваете у продавца цену 2 шоколадок, он говорит вам 10 долларов, 20 долларов за 4, 30 долларов за 6 и так далее…, так что вы можете сделать. с помощью этого набросайте график, который будет выглядеть примерно так.

Теперь, если кто-то спросит у вас цену 50 шоколадок, посмотрев на график, вы сможете сказать, что это 250$.

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

Давайте узнаем, как применить простую линейную регрессию к реальным данным:

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

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

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

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

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

Эти вертикальные линии показывают, сколько ошибок было в нашем прогнозе. В реальных данных, если мы возьмем среднее значение квадрата этой ошибки, мы получим то, что называется среднеквадратичной ошибкой. Всякий раз, когда мы пытаемся что-то предсказать, мы стараемся свести к минимуму ошибку между фактическим ответом и нашим прогнозом. Эту ошибку можно назвать «стоимостью»; таким образом, мы пытаемся минимизировать эту стоимость, и эта стоимость или ошибка рассчитывается с использованием чего-то, что называется «Функция стоимости», в данном случае функция стоимости — это среднеквадратическая ошибка. Чем меньше функция стоимости или среднеквадратическая ошибка, тем лучше модель.

Итак, теперь вы знаете, какая линия лучше всего подходит для нашей модели из вышеперечисленных 4, но вопрос в том, как мы туда попали? Как нам добраться до этих 4 строк? Давайте узнаем это ниже:

Таким образом, каждая линия на графике может быть представлена ​​уравнением y=mx+c. Теперь мы можем манипулировать линией, изменяя «m», который называется наклоном, и «c», который теперь называется Intercept. Изменение этих двух свойств может изменить строку. Посмотрите ниже:

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

3.4 Множественная линейная регрессия:

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

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

Предположим, у нас есть набор данных:

В разделе «Простая линейная регрессия» мы обсуждали, как мы можем подойти к созданию линейной регрессии. Если бы у нас были только две переменные, которые могут быть Цена VS Вода ИЛИ Цена VS Электричество, график был бы построен как:

Если мы применим линейную регрессию к данным, мы получим:

Итак, теперь у нас есть две независимые переменные: наличие электричества и наличие воды. Мы хотим использовать их для прогнозирования цены дома зависимой переменной, поэтому у нас есть три переменные, чтобы нарисовать ее в трехмерном графике с одной осью z как ценой дома и осью x как наличие воды и осью y как электричество доступность.

Если мы нанесем данные на трехмерный график:

Обратите внимание на Положительный квадрант, то есть (+x,+y,+z), сохраните ссылку на оси +x, +y, +z, чтобы заметить размещение точек.

Теперь, как бы мы подогнали к этому модель линейной регрессии? Если вы заметили, что в нашей простой линейной регрессии, поскольку она была 2-мерной, мы получили модель линейной регрессии регрессии, теперь, когда мы перешли к 3-D в этом случае, мы получим плоскость? Но чтобы определить плоскость в трехмерном пространстве, нам нужно уравнение, и вы можете указать любую плоскость в трехмерном пространстве, используя уравнение:

Мы видели, что в случае с простой линейной регрессией нам нужно уравнение вида y=mx + c, но хитрость заключалась в том, чтобы найти «m» — наклон, а «c» — точку пересечения. мы попробовали разные значения, которые дали нам разные линии, и линия, которая дала нам минимизированную функцию стоимости (MSE, в данном случае «среднеквадратичная ошибка»), дала нам требуемую линию. (Прочитайте это еще раз, если вы заблудитесь, вы получите это, мы рассмотрели это в простой линейной регрессии).

Мы собираемся следовать той же процедуре здесь. Мы попробуем разные значения a, b, d, и плоскость, которая дает нам минимальную MSE (среднеквадратическую ошибку), предоставит нам требуемую плоскость, которая будет нашей моделью регрессии. (Чтобы быстро угадать a, b, d, мы используем метод оптимизации под названием «градиентный спуск», который будет объяснен в другом блоге).

После различных попыток над a, b, d наш компьютер нашел значения, которые дадут нам минимальную MSE, и эти значения для этой модели были

Итак, это уравнение плоскости, которое даст нам минимальную MSE. Если мы нарисуем эту плоскость в нашем трехмерном пространстве, мы получим что-то вроде этого:

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

Что делать, если функций больше двух?

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

В примере с трехмерным пространством мы увидели, что уравнение линейной регрессии имеет вид Z = 0,19264305*X + 0,22561308*Y + 0,6171662125340589, что похоже на уравнение.

Таким образом, в этом уравнении Z — это цена дома, 'x' — это переменная свойства (в данном случае доступность воды), 'y'. > — это переменная объекта (в данном случае доступность электричества). А a,b — это веса объекта, который дает нам требуемую линию, поэтому в примере, который мы решили ранее, вес объекта x был равен 0,19264305,вес признакаyбыл0,22561308, аdбыл точкой пересечения, которая составила0,6171662125340589. Итак, если мы хотим иметь дело снабором данных, где вашей зависимой переменной является цена дома, а независимыми переменными являются (площадь дома, количество комнат, количество этажей, вода, Электричество, Локальность) вместо того, чтобы вдаваться в теорию гиперплоскостей, мы можем сейчас следовать схеме приведенного выше уравнения, которое приведет к:

Где Y – цена дома, X1 – характеристика площади дома, а b1 – вес этой характеристики, X2.  – функция "Количество комнат", а b2 – вес этой функции, и так далее, пока функция "Местоположение" не будет равна X5, а ее вес составит b5, последнее, что у нас осталось, это e, то есть Intercept.

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

Заключение

Линейная регрессия широко используется в мире машинного обучения. Это один из мощных, но простых алгоритмов для прогнозирования непрерывных данных. Существуют различные модификации линейных регрессий, такие как Ridge, Lasso, которые будут рассмотрены позже в этой серии после того, как вы познакомитесь с Gradient Descent, Overfitting и Underfitting и т. д.

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

Если вы нашли этот блог полезным, пожалуйста, подпишитесь на нас, чтобы получать новые информативные блоги из этой серии.

Предыдущий блог — Четыре столпа машинного обучения №2 — линейная алгебра и исчисление

Следующий блог — Ваше руководство по обучению с учителем — классификация