Я просматриваю видео в бесплатном онлайн-курсе Эндрю Нг по машинному обучению в Стэнфорде. Он рассматривает Gradient Descent как алгоритм для решения функций линейной регрессии и записи в Octave для его выполнения. Предположительно я мог бы переписать эти функции в R, но мой вопрос в том, разве функция lm () уже не дает мне вывод линейной регрессии? Зачем мне писать свою собственную функцию градиентного спуска? Есть ли какое-то преимущество или это чисто учебное упражнение? Lm () делает градиентный спуск?
r
regression
machine-learning
gradient-descent
пользователь
источник
источник
Ответы:
Градиентный спуск - довольно плохой способ решения задачи линейной регрессии.
lm()
Функция в R внутренне использует форму QR - разложения , которая является значительно более эффективным. Тем не менее, градиентный спуск - это, как правило, полезный метод, который стоит ввести в этом простом контексте, чтобы было понятнее, как применять его в более сложных задачах. Если вы хотите реализовать свою собственную версию в качестве учебного упражнения, это стоит сделать, ноlm()
это лучший выбор, если все, что вам нужно, это инструмент для линейной регрессии.источник
Причина, по которой онлайн градиент полезен для больших масштабов приложений. В любом случае, теперь есть библиотеки, которые реализуют это, так что вам не нужно его программировать. Это хороший способ узнать, как все работает.
В словах Леона Ботту:
Масштабное обучение
проект sgd
источник