Хребет, кажется, не улучшает LinearRegression - PullRequest
0 голосов
/ 11 апреля 2020

допустим, у нас есть следующая таблица

enter image description here

Я хочу запустить модель линейной многопараметрической регрессии в python, я обнаружил, что корреляция между независимыми переменные высоки, есть таблица корреляции

[[1.         0.92653858]
 [0.92653858 1.        ]]

Я запустил первую регрессионную модель

import numpy as np
from sklearn.linear_model import LinearRegression
x = np.array([[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]])
y = np.array([4, 5, 20, 14, 32, 22, 38, 43])
model = LinearRegression().fit(x, y)
# parameters
r_sq = model.score(x, y)
print('coefficient of determination:', r_sq)
print('intercept:', model.intercept_)
print('slope:', model.coef_)

, которая возвращает оценку как: 0,8615939258756776

Я пытался удалить корреляцию эффект с использованием регрессии гребня, вот код

import numpy as np
from sklearn.linear_model import Ridge
x = np.array([[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]])
y = np.array([4, 5, 20, 14, 32, 22, 38, 43])
model = Ridge(alpha=100).fit(x, y)
# parameters
r_sq = model.score(x, y)
print('coefficient of determination:', r_sq)
print('intercept:', model.intercept_)
print('slope:', model.coef_)

я взял слишком много альфа = 100, но оценка все еще близка к заданному значению

coefficient of determination: 0.861233012307111

означает ли это, что я не могу улучшить модель? Я могу попробовать модель Лассо, но я не думаю, что это даст еще лучший результат

...