www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Линейная регрессия в 3 шага

Дата публикации Jul 14, 2019

фотоЧарли ФостернаUnsplash

мотивация

Мы продемонстрировали, как мы строим нейронную сеть, используя Python NumPy в9 шаговвЧасть 1из этой серии, но это может быть слишком сложно для начинающих понять. В этом случае мы будем использовать библиотеку NumPy для реализациилинейная регрессия, одна из самых простых моделей машинного обучения. Базовое понимание исчисления и синтаксиса Python является предпочтительным (но не обязательным, поскольку вы можете учиться на ходу).

Коды доступны наGitHub, Первоначально опубликовано наedenau.github.io,


1. Инициализировать

Первый шаг. Импортировать NumPy. Шутки в сторону.


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

Мы генерируем десять тысяч точек для скалярного вводаXи соответствующий ему гауссовnoiseтакой, что для некоторого фиксированного наклонаw_true=7.6и перехватитьb_true=-3.3мы можем генерироватьyпо следующим линейным отношениям. Значения дляw_trueа такжеb_trueсовершенно произвольно.

y = w_true * X + b_true + noise

Добавление гауссовского шума с нулевым средним делает наши данные более реалистичными.

Точки данных (синие) и линейные отношения без шума (красные)

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

На самом деле мы не знаем значений параметров линейной функцииwа такжеb, и это где градиентный спуск приходит. Мы определяем функцию ошибкиeкаксумма квадратов разностимежду фактическимyи предсказалy=wx+bдля некоторых(w,b),

Эта функция ошибок штрафует несоответствие между фактическим и прогнозируемымyценность. Разница в квадрате используется вместо абсолютной разницы||.||так что мы можем рассчитать∂e / ∂wа также∂e / ∂bаналитически, что оставлено в качестве упражнения для читателя.Эти градиенты являются представлениями направлений увеличенияwа такжеbсоответственно.Поэтому, если мы хотимуменьшитьОшибкаeмы должны обновить параметры, перейдя вотрицательное направлениепроизводных. Это может быть выражено

w ← w - learning_rate * ∂e/∂w
b ← b - learning_rate * ∂e/∂b
# The key is the minus signs
фотоБернард ХермантнаUnsplash

Если мы будем делать эти обновления итеративно до(w,b)сходясь, мы получим оптимальный набор параметров, которые могут представлять линейную зависимость междуXа такжеy,

Еда на вынос

Это минимальная реализация алгоритма линейной регрессии с использованием библиотеки NumPy в3 шага, Если вы хотите проверить свое понимание линейной регрессии, вот список вещей, которые вы можете попробовать:

  • Реализация линейной регрессии с использованием других библиотек (наGitHub)
  • Разделение набора данных поезда-теста
  • Несколько входных функций
  • Негауссовский распределенный шум
  • Различные функции ошибок
фотоАмин ФахминаUnsplash

Коды доступны наGithub, Удачного кодирования!

Статьи по Теме

Спасибо за чтение! Если вы заинтересованы в машинном обучении или Python, ознакомьтесь со следующими статьями:

Машинное обучение в Python NumPy (часть 1): нейронная сеть за 9 шагов

Понимание нейронных сетей с помощью кодирования

towardsdatascience.com

Построение минимального блокчейна в Python

Понимание блокчейна по кодированию

towardsdatascience.com

Визуализация Bike Mobility в Лондоне с использованием интерактивных карт и анимации

Изучение инструментов визуализации данных в Python

towardsdatascience.com

Первоначально опубликовано наedenau.github.io,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map