gpt4 book ai didi

python - 带Lasso惩罚的线性回归需要增加迭代次数,Scikit-learn

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:56 25 4
gpt4 key购买 nike

我正在使用 Scikit-learn 包中实现的 Lasso 线性回归。

linear_regress = linear_model.Lasso(alpha = 2)
linear_regress.fit(X, Y)

对于 X,有 7827 个示例和 758 个特征。但是我收到警告:

Objective did not converge for target 0, you might want to increase the number of iterations ' to increase the number of iterations')

同时,交叉验证的MAE为0.00304247702091

然后,我按照它的建议增加了迭代次数。 (我假设我做对了):

linear_regress = linear_model.Lasso(alpha = 2, max_iter = 100000, tol = 1e-20)

但警告仍然存在,MAE 增加到 0.0191056040626,这更糟。

那么有人知道如何解决这个问题吗?

顺便说一句,对于交叉验证的结果,训练数据的MAE远小于测试数据的MAE,例如(alpha=2):

The MAE on the TRAINING data is 6.3462754706e-14
The MAE on the TEST data is 0.238521024414

我假设存在过度拟合。但是增加 alpha 并没有多大帮助,例如 (alpha=5)

The MAE on the TRAINING data is 1.29613883816e-13
The MAE on the TEST data is 0.0677816327262

增加 alpha 也会使平均 MAE 增加。

提前致谢!

最佳答案

我猜'not converge'的警告可能是由于欠拟合,但你需要验证(可能不需要将tol值设置得太小).我建议你在拟合中通过 2^(-5) 迭代 alpha2^3 ,并绘制学习曲线来观察训练和测试数据(交叉验证)的性能,并选择最佳正则化参数以最好地避免欠拟合和过拟合。

关于python - 带Lasso惩罚的线性回归需要增加迭代次数,Scikit-learn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com