Работает ли полиномиальная регрессия, когда X многомерен? - PullRequest
1 голос
/ 11 ноября 2019

Я изучаю линейную регрессию, в частности, как получить параметры, используя MLE с формулой, заданной как enter image description here

Однако я хотел спросить, работает ли эта формулакогда X многомерен или он работает, когда X это просто вектор N на 1. Потому что, когда я реализую эту формулу, используя sklearn.linear_models.LinearRegresion, я получаю совершенно разные ответы. Например, у меня есть следующий код, выводящий разные значения:

from sklearn import datasets
boston_dataset = datasets.load_boston()
features = ['TAX', 'LSTAT']
X = df[features]
Y = boston_dataset.target
model = LinearRegression()
model.fit(X)
print(f"Gradient: {model.coef_}")
print(f"y-intercept: {model.intercept_}")

вывод

Gradient: [-0.0052125  -0.88312682]
y-intercept: 35.83500136724426

Однако:

Phi = np.hstack((np.ones((len(X), 1)), X))
theta = np.dot(np.dot(np.linalg.inv(np.dot(Phi.T, Phi)), Phi.T), np.expand_dims(boston_dataset.target, 1))
theta

Вывод следующего:

array([[ 3.58350014e+01],
       [-5.21249838e-03],
       [-8.83126823e-01]])

Как видите, я получаю совершенно разные ответы как для градиентов, так и для точки пересечения y. Может ли кто-нибудь помочь мне с моей реализацией или показать мне статью, реализующую эту формулу, чтобы найти параметры, используя MLE (а не sklearn)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...