scikit-learn
регрессия
Поиск…
Обычные наименьшие квадраты
Обычные наименьшие квадраты - это метод нахождения линейной комбинации признаков, которая наилучшим образом соответствует наблюдаемому результату в следующем смысле.
Если вектором прогнозируемых результатов является y , а объясняющие переменные образуют матрицу X , тогда OLS найдет решение β- вектора
min β | y ^ - y | 2 2 ,
где y ^ = X β - линейное предсказание.
В sklearn это делается с использованием sklearn.linear_model.LinearRegression
.
Контекст приложения
OLS следует применять только к регрессионным проблемам, обычно это непригодно для проблем классификации: Contrast
- Является ли спам электронной почты? (Classfication)
- Какова линейная зависимость между upvotes зависит от длины ответа? (Регрессия)
пример
Давайте LinearRegression
линейную модель с некоторым шумом, а затем посмотрим, будет ли LinearRegression
восстановлением линейной модели.
Сначала мы сгенерируем матрицу X
:
import numpy as np
X = np.random.randn(100, 3)
Теперь мы будем генерировать y
как линейную комбинацию X
с некоторым шумом:
beta = np.array([[1, 1, 0]])
y = (np.dot(x, beta.T) + 0.01 * np.random.randn(100, 1))[:, 0]
Обратите внимание, что истинная линейная комбинация, генерирующая y
, задается `beta.
Чтобы попытаться восстановить это только из X
и y
, давайте сделаем следующее:
>>> linear_model.LinearRegression().fit(x, y).coef_
array([ 9.97768469e-01, 9.98237634e-01, 7.55016533e-04])
Обратите внимание, что этот вектор очень похож на beta
.