인프런 커뮤니티 질문&답변

taylous님의 프로필 이미지
taylous

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

20 뉴스그룹 분류 강의 질문입니다.

해결된 질문

작성

·

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로 하니 제대로 되긴하는데.. 

로지스틱 회귀 분석에서 어떤것을 의미하나요?? 

taylous님의 프로필 이미지
taylous

작성한 질문수

질문하기