Как реализовать линейную регрессию для машинного обучения?



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

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

Что такое регресс?

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





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

пример-линейная регрессия в машинном обучении - edureka

Типы регрессии

Ниже приведены типы регрессии.



  1. Простая линейная регрессия
  2. Полиномиальная регрессия
  3. Опорная векторная регрессия
  4. Регрессия дерева решений
  5. Случайная лесная регрессия

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

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

Полиномиальная регрессия

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

Опорная векторная регрессия

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



Регрессия дерева решений

К может использоваться как для регрессии, так и для . В случае регрессии мы используем алгоритм ID3 (Iterative Dichotomiser 3), чтобы идентифицировать узел разделения путем уменьшения стандартного отклонения.

Случайная лесная регрессия

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

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

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

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

Терминология линейной регрессии

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

Функция стоимости

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

  • Зависимая переменная, которую необходимо предсказать, обозначается Y.
  • Линия, касающаяся оси y, обозначается точкой пересечения b0.
  • бодин- наклон линии, x представляет собой независимые переменные, которые определяют прогноз Y.
  • Ошибка в результирующем прогнозе обозначается e.

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

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

Он также известен как MSE (среднеквадратичная ошибка), и мы меняем значения b0и бодинтак что значение MSE устанавливается на минимуме.

Градиентный спуск

Следующая важная терминология для понимания линейной регрессии: градиентный спуск. Это метод обновления b0и бодинзначения для уменьшения MSE. Идея состоит в том, чтобы продолжать повторять b0и бодинзначений, пока мы не уменьшим MSE до минимума.

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

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

Преимущества и недостатки

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

Примеры использования линейной регрессии

  • Прогноз продаж

  • Анализ риска

  • Жилищные приложения для прогнозирования цен и других факторов

  • Финансовые приложения для прогнозирования цен на акции, оценки инвестиций и т. Д.

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

Имея это в виду, давайте рассмотрим вариант использования.

Пример использования - реализация линейной регрессии

Процесс проходит в следующие этапы:

как использовать наведение в css
  1. Загрузка данных
  2. Изучение данных
  3. Нарезка данных
  4. Обучить и разделить данные
  5. Создать модель
  6. Оценить точность

Давайте подробно рассмотрим каждый из шагов по реализации линейной регрессии.

1. Загрузка данных

Мы можем начать с базового набора данных о диабете, который уже присутствует в модуле наборов данных sklearn (scikit-learn), чтобы начать наше путешествие с линейной регрессии.

из наборов данных импорта sklearn болезнь = наборы данных.load_diabetes () print (болезнь)

Вывод:

2. Изучение данных

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

печать (болезнь.keys ())

Вывод:

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

импортировать numpy как np болезнь_X = болезнь.data [:, np.newaxis, 2] печать (болезнь_X)

Вывод:

После этого шага мы разделим данные на набор для обучения и тестирования.

3. Разделение данных

болезнь_X_train = болезнь_X [: - 30] болезнь_X_test = болезнь_X [-20:] болезнь_Y_train = болезнь.целевой [: - 30] болезнь_Y_test = болезнь.целе [-20:]

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

4. Создание модели

из sklearn import linear_model reg = linear_model.LinearRegression () reg.fit (болезнь_X_train, болезнь_Y_train) y_predict = reg.predict (болезнь_X_test)

Чтобы оценить точность модели, мы будем использовать среднеквадратичную ошибку из scikit-learn.

5. Оценка

точность = mean_squared_error (болезнь_Y_test, y_predict,) print (точность) weights = reg.coef_ intercept = reg.intercept_ print (weights, intercept)

Вывод:

Чтобы было более понятно, как точки данных выглядят на графике, давайте также построим графики.

импортировать matplotlib.pyplot как plt plt.scatter (болезнь_X_test, болезнь_Y_test) plt.plot (болезнь_X_test, y_predict) plt.show ()

Вывод:

Чтобы получить более точную модель в этом сценарии, мы можем использовать все данные, а не только столбец 2. Это даст точность, как показано ниже:

# внесите небольшие изменения в приведенный выше код и удалите код построения графика, чтобы избежать ошибок болезнь_X = болезнь.data

Вывод:

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

Если вы нашли эту статью «Линейная регрессия для машинного обучения» релевантной, ознакомьтесь с надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Линейная регрессия для машинного обучения», и наша команда будет рада ответить.