问题描述
我正在寻找逻辑回归的最佳参数,但是我发现“最佳估计量”并没有收敛。
是否有一种方法可以指定估算器需要收敛才能考虑在内?
这是我的代码。
# 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 (将#修改为@)