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 (将#修改为@)