해결된 질문
작성
·
4.7K
0
LogisticRegression()으로 학습을 했을 때 아래와 같은 경고문이 뜹니다.
Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html Please also refer to the documentation for alternative solver options: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG) [Parallel(n_jobs=1)]: Done 15 out of 15 | elapsed: 26.1min finished C:\Users\Taylor\anaconda3\envs\ml_env\lib\site-packages\sklearn\linear_model\_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
해석해보니 'max_iter'까지 학습했으나 아직 정답에 수렴하지 못한 상태인 것 같은데 그냥 'max_iter'값을 늘려주면 될까요? 적절한 값을 선택하는 방법은 그냥 여러번 테스트 해보는 방법밖에 없나요?
답변주시면 감사하겠습니다.
* 한 가지 더 질문이 있습니다!
공부를 하다보니 머신러닝 분야중에서도 NLP, 텍스트가 가장 재미있었습니다.
그래서 이 쪽을 더 공부해보고 싶어 책을 좀 찾아봤는데 이렇게 공부하는게 좋을지 아니면
그냥 인터넷으로 보며 공부하는게 좋을까요?
(혹시 추천해주실 만한 책이 있을까요? 답변하기 좀 그러시다면 안하셔도 됩니다!)
답변 2
1
안녕하십니까,
1. 네, 말씀하신대로 default max_iter 100으로는 converged가 되지 않는것 같습니다. 사이킷런 0.22 버전에서는 default solver가 'liblinear’ 에서 ‘lbfgs’ 로 변경되면서 이런 warnng도 내어주는 군요. max_iter=500으로 늘려야 할 것 같습니다. 적절값 테스트는 반복 변경해 가면서 찾아야 할 것 같습니다.
2. 요새 NLP가 Embedding 기반의 Deep learning 쪽으로 많이 흘러가고 있습니다. 제가 Deep learning NLP 책은 많이 보지 않아서 추천 역량이 부족하지만, 검색을 해본 결과 '한국어 임베딩' 이라는 책이 평이 괜찮은 것 같습니다. 단 목차를 봐서는 어느정도 Deep learning에 기반 지식이 있으셔야 할 거 같습니다.
감사합니다.
0
책보면서 하는데 저도 lr_clf = LogisticRegression()에서 저런 warning 이 뜨더군요
max_iter = 4000로 하니 제대로 되긴하는데..
로지스틱 회귀 분석에서 어떤것을 의미하나요??