Предпосылки

Обзор

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

  • Демистификация простой линейной регрессии
  • Общие примеры простой линейной регрессии
  • Линия тренда и простая линейная регрессия
  • Реализация простой линейной регрессии
    - Шаг 1. Предварительная обработка данных
    - Шаг 2. Модель обучения
    - Шаг 3. Создание прогнозов
    - Шаг 4. Визуализация прогнозов на основе обучающих и тестовых данных

Демистификация простой линейной регрессии

Модель линейной регрессии позволяет построить связь между двумя непрерывными (количественными) переменными. Это простейшая форма «регрессии», которая описывает взаимосвязь между переменными путем подгонки линии к наблюдаемым данным. Следующее уравнение представляет собой простую модель линейной регрессии:

и графически простая линейная модель представлена ​​как:

Здесь,

  • y — зависимая переменная. Прогнозируемая переменная или переменная, для которой решается уравнение.
  • x – это независимая переменная, которая используется для прогнозирования значения зависимой переменной.
  • b1 — коэффициент независимой переменной. Он представляет собой изменение зависимой переменной (y), когда происходит единичное изменение независимой переменной (x).
  • b0 — константа, обозначающая точку на вертикальной оси, в которой находится интересующая нас линия.

Общие примеры простой линейной регрессии

  1. Провести анализ учебных часов и среднего балла студента. Найдите зависимость между количеством часов, отработанных учащимся, и его средним баллом. Здесь количество часов является независимой переменной, а средний балл — зависимой переменной. В этом случае уравнение будет таким:
    GPA = b0 + b1* Часы
  2. Провести анализ того, как меняется заработная плата человека с годами стажа, который он имеет. Здесь годы опыта — независимая переменная, а заработная плата — зависимая переменная. В этом случае уравнение будет таким:
    Зарплата = b0 + b1 * Опыт

Линия тренда и простая линейная регрессия

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

Теперь вопрос в том, как простая линейная регрессия найдет линию, которая лучше всего соответствует данным. На самом деле, для нахождения линии тренда используется метод, известный как "Обычный метод наименьших квадратов". Алгоритм будет рисовать как можно больше линий, затем для каждой линии он вычисляет расстояние точек данных от линии, равной y — y’. После этого он вычисляет сумму квадратов расстояний всех точек данных от линии, которая равна SUM(y — y')². Теперь этот расчет будет выполняться для каждой нарисованной линии. . Наконец, алгоритм выберет линию с наименьшей суммой квадратов расстояний и будет использовать эту линию в качестве линии тренда.

Реализация простой линейной регрессии

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

Шаг 1. Предварительно обработайте данные

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

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

Шаг 2: Модель обучения

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

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

Шаг 3: Делаем прогнозы

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

Ниже приведен код для прогнозирования веса человека с учетом его роста.

Шаг 4. Визуализация прогнозов по обучающим и тестовым данным

Для визуализации работы, которую мы проделали до сих пор, нам поможет библиотека matplotlib.

Ниже приведен код для визуализации результатов модели.

Результат кода будет:

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

Должно быть, вы думаете, почему это работает очень хорошо для обучающего набора данных, а не для тестовых данных?

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

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

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

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

Ресурсы:

Вы можете найти код, который я написал в блоге из моего GitHub Repository.