微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GridSearchCV的LogisticRegression无法收敛

如何解决GridSearchCV的LogisticRegression无法收敛

我正在寻找逻辑回归的最佳参数,但是我发现“最佳估计量”并没有收敛。

是否有一种方法可以指定估算器需要收敛才能考虑在内?

这是我的代码

# NO PCA
cv = GroupKFold(n_splits=10)
pipe = Pipeline([('scale',StandardScaler()),('mnl',LogisticRegression(fit_intercept=True,multi_class="multinomial"))])

param_grid = [{'mnl__solver': ['newton-cg','lbfgs','sag','saga'],'mnl__C':[0.5,1,1.5,2,2.5],'mnl__class_weight':[None,'balanced'],'mnl__max_iter':[1000,2000,3000],'mnl__penalty':['l1','l2']}]

grid = gridsearchcv(estimator = pipe,param_grid=param_grid,scoring=scoring,n_jobs=-1,refit='neg_log_loss',cv=cv,verbose=2,return_train_score=True)

grid.fit(X,y,groups=data.groups)


# WITH PCA
pipe = Pipeline([(
    ('scale',('pca',PCA())
    ('mnl',mnl)])

param_grid = [{'pca__n_components':[None,15,30,45,65]
            'mnl__solver': ['newton-cg',scoring='neg_log_loss',refit=True,verbose=2)

grid.fit(X,groups=data.groups)

在第一种情况下,发现的最佳估计量是使用l2-lbfgs求解器,经过1000次迭代,并且收敛。第二个方法是找到的最佳估计器,它是使用saga求解器和l1罚函数进行的3000次迭代。我觉得这与求解器有关...但是无论如何,是否有一种简单的方法可以说明它必须收敛才能接受为最佳算法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。