Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Categories:

Реализация линейной регрессии МНК с autograd - библиотекой для символического дифференцирования

Случайно наткнулся недавно на Autograd - питоновскую либу, которая умеет для функции, заданной исходным текстом в коде, получить функцию же частной производной по указанному аргументу. Всякие tensorflow, pytorch и theano это, конечно, тоже делают под капотом. Но autograd делает это с любой питоновской функцией. Магия.

Я не смог удержаться от небольшого эксперимента с написанием реализации метода наименьших квадратов для линейной регрессии. Код берет набор пар (x,y), примерно соответствующих некоторой прямой линии (см. calc_y).  Функция loss - это целевая функция для МНК. Именно ее autograd дифференцирует по каждому из аргументов a и b. Далее - грязная реализация градиентного спуска.

Код на гитхабе

Второй вариант сделан из какого-то примера для autograd, и позволяет достаточно безболезненно увеличивать порядок полинома:

Код на гитхабе

Ну и для сравнения - решение линейной регрессии МНК на Keras:

Код на гитхабе

Tags: autograd, python, регрессия, численные методы
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments