Руководство по линейной регрессии с использованием Scikit [с примерами]

Опубликовано: 2021-06-18

Алгоритмы контролируемого обучения обычно бывают двух типов: регрессия и классификация с прогнозированием непрерывных и дискретных выходных данных.

В следующей статье будет обсуждаться линейная регрессия и ее реализация с использованием одной из самых популярных библиотек машинного обучения Python, библиотеки Scikit-learn. В библиотеке Python доступны инструменты для машинного обучения и статистических моделей для классификации, регрессии, кластеризации и уменьшения размерности. Написанная на языке программирования Python, библиотека построена на библиотеках Python NumPy, SciPy и Matplotlib.

Оглавление

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

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

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

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

Уравнение прямой имеет вид

Y = мх + б

Где b = перехват

m = наклон линии

Следовательно, с помощью линейной регрессии

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

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

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

Еще одна широко используемая библиотека в Python — Scikit-learn, которая используется для решения задач машинного обучения.

Scikit-learn

Библиотека Scikit-learn предлагает разработчикам алгоритмы, основанные как на контролируемом, так и на неконтролируемом обучении. Библиотека Python с открытым исходным кодом предназначена для задач машинного обучения.

Исследователи данных могут импортировать данные, предварительно обрабатывать их, строить графики и прогнозировать данные с помощью scikit-learn.

Дэвид Курнапо впервые разработал scikit-learn в 2007 году, и за последние десятилетия библиотека росла.

Инструменты, предоставляемые scikit-learn:

  • Регрессия: включает логистическую регрессию и линейную регрессию.
  • Классификация: включает метод K-ближайших соседей.
  • Выбор модели
  • Кластеризация: включает как K-Means++, так и K-Means
  • Предварительная обработка

Преимущества библиотеки:

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

Импорт scikit-learn

Сначала необходимо установить scikit-learn через pip или conda.

  • Требования: 64-битная версия python 3 с установленными библиотеками NumPy и Scipy. Также для визуализации графиков данных требуется matplotlib.

Команда установки: pip install -U scikit-learn

Затем проверьте, завершена ли установка

Установка Numpy, Scipy и matplotlib

Установка может быть подтверждена через:

Источник

Линейная регрессия через Scikit-learn

Реализация линейной регрессии с помощью пакета scikit-learn включает следующие шаги.

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

Пакет NumPy и класс LinearRegression должны быть импортированы из sklearn.linear_model.

Источник

Все функции, необходимые для линейной регрессии sklearn , присутствуют для окончательной реализации линейной регрессии. Класс sklearn.linear_model.LinearRegression используется для выполнения регрессионного анализа (как линейного, так и полиномиального) и прогнозирования.

Для любых алгоритмов машинного обучения и линейной регрессии scikit , необходимо сначала импортировать набор данных. В Scikit-learn доступны три варианта получения данных:

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

Какой бы вариант ни был выбран, необходимо импортировать наборы данных модуля.

импортировать sklearn.datasets как наборы данных

1. Классификационный набор ирисов

радужная оболочка = наборы данных.load_iris()

Набор данных iris хранится в виде поля данных двумерного массива n_samples * n_features. Его импорт осуществляется как объект словаря. Он содержит все необходимые данные вместе с метаданными.

Функции DESCR, shape и _names можно использовать для получения описаний и форматирования данных. Печать результатов функции отобразит информацию о наборе данных, которая может понадобиться при работе с набором данных радужной оболочки.

Следующий код загрузит информацию о наборе данных радужной оболочки.

Источник

2. Генерация регрессионных данных

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

Генерация данных регрессии с набором из 1 информативного признака и 1 признака.

X, Y = наборы данных.make_regression(n_features=1, n_informative=1)

Сгенерированные данные сохраняются в наборе 2D-данных с объектами x и y. Характеристики генерируемых данных можно изменить, изменив параметры функции make_regression.

В этом примере параметры информативных функций и признаков изменены со значения по умолчанию 10 на 1.

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

  • Функции, которые предоставляют полезную информацию для алгоритмов ML, называются информативными функциями, а те, которые бесполезны, называются информативными функциями.

3. Графические данные

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

Импортировать matplotlib.pyplot как plt

Приведенный выше график построен через matplotlib через код

Источник

В приведенном выше коде:

  • Переменные кортежа распаковываются и сохраняются как отдельные переменные в строке 1 кода. Таким образом, отдельные атрибуты можно манипулировать и сохранять.
  • Набор данных x, y используется для создания диаграммы рассеивания по линии 2. При наличии параметра маркера в matplotlib визуальные эффекты улучшаются путем пометки точек данных точкой (o).
  • Заголовок сгенерированного сюжета задается через строку 3.
  • Фигуру можно сохранить как файл изображения .png, после чего текущая фигура будет закрыта.

График регрессии, созданный с помощью приведенного выше кода,

Рисунок 1: График регрессии, сгенерированный из приведенного выше кода.

4. Реализация алгоритма линейной регрессии

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

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

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

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

В следующем фрагменте показана реализация линейной регрессии sklearn.

Источник

Код объясняется как:

  • Строка 6 загружает набор данных с именем load_boston.
  • Набор данных разделен на строку 12, т. е. обучающий набор с 80% данных и тестовый набор с 20% данных.
  • Создание модели линейной регрессии в строке 23 с последующим обучением.
  • Производительность модели оценивается на уровне 29 посредством вызова mean_squared_error.

График линейной регрессии sklearn показан ниже:

Модель линейной регрессии выборочных данных о ценах на жилье в Бостоне

Источник

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

Заключение

В статье обсуждалась линейная регрессия и ее реализация с помощью пакета Python с открытым исходным кодом под названием scikit-learn. К настоящему моменту вы можете получить представление о том, как реализовать линейную регрессию с помощью этого пакета. Стоит научиться использовать библиотеку для анализа данных.

Если у вас есть интерес к дальнейшему изучению темы, например, реализации пакетов Python в машинном обучении и проблемах, связанных с ИИ, вы можете проверить курс «Магистр наук в области машинного обучения и ИИ », предлагаемый upGrad . Ориентированный на профессионалов начального уровня в возрасте от 21 до 45 лет, курс направлен на обучение студентов машинному обучению с помощью более 650 часов онлайн-обучения, более 25 тематических исследований и заданий. Курс, сертифицированный LJMU , предлагает идеальное руководство и помощь в трудоустройстве. Если у вас есть какие-либо вопросы или пожелания, оставьте нам сообщение, мы будем рады связаться с вами.

Возглавьте технологическую революцию, управляемую искусственным интеллектом

ИСПОЛНИТЕЛЬНАЯ ПРОГРАММА PG В МАШИННОМ ОБУЧЕНИИ И ИСКУССТВЕННОМ ИНТЕЛЛЕКТЕ
Применить сейчас