사이킷런 0.20 버전이 릴리스되었습니다. <파이썬 라이브러리를 활용한 머신러닝> 도서에 영향을 미치는 부분을 정리하여 에러타로 등록하였습니다. 깃허브의 코드도 최신 라이브러리 버전에서 모두 재실행하여 커밋하였습니다. 자세한 변경 내용은 <파이썬 라이브러리를 활용한 머신러닝>의 에러타 페이지를 참고해 주세요. 다음은 주요 변경 내용입니다.
- 사이킷런 0.19 버전 이하에서는
LinearSVC
와liblinear
를 사용하는LogisticRegression
의verbose
매개변수가 0이 아니고max_iter
반복 안에 수렴하지 않을 경우 반복 횟수를 증가하라는 경고 메세지가 나옵니다. 사이킷런 0.20 버전부터는verbose
매개변수에 상관없이max_iter
반복 안에 수렴하지 않을 경우 반복 횟수 증가 경고가 나옵니다. 경고 메세지를 피하기 위해max_iter
매개변수의 기본값을 증가시킵니다. - 향후 사이킷런 0.22 버전에서
LogisticRegression
클래스의solver
매개변수 기본값이liblinear
에서lbfgs
로 변경될 예정입니다. 사이킷런 0.20 버전에서solver
매개변수를 지정하지 않는 경우 이에 대한 경고 메세지를 출력합니다. 경고 메세지를 피하고 출력 결과를 일관되게 유지하기 위하여solver
매개변수를liblinear
로 설정합니다. - 사이킷런 0.20 버전에서
LogisticRegression
의multi_class
매개변수 옵션에auto
가 추가되었습니다.auto
로 설정하면 이진 분류이거나solver
가liblinear
일 경우에는ovr
을 선택하고 그 외에는multinomial
을 선택합니다. 사이킷런 0.22 버전부터는multi_class
매개변수의 기본값이ovr
에서auto
로 변경됩니다. 경고 메세지를 피하기 위해 명시적으로ovr
옵션을 지정합니다. - 사이킷런 0.20 버전에서
SVC
클래스의gamma
매개변수 옵션에auto
외에scale
이 추가되었습니다.auto
는1/n_features
, 즉 특성 개수의 역수입니다.scale
은1/(n_features * X.std())
로 스케일 조정이 되지 않은 특성에서 더 좋은 결과를 만듭니다. 사이킷런 0.22 버전부터는gamma
매개변수의 기본값이auto
에서scale
로 변경됩니다. 서포트 벡터 머신을 사용하기 전에 특성을 표준화 전처리하면scale
과auto
는 차이가 없습니다. 경고를 피하기 위해 명시적으로auto
옵션을 지정합니다. - 사이킷런 0.22 버전에서
OneHotEncoder
클래스가 데이터에서 정수 카테고리를 인식하는 방식이 변경될 예정입니다. 종전에는 훈련 데이터에 나타난 0~최댓값 사이 범위를 카테고리로 인식하여 원-핫 인코딩하지만 0.22 버전부터는 고유한 정수 값을 카테고리로 사용합니다. 후자의 경우 0~최댓값 사이의 정수라도 훈련 데이터에 없는 값을 변환하려면 에러가 발생합니다. 경고 메세지를 피하고 고유한 정수 값을 사용하는 방식을 선택하려면categories
매개변수를auto
로 지정합니다. - 사이킷런 0.22 버전에서
cross_val_score
함수와GridSearchCV
클래스의cv
매개변수 기본값이 3에서 5로 바뀔 예정입니다. 0.20 버전에서cv
매개변수를 지정하지 않는 경우 이에 관한 경고 메세지가 출력됩니다. 경고 메세지를 피하기 위해cv
매개변수 값을 명시적으로 3으로 지정합니다. - 사이킷런 0.22 버전부터는
GridSearchCV
와RandomizedSearchCV
의iid
매개변수 기본값이True
에서False
로 바뀝니다. 0.24 버전에서는 이 매개변수가 아예 삭제될 예정입니다.iid
매개변수가True
이면 독립 동일 분포라고 가정하고 테스트 세트의 샘플 수로 폴드의 점수를 가중 평균합니다.False
로 지정하면 단순한 폴드 점수의 평균입니다.False
일 때 기본 교차 검증과 동작 방식이 같습니다. 사이킷런 0.20 버전에서iid
매개변수가 기본값일 때 가중 평균과 단순 평균의 차이가 10^-4 이상이면 경고 메세지가 발생합니다. 경고 메세지를 피하기 위해GridSearchCV
의iid
매개변수를True
로 설정합니다.