Вернуть перехват из sklearn enet_path

При использовании таких функций, как sklearn.linear_model.lasso_path, если return_models имеет значение False, возвращаемые значения - это альфа и коэффициенты. Тем не менее, перехваты для пути НЕ возвращаются, что означает, что коэффициенты не могут быть применены для прогнозирования новых данных. В качестве альтернативы можно попросить вернуть модели, но похоже, что возвращающиеся модели будут устаревшими в ближайшее время из-за предупреждения, которое я получил:

"DeprecationWarning: используйте enet_path(return_models=False), так как он возвращает коэффициенты и альфа-значения, а не просто список моделей, как ранее lasso_path/enet_path сделал. return_models в конечном итоге будет удален в 0,15, после чего возвращение альф и коф станет нормой ".

Итак, как можно получить полный путь, включающий коэффициенты, альфы и перехваты?

Спасибо

2 ответа

Добавление нового столбца из 1 к X будет наказывать новый столбец, однако термин перехвата обычно не наказывается в лассо. я пришел к выводу, чтоsklearn.linear_model.lasso_pathпредполагает, что переменная ответа центрирована в следующем примере:

      remove_shift = True

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
               columns=['a', 'b', 'c'])


train_x = df.iloc[:,:-1]
train_y = df.iloc[:,-1]
if remove_shift:
    y_shift = train_y.mean()
    train_y -= y_shift

# Provide a single alpha value (0.5) for the path
print("Lasso path solution:")
_, coefs_lasso, _ = lasso_path(train_x, train_y, alphas=[.5])

print("Coefficients:", coefs_lasso)

print("Lasso solution:")

my_model = Lasso(max_iter=1000, alpha = .5, fit_intercept = False).fit(train_x, train_y)

print("Model coefs:", my_model.coef_)
print("Intercept:",my_model.intercept_)

Это также требует использования Lasso сfit_intercept = False. Таким образом, центрирование переменной ответа перед вызовомlasso_pathдостаточно имхо.

Быстрый взлом состоит в том, чтобы добавить вашу матрицу X с новым столбцом 1 с. Перехват тогда просто становится одним из коэффициентов.

Другие вопросы по тегам