Ответ 1
Изучение Scikit предоставляет вам два подхода к линейной регрессии:
1) LinearRegression
объект использует обыкновенный алгоритм наименьших квадратов из scipy, поскольку LR является одним из двух классификаторов, у которых закрытое решение формы. Несмотря на курс ML - вы действительно можете изучить эту модель, просто инвертируя и умножая некоторые матрицы.
2) SGDClassifier
, который представляет собой реализацию стохастического градиентного спуска, очень общий, где вы можете выбрать свои штрафные условия. Чтобы получить линейную регрессию, вы выбираете потерю как L2
и штраф также none
(линейная регрессия) или L2
(регрессия Риджа)
Нет типичного градиентного спуска, потому что он редко используется . Если вы можете разложить функцию потерь на аддитивные термины, то, как известно, стохастический подход ведет себя лучше (таким образом, SGD), и если вы можете зарезервировать достаточно памяти - метод OLS быстрее и проще (таким образом, первое решение).