Создание L-кривой с регрессией гребня Склеарна - PullRequest
0 голосов
/ 17 октября 2019

Обычным способом визуализации решения регрессии гребня является кривая L , которая отображает сумму квадратов ошибок по отношению к штрафу гребня для различных вариантов параметра регуляризации. Можно ли это сделать с помощью sklearn?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Вот простой ответ sklearn:

import numpy as np
from sklearn.linear_model import Ridge

alphas = np.logspace(-10, 10, 1000)
solution_norm = []
residual_norm = []

for alpha in alphas: 
    lm = Ridge(alpha=alpha)
    lm.fit(X, y)
    solution_norm += [(lm.coef_**2).sum()]
    residual_norm += [((lm.predict(X) - y)**2).sum()]

plt.loglog(residual_norm, solution_norm, 'k-')
plt.show()

, где X и y - ваши предикторы и цели, соответственно.

0 голосов
/ 17 октября 2019

В scikit-learn такой встроенной функциональности нет, но она предоставляется библиотекой Yellowbrick (устанавливается с pip или conda);адаптация примера LassoCV из их документации к вашему делу RidgeCV дает:

import numpy as np
from sklearn.linear_model import RidgeCV
from yellowbrick.regressor import AlphaSelection
from yellowbrick.datasets import load_concrete

# Load the regression dataset
X, y = load_concrete()

# Create a list of alphas to cross-validate against
alphas = np.logspace(-10, 1, 40)

# Instantiate the linear model and visualizer
model = RidgeCV(alphas=alphas)
visualizer = AlphaSelection(model)
visualizer.fit(X, y)
visualizer.show()

enter image description here

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