После линейной регрессии с Ridge Regressor - какой решатель использовался? - PullRequest
0 голосов
/ 20 марта 2020

Класс линейной регрессии Scikit-learn "Регрессия хребта" имеет параметр "решатель", чтобы определить, какой решатель следует использовать.

Если установлено значение "авто", могу ли я узнать, какой решатель действительно использовался Оглядываясь назад?

В соответствии с родительским классом _RidgeBase, который наследуется Ridge, поле solver должно быть установлено на фактический используемый решатель [GitHub] , поэтому я ожидаю, что значение для того, чтобы потом. Но это, если я печатаю решатель позже, это все еще возвращает "авто"

regressor = Ridge(alpha = 0.1, fit_intercept = False, normalize = False)
regressor.fit(x_train, y_train)
y_pred = regressor.predict(x_test)
print(regressor.solver)

1 Ответ

1 голос
/ 20 марта 2020

К сожалению, судя по их исходному коду , кажется, что решатель, используемый для вашей модели, не хранится ни в одном свойстве, доступном для вас.

Однако, это в их источник , надеюсь, это поможет.

if solver == 'auto':
    if return_intercept:
        # only sag supports fitting intercept directly
        solver = "sag"
    elif not sparse.issparse(X):
        solver = "cholesky"
    else:
        solver = "sparse_cg"
...