Logistic
如何修復 LogisticRegressionCV 中的不收斂
我正在使用 scikit-learn 對一組數據(大約 14 個參數和 > 7000 個標準化觀察值)執行邏輯回歸和交叉驗證。我還有一個目標分類器,其值為 1 或 0。
我遇到的問題是,無論使用哪種求解器,我都會不斷收到收斂警告……
model1 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='newton-cg',penalty='l2') /home/b/anaconda/lib/python2.7/site-packages/scipy/optimize/linesearch.py:285: LineSearchWarning: The line search algorithm did not converge warn('The line search algorithm did not converge', LineSearchWarning) /home/b/anaconda/lib/python2.7/site-packages/sklearn/utils/optimize.py:193: UserWarning: Line Search failed model2 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='sag',penalty='l2') max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 second model3 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='lbfgs',penalty='l2') /home/b/anaconda/lib/python2.7/site-packages/sklearn/linear_model/logistic.py:701: UserWarning: lbfgs failed to converge. Increase the number of iterations. warnings.warn("lbfgs failed to converge. Increase the number " model4 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='liblinear',penalty='l2') cg reaches trust region boundary iter 18 act 1.382e+06 pre 1.213e+06 delta 1.860e+01 f 7.500e+06 |g| 1.696e+06 CG 8 iter 2 act 1.891e+06 pre 1.553e+06 delta 1.060e-01 f 1.397e+07 |g| 1.208e+08 CG 4 iter 4 act 2.757e+04 pre 2.618e+04 delta 1.063e-01 f 1.177e+07 |g| 2.354e+07 CG 4 iter 18 act 1.659e+04 pre 1.597e+04 delta 1.506e+01 f 7.205e+06 |g| 4.078e+06 CG 4 cg reaches trust region boundary iter 7 act 1.117e+05 pre 1.090e+05 delta 4.146e-01 f 1.161e+07 |g| 9.522e+05 CG 4 iter 31 act 1.748e+03 pre 1.813e+03 delta 2.423e+01 f 6.228e+05 |g| 5.657e+03 CG 14
我需要做什麼才能停止收到警告?
您可以先應用程序的建議來增加
max_iter
參數;但請記住,您的數據也有可能無法通過邏輯模型擬合。