【问题标题】:Lasso regression model has convergence warnings with GridSearchCVLasso 回归模型与 GridSearchCV 有收敛警告
【发布时间】:2021-12-07 11:15:21
【问题描述】:

这是我的代码:

from sklearn.linear_model import Lasso
from sklearn.model_selection import GridSearchCV
import numpy as np

alpha_space = {'alpha': np.logspace(-4, 0, 50)}
lasso = Lasso(normalize=True,  tol=0.0001)
grid_search_lr = GridSearchCV (lasso, alpha_space, cv=3, scoring="neg_mean_squared_error")
grid_search_lr.fit(X_tr, y_tr)

print(grid_search_lr.best_params_)
print(np.sqrt(-grid_search_lr.best_score_))

但是当我去运行它时,在答案之前我至少收到了 20 个这样的警告:

/usr/local/lib/python3.7/dist-packages/sklearn/linear_model/_coordinate_descent.py:476: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Duality gap: 8451216620580.201, tolerance: 12888767617.309622

积极的)

我应该怎么做才能修复或阻止这些警告?

【问题讨论】:

    标签: python machine-learning scikit-learn gridsearchcv lasso-regression


    【解决方案1】:

    Lasso 估计器使用迭代算法来解决优化问题。迭代算法在达到所需的收敛水平时停止(使用容差tol 设置)。为了避免让算法执行过多的迭代(并且可能永远不会停止),算法也会在执行最大次数的迭代时停止 (max_iter)。在这种情况下,它会发出警告,指出它未能达到所需的收敛水平。

    为避免收敛警告,您可以:

    • 增加容差tol(以要求不那么严格的收敛级别)
    • 增加最大迭代次数max_iter(以花更多时间寻找收敛水平)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-14
      • 2020-02-14
      • 2018-11-11
      • 2014-09-08
      • 2020-04-11
      • 2020-05-11
      • 2021-02-24
      • 2017-02-08
      相关资源
      最近更新 更多