LogisticRegressionCV에서 비 수렴을 수정하는 방법


13

scikit-learn을 사용하여 일련의 데이터에 대해 교차 검증을 사용하여 로지스틱 회귀 분석을 수행하고 있습니다 (약 7000 개의 정규 관측 값을 갖는 약 14 개의 매개 변수). 또한 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

경고가 표시되지 않게하려면 어떻게해야합니까?


나는이 완벽하거나 근처의 경우인지 궁금 분리 .
Sycorax는

답변:


13

max_iter매개 변수 를 높이기 위해 프로그램 제안을 적용하여 시작할 수 있습니다 . 그러나 로지스틱 모델로 데이터를 적합하게 만들 수 없다는 것도 염두에 두십시오.


2
max_tr을 최대 4000까지 늘려야했지만 트릭을 수행했습니다. 감사!
user3188040 2016

@ user3188040 얼마나 오래 걸렸나요?
Dave Liu

나는 scikit에서 완전히 새로운 사람입니다. max_tr (max_iter?)을 4000으로 "범프"하는 방법은 무엇입니까?
Ron Jensen – 우리는 모두 모니카

LogisticRegression 오브젝트를 작성할 때 max_iter 값을 변경할 수 있습니다. model1 = linear_model.LogisticRegressionCV (max_iter = 4000)
심리학
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.