Какой алгоритм использует SKlearn для минимизации MSE? - PullRequest
0 голосов
/ 21 ноября 2018

Я использую библиотеку Scikit-learn для выполнения линейной регрессии.Все просто и понятно.С 6 строками кода я могу сделать работу.Тем не менее, я хочу точно знать, что происходит позади.

Поскольку я новичок в ML, возможно, мой вопрос неверный, но мне интересно, какой алгоритм использует Scikit-learn, чтобы минимизировать среднеквадратическую ошибкув методе linear_regression.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Из документации :

С точки зрения реализации это просто обычные наименьшие квадраты (scipy.linalg.lstsq), обернутые в качестве объекта предиктора.

Вы также можете посмотреть на исходный код здесь , где он вызывает linalg.lstsq .


Дополнительныйобратите внимание на что происходит за :

Если линейная формула a * x + b, вы можете получить доступ к коэффициентам (a) и смещению (b) с атрибутами coef_ и intercept_ обученной модели.

Пример игрушки, генерирующий диагональ идентичности из 3 точек для отображения атрибутов coef_ и intercept_:

from sklearn.linear_model import LinearRegression

X = np.array([[1], [2], [3]])
y = np.array([1, 2, 3])

lg = LinearRegression()
lg.fit(X, y)
lg.coef_ # 1
lg.intercept_ # ~ 0
0 голосов
/ 21 ноября 2018

Scikit-Learn LinearRegression использует решение в закрытой форме, то есть решение OLS.Он специально использует решатель Ordinary Least Squares от scipy.

...