Линейная регрессия и градиентное схождение в Scikit learn/Pandas?

в курсовом курсе для машинного обучения https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables#Gradient_Descent_for_Multiple_Variables, он говорит, что спуск градиента должен сходиться.

Я использую линейную регрессию из scikit learn. Он не предоставляет информацию о градиентном спуске. Я видел много вопросов о stackoverflow для реализации линейной регрессии с градиентным спусками.

Как мы используем линейную регрессию от scikit-learn или pandas в реальном мире? ИЛИ Почему scikit-learn или pandas не предоставляют информацию о градиентном спуске в линейном регрессионном выходе?

Ответ 1

Изучение Scikit предоставляет вам два подхода к линейной регрессии:

1) LinearRegression объект использует обыкновенный алгоритм наименьших квадратов из scipy, поскольку LR является одним из двух классификаторов, у которых закрытое решение формы. Несмотря на курс ML - вы действительно можете изучить эту модель, просто инвертируя и умножая некоторые матрицы.

2) SGDClassifier, который представляет собой реализацию стохастического градиентного спуска, очень общий, где вы можете выбрать свои штрафные условия. Чтобы получить линейную регрессию, вы выбираете потерю как L2 и штраф также none (линейная регрессия) или L2 (регрессия Риджа)

Нет типичного градиентного спуска, потому что он редко используется . Если вы можете разложить функцию потерь на аддитивные термины, то, как известно, стохастический подход ведет себя лучше (таким образом, SGD), и если вы можете зарезервировать достаточно памяти - метод OLS быстрее и проще (таким образом, первое решение).