태그 보관물: 사이킷런

“혼자 공부하는 머신러닝+딥러닝”, “혼자 공부하는 데이터 분석 with 파이썬” 주피터 노트북 재실행 완료

<혼자 공부하는 머신러닝+딥러닝>의 주피터 노트북과 <혼자 공부하는 데이터 분석 with 파이썬>의 주피터 노트북을 코랩, 사이킷런 1.2.2, 텐서플로 2.14.0, 판다스 1.5.3에서 모두 다시 테스트하여 업데이트했습니다! 코드 실행에 문제가 있거나 궁금한 점이 있으면 언제든지 블로그나 깃허브로 알려 주세요!

“핸즈온 머신러닝 3판”이 출간되었습니다!

전세계에서 가장 많이 팔린 머신러닝 도서인 <핸즈온 머신러닝 3판>이 출간되었습니다! 네 오늘은 <만들면서 배우는 생성 AI>와 함께 하루에 두 권이 출간되는 경험을 하네요! 🙂

핸즈온 머신러닝 1판이 2018년에 처음 나와서 정말 선풍적인 인기를 얻었습니다. 그리고 2020년에 2판, 2023년에 3판이 출간되었습니다. 원서의 인기가 번역서에 잘 이어지지 않는 도서도 꽤 많습니다. 하지만 <핸즈온 머신러닝>은 많은 분들의 도움으로 원서 못지 않은 인기를 얻고 있습니다.

3판은 자연어 처리(트랜스포머 + 허깅 페이스)와 생성 모델을 추가로 다루고 시계열 예제를 실전 데이터를 사용하도록 바꾸었습니다. 또한 사이킷런과 케라스의 최신 변경 사항을 알차게 담고 있습니다. 오렐리앙의 실감나는 설명은 여전하구요! 변경 사항에 대한 자세한 내용은 Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 3rd Edition 번역 완료!를 참고하세요.

3판에서 쪽수가 더 늘어나 천 페이지가 넘게 되었습니다. 독자들이 조금 더 편하게 책을 볼 수 있도록 두 권으로 쉽게 분권할 수 있도록 제본되었습니다. 어느 책상, 어느 책장에서도 가장 유용한 책 중 하나가 되리라 믿습니다!

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 3rd Edition 번역 완료!

<핸즈온 머신러닝 3판>의 번역을 완료했습니다. 2판과 3판의 주요 차이점은 다음 그림을 참고하세요.
(3판 번역서는 9월 출간 예정이라고 합니다)

조금 더 자세하게 각 장의 내용을 요약하면 다음과 같습니다!

  • 1장은 큰 변화가 없습니다. 지도 학습, 비지도 학습, 준지도 학습 외에 자기 지도 학습 설명이 추가되었습니다. 삶의 만족도 예제를 위한 데이터를 최신으로 업데이트했습니다. 홀드아웃 검증에 대한 그림과 훈련-개발 세트를 설명하는 그림이 추가되었습니다.
  • 2장은 그간 사이킷런이 많이 업데이트되었기 때문에 소소한 부분이 많이 바뀌었습니다. 먼저 주피터 노트북 대신 코랩에 대한 간략한 설명으로 시작합니다. 코랩의 편리함과 주의 사항도 언급합니다. 캘리포니아 주택 데이터셋을 사용하는 예제는 전반적으로 깔끔하게 코드를 정리했습니다. SimpleImputer외에 KNNImputerIterativeImputer로 언급합니다. 원-핫 인코딩 부분에서는 판다스의 get_dummies 함수를 추가로 소개하고 왜 사용하지 않는지 설명합니다. 최근 사이킷런에서 지원하는 데이터프레임 입력-데이터프레임 출력 기능을 잘 반영했습니다. 무엇보다도 새로운 ColumnTransformer를 적극 활용합니다. 사용자 정의 변환기는 TransformerMixin을 상속하는 방식에서 FunctionTransformer를 사용하는 예제로 바꾸었습니다. 마지막으로 하이퍼파라미터 튜닝 부분에서 HalvingGridSearchCV, HalvingRandomSearchCV 클래스도 잠깐 언급해 줍니다.
  • 3장은 큰 변화는 없고 자잘한 수정이 많습니다. 편향된 데이터셋에 대한 문제점을 보이기 위해 만든 자작 클래스를 사이킷런의 DummyClassifier로 바꾸었습니다. 다중 분류에 대한 설명과 예제가 보강되었습니다. 오차 행렬에 대한 그래프가 대폭 변경, 추가되었고 설명도 상세해졌습니다. ClassifierChain에 대한 내용이 추가되었습니다. 코드는 전반적으로 새로 작성되었습니다.
  • 4장도 큰 변화가 없습니다. partial_fit()warm_start에 대한 설명이 추가되었고 규제항에 대한 공식을 변경했습니다. 조기 종료에 대한 코드와 설명이 보강되었습니다. 코드는 전반적으로 새로 작성되었습니다.
  • 5장은 LinearSVCSGDClassifier에 대한 설명이 보강되었고 힌지 손실과 제곱 힌지 손실에 대한 설명이 자세해졌습니다. 대신 콰드라틱 프로그래밍 절이 삭제되었습니다.
  • 6장은 거의 변화가 없고 결정 트리가 축 회전에 대한 민감하다는 것과 분산이 높다는 것을 설명하기 위한 절이 추가되었습니다.
  • 7장은 그레이디언트 부스팅의 조기 종료를 위해 n_iter_no_change를 사용하는 설명이 추가되었습니다. (드디어!) 히스토그램 부스팅 절이 추가되었습니다(하지만 XGBoost에 대해 자세히 다루지는 못했습니다). StackingClassifier를 사용하는 방식으로 스태킹 절이 대폭 수정되었습니다.
  • 8장에서 PCA로 차원을 줄인후 하이퍼파라미터 튜닝을 하는 예제와 memmap 파일과 IPCA를 사용하는 예제가 추가되었습니다. 커널 PCA 절이 삭제되고 대신 랜덤 투영 절이 추가되었습니다.
  • 9장에서 가우스 혼합 모델의 이론 부분이 삭제되었습니다. 사이킷런의 준지도 학습 클래스에 대한 소개가 추가되었습니다. 유사도 전파에 대한 설명이 보강되었습니다.
  • 10장은 케라스를 사용한 인공 신경망을 소개합니다. 그간 편향 뉴런을 따로 표기했는데 3판에서 드디어 이를 뺐습니다. MLPRegressor 예제가 추가되었습니다. 케라스의 역사(?)에 대한 소개가 간략해졌고 설치 절이 삭제되었습니다. 전체적으로 케라스 API를 사용한 코드가 갱신되었습니다. 특히 캘리포니아 주택 데이터셋을 사용한 예제, 모델 저장과 복원, 콜백, 텐서보드 설명 등이 크게 바뀌었습니다. 그리고 드디어 하이퍼파라미터 튜닝을 위해 케라스 튜너를 다루는 절이 들어갔습니다! 꽤 상세히 설명하기 때문에 만족하실 것 같네요.
  • 11장은 신경망 훈련을 위한 다양한 기술을 다룹니다. 기존 활성화 함수 설명외에 추가로 GELU, Swish, Mish가 포함되었습니다. 옵티마이저에서는 AdamW가 추가되었습니다. 배치 정규화, 전이 학습, 학습률 스케줄링, 몬테 카를로 드롭아웃 등 주요 코드와 설명이 업데이트되었습니다. 특히 실용 가이드라인이 최신 기술에 맞게 바뀌었습니다.
  • 12장은 텐서플로로 사용자 정의 모델을 만들고 훈련하는 내용을 다룹니다. 더이상 사용되지 않는 케라스 백엔드 관련 내용이 업데이트되었습니다. 사용자 정의 지표, 층, 모델, 훈련을 위한 코드와 설명이 최신 케라스 버전에 맞추어 모두 업데이트 되었습니다. 텐서플로 그래프 섹션에 XLA 설명이 추가되었습니다.
  • 13장은 데이터 전처리에 대한 소개하며 이전 판에 비해 많은 수정이 있습니다. tf.Transform을 삭제하고 케라스 전처리 층에 대한 내용을 크게 확대했습니다. tf.data API를 사용한 코드가 개선되었고 케라스와 함께 사용하는 예시도 대폭 변경되었습니다. 케라스 전처리 층으로 Normalization, Discretization, CategoryEncoding, StringLookup, Hashing 층을 각각각의 절에서 자세히 설명합니다. 임베딩 소개 부분에서 StringLookup 층과 함께 사용하는 예시를 들어 보이며 텐서플로 허브에서 사전 훈련된 모델을 로드하는 방법을 소개합니다. 허깅 페이스를 사용한 예시는 16장으로 미룹니다. 또한 이미지를 위한 전처리 층도 간략히 소개합니다. 더 자세한 내용은 합성곱 신경망을 다루는 14장에서 설명할 예정입니다.
  • 14장에서 텐서플로 저수준 연산을 사용하는 합성곱 신경망의 예제가 케라스 코드와 설명으로 바뀌었습니다. 깊이 방향 풀링을 구현하는 예시를 텐서플로 저수준 연산과 람다 층을 사용한 코드에서 케라스 사용자 정의 층으로 바꾸었습니다. 대표적인 CNN 구조 소개에서 SENet이 추가되었습니다. 또한 마지막에 간략하지만 Xception, ResNeXt, DenseNet, MobileNet, CSPNet, EfficientNet도 소개하고 CNN 구조 선택 가이드라인을 제시합니다. 객체 탐지에 대한 설명이 보강되고 객체 추적이 추가되었습니다.
  • 15장은 큰 폭으로 바뀌었습니다. 인공 데이터셋을 사용하지 않고 시카고 교통 데이터를 사용하도록 전체 예제를 바꾸었습니다. 기준 모델로 선형 모델 외에 ARIMA 모델이 추가되었습니다. 이를 위해 statsmodels 라이브러리를 사용하고 몇가지 ARIMA 변종에 대해 살펴 볼 수 있습니다. 다변량 시계열 예측하기 절이 추가 되었고 여러 타임 스텝을 예측하는 절이 크게 바뀌었습니다. 시퀀스-투-시퀀스 방식을 사용하여 예측하는 방식이 추가되었습니다. 핍홀에 대한 설명이 삭제되었습니다.
  • 16장은 NLP를 다루며 책 전체에서 가장 많이 바뀐 장이 아닐까 합니다. 그만큼 NLP 분야의 변화가 크다는 의미 같습니다. 셰익스피어 텍스트를 생성하는 예제는 15장에서 윈도 데이터셋을 상당히 다룬 덕분에 코드와 설명이 간소화되었습니다. 대신 텍스트 전처리 층을 최종 모델에 포함하는 예시가 추가되었습니다. IMDb 감성 분석 예제는 케라스 전처리 층을 사용하도록 코드와 설명이 모두 바뀌었습니다. 케라스에서 마스킹 처리에 대한 설명이 업데이트되었습니다. 사전 훈련된 단어 임베딩의 설명을 업데이트하고 언어 모델에 대한 소개가 추가되었습니다. 영어-프랑스어 번역 예제를 영어-스페인어 번역 예제로 바꾸고 전체 코드와 설명이 업데이트되었습니다. 텐서플로 애드온을 사용했던 어텐션 예제를 케라스 어텐션 층으로 바꾸었습니다. 트랜스포머에 대한 설명이 업데이트되었고 인코더와 디코더 구조를 직접 구현하는 예시가 포함되었습니다. 최근에 등장한 다양한 언어 모델에 대한 소개가 많이 추가되었고 마지막에 허깅 페이스 트랜스포머스 라이브러리를 사용하는 예시가 포함되었습니다!
  • 17장은 기존 컨텐츠를 거의 그대로 유지하고 확산 모델만 추가되었습니다. 확산 모델의 개념과 이론을 설명하고 정방향 과정과 역방향 과정을 직접 구현하여 패션 MNIST와 유사한 이미지를 생성하는 예제를 다룹니다.
  • 18장은 강화 학습을 다룹니다. 2판의 내용을 그대로 승계하고 주로 코드를 최신으로 업데이트했습니다. 부족한 지면 때문에 TF-Agents 절이 삭제되었습니다.
  • 19장은 분산 훈련과 배포에 관한 주제를 다룹니다. 텐서플로 서빙에 대한 설명과 코드가 많이 변경되었습니다. GCP AI 플랫폼에 대한 부분을 모두 버텍스 AI로 업데이트했습니다(거의 새로 작성 했네요). 웹 페이지에서 모델 실행을 위한 TFJS 설명이 보강되었고 예제도 추가되었습니다. 병렬화 기술 소개에 PipeDream과 Pathways가 추가되었습니다. 마지막으로 버텍스 AI의 하이퍼파라미터 튜닝 방법과 케라스 튜너를 사용한 하이퍼파라미터 튜닝 방법이 추가되었습니다.

‘혼자 공부하는 머신러닝+딥러닝’ 사이킷런 1.2.2, 텐서플로 2.11.0에서 재실행 완료

<혼자 공부하는 머신러닝+딥러닝>의 주피터 노트북을 코랩(사이킷런 1.2.2와 텐서플로 2.11.0)에서 모두 재실행하여 업데이트했습니다.

9-02절의 코드가 원-핫 인코딩 벡터 크기 때문에 코랩에서 메모리 부족을 일으킵니다. 이를 피하기 위해 사용하는 단어 개수를 500개에서 300개로 줄였습니다. 자세한 수정 내용은 에러타 페이지를 참고해 주세요.

감사합니다!

‘파이썬 라이브러리를 활용한 머신러닝(개정 2판)’ 사이킷런 1.2.1에서 재실행 완료

<파이썬 라이브러리를 활용한 머신러닝(개정 2판)>의 코드를 사이킷런 1.2.1 버전에서 재실행하여 깃허브에 업데이트했습니다.

주요 수정 사항은 다음과 같습니다. 사이킷런 1.2 버전에서 load_boston() 함수가 삭제되었기 때문에 대신 보스턴 주택 데이터셋을 직접 다운로드 하도록 수정합니다. 넘파이 1.20 버전에서 np.bool이 deprecated 되었기 때문에 대신 bool을 사용합니다.

맷플롯립 3.4.0 버전에서 _rebuild() 메서드가 사라졌기 때문에 대신 3.2.0 버전에서 추가된 addfont() 메서드를 사용하여 한글 폰트를 추가하도록 수정합니다. 또 imshow() 함수에서 vmin, vmax 매개변수를 삭제했습니다.

감사합니다!

“혼자 공부하는 데이터 분석 with 파이썬”이 출간되었습니다!

파이썬을 활용한 초절정 데이터 분석 입문서 <혼자 공부하는 데이터 분석 with 파이썬>이 출간되었습니다!

이 책은 파이썬 데이터 과학 생태계의 핵심 라이브러리인 판다스, 넘파이, 맷플롯립, 사이파이, 사이킷런을 사용하여 데이터 분석에 필요한 기초 지식을 쌓을 수 있도록 돕습니다. 또한 뷰티플수프, 리퀘스트 같은 유용한 다른 패키지도 함께 배울 수 있죠.

데이터 수집, 정제, 분석, 시각화, 검증 그리고 모델링까지 이 분야의 기술이 궁금하다면 바로 이 책으로 시작하세요!

동영상 강의도 함께 들으시면 책을 완독하는데 도움이 되실거에요! 🙂

한빛미디어의 혼공단에 참여해서 같이 공부하시면 더욱 좋습니다! 🙂

“파이썬 라이브러리를 활용한 머신러닝” 사이킷런 1.1 버전 업데이트

최근 릴리스된 사이킷런 1.1.x 버전에서 변경된 부분에 맞춰 <(번역개정2판) 파이썬 라이브러리를 활용한 머신러닝>의 본문 내용을 다음과 같이 업데이트합니다!

  1. (p102) 사이킷런 1.3 버전부터 SGDClassifier의 loss 매개변수 중 로지스틱 손실을 의미하는 'log'가 'log_loss'로 바뀔 예정이므로 첫 번째 줄에서 “훈련합니다.”를 “훈련합니다(1.3 버전에서 'log'가 'log_loss'로 바뀔 예정입니다).“로 수정합니다.
  2. RandomForestClassifier와 ExtraTreesClassifier의 max_features 매개변수 기본값이 'auto'에서 'sqrt'로 바뀔 예정이므로,
    • (p127) 주석 47번을 다음과 같이 바꿉니다. “RandomForestClassifier의 max_features 기본값이 'auto'로 sqrt(n_features)를 의미합니다. 1.3 버전에서는 max_features 기본값이 'auto'에서 'sqrt'로 바뀔 예정입니다.
    • (p143) 표 2-2에서 랜덤포레스트와 엑스트라트리의 ‘특성 개수’ 항목을 다음과 같이 수정합니다.
      분류: max_features=’auto’ (1.3 버전에서 ‘sqrt’로 변경예정)
      회귀: 전체 특성
    • (p315) 주석 20번에서 “랜덤 포레스트의 기본값은 "auto"로 특성 개수의 제곱근을 나타내며, … 하지만 max_features="auto"로 설정하면…”을 “랜덤 포레스트 분류기는 기본적으로 특성 개수의 제곱근을 사용하며, … 하지만 max_features="sqrt"로 설정하면…”로 수정합니다.
  3. GradientBoostingClassifier의 loss 매개변수 기본값이 1.3 버전에서 'deviance'에서 'log_loss'로 바뀔 예정이므로
    • (p128) 주석 50번 네 번째 줄에서 “손실을 의미하는 'deviance'입니다.”를 “손실을 의미하는 'deviance'입니다(1.3 버전에서 'deviance'가 'log_loss'로 바뀔 예정입니다).”로 수정합니다.
    • (p143) 표 2-2의 그레이디언트 부스팅의 ‘손실 함수’ 항목에서 “(로지스틱 회귀)”를 “(로지스틱 손실. 1.3 버전에서 'log_loss'로 바뀔 예정)”으로 수정합니다.
  4. (p143) HistGradientBoostingClassifier의 loss 매개변수 기본값이 1.3 버전에서 'auto'에서 'log_loss'로 바뀔 예정이므로 표 2-2의 히스토그램 기반 부스팅의 ‘손실 함수’ 항목에서 “(이진분류는 'binary_crossentropy', 다중 분류는 'categorical_crossentropy')”을 “(로지스틱 손실. 1.3 버전에서 'log_loss'로 바뀔 예정)”로 수정합니다.
  5. (p297) 버전 1.1에서 OneHotEncoder 클래스에 자주 등장하지 않는 범주를 하나로 묶어주는 min_frequency와 max_categories 매개변수가 추가 되었습니다. 4.2절 아래 세 번째 줄에서 “OneHotEncoder 클래스에 구현되어 있습니다.”를 “OneHotEncoder 클래스에 구현되어 있습니다.<주석>옮긴이_ 버전 1.1에서 추가된 min_frequency 매개변수를 사용하면 특정 횟수 또는 비율 보다 적게 등장하는 범주를 하나의 특성으로 합칠 수 있습니다. 또한 max_categories 매개변수를 사용하여 원-핫 인코딩으로 만들어지는 특성의 개수를 제한할 수 있습니다.</주석>“로 수정합니다.

감사합니다! 🙂

“파이썬 라이브러리를 활용한 머신러닝(번역개정2판)”이 출간되었습니다!

2017년 처음 이 책을 작업할 때 사이킷런 코드를 보면서 무식하게 노트에 한 줄 한 줄 펜으로 번역해서 옮겼던 기억이 납니다. 사이킷런 개발자가 쓴 책인만큼 잘 옮기고 싶었고 그때는 지금처럼 좋은 책이 많지 않아서 더 그랬던 것 같습니다.

무슨 생각이 들었는지 읽을만한 책을 만들자고 호기롭게 시작한 그 도전이 5년을 지나 오늘 여기까지 오게된 것 같네요. 이 책이 없었다면 아마 지금 다른 일을 하고 있을 것 같습니다.

2019년 번역개정판을 내고도 많은 분들에게 꾸준히 사랑을 받았습니다. 정말 감사드립니다. 새로운 번역개정2판은 최근 릴리즈된 사이킷런 1.0 버전을 반영하였습니다. 새로운 기능과 변경된 내용을 많이 담아서 500페이지가 넘었습니다. 또 구글 코랩에서 실습할 수 있도록 코드를 업데이트했습니다. 흔쾌히 번역개정2판을 허락해 주신 한빛미디어 출판사에 감사드립니다. 다시 한 번 머신러닝 학습의 엔트로피를 줄이는데 도움이 되기를 기대합니다! 감사합니다! 🙂

“머신러닝 파워드 애플리케이션” 사이킷런 1.0 업데이트 완료!

<머신러닝 파워드 애플리케이션>의 주피터 노트북을 사이킷런 1.0에 맞추어 업데이트했습니다. 업데이트된 노트북은 깃허브 저장소에서 확인하실 수 있습니다. 감사합니다! 🙂

[핸즈온 머신러닝 2판], [머신 러닝 교과서 3판] 사이킷런 1.0 업데이트 완료

[핸즈온 머신러닝 2판], [머신 러닝 교과서 3판]의 주피터 노트북을 사이킷런 1.0 버전에 맞추어 모두 테스트하여 깃허브에 반영하였습니다. 변경이 필요한 부분은 수정하거나 주석을 추가했습니다. 아래 에러타를 참고해 주세요.

감사합니다! 🙂

핸즈온 머신러닝 2판

  • (p197) 넘파이 1.20버전부터 np.int가 deprecated 되었기 때문에 첫 번째 코드 블럭의 마지막 줄에서 astype(np.int)를 astype(int)로 수정합니다.
  • (p179) 사이킷런 1.0에서 get_feature_names() 메서드를 가진 변환기에 get_feature_names_out() 메서드가 추가되었고 get_feature_names()는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 따라서 23번 주석에서 get_feature_names()를 get_feature_names_out()으로 수정합니다.

머신 러닝 교과서 3판

  • (p157) 넘파이 1.20버전부터 np.int가 deprecated 되었기 때문에 아래에서 7번째 줄에 OrdinalEncoder(dtype=np.int)를 OrdinalEncoder(dtype=int)로 수정합니다. (p158) 위에서 12번째 줄에 “np.int로 지정했습니다”를 “int로 지정했습니다”로 수정합니다. (p159) 위에서 14번째 줄에 OrdinalEncoder()를 OrdinalEncoder(dtype=int)로 수정합니다.
  • (p236) 아래에서 5번째 줄 끝에 다음 주석을 추가합니다. “구현되어 있습니다.<주석>역주 사이킷런 1.2 버전에서 TSNE 클래스의 init 매개변수의 기본값이 'random'에서 'pca'로 바뀔 예정입니다.”
  • (p271) 사이킷런 1.0 버전에서 plot_confusion_matrix()가 deprecated 되었고 1.2 버전에서는 삭제될 예정입니다. 위에서 4번째 줄에서 from sklearn.metrics import plot_confusion_matrix를 from sklearn.metrics import ConfusionMatrixDisplay로 수정합니다. 위에서 5번째 줄과 아래에서 4번째 줄에서 plot_confusion_matrix(pipe_svc, ...)를 ConfusionMatrixDisplay.from_estimator(pipe_svc, ...)로 수정합니다.
  • (p278) 사이킷런 1.0 버전에서 plot_roc_curve()가 deprecated 되었고 1.2 버전에서는 삭제될 예정입니다. 위에서 6번째 줄에서 from sklearn.metrics import plot_roc_curve를 from sklearn.metrics import RocCurveDisplay로 수정합니다. 위에서 12번째 줄에서 plot_roc_curve(pipe_lr, ...)를 RocCurveDisplay.from_estimator(pipe_lr, ...)로 수정합니다.
  • (p279) 사이킷런 1.0 버전에서 plot_precision_recall_curve()가 deprecated 되었고 1.2 버전에서는 삭제될 예정입니다. 위에서 5번째 줄에서 from sklearn.metrics import plot_precision_recall_curve를 from sklearn.metrics import PrecisionRecallDisplay로 수정합니다. 위에서 11번째 줄에서 plot_precision_recall_curve(pipe_lr, ...)를 PrecisionRecallDisplay.from_estimator(pipe_lr, ...)로 수정합니다.
  • (p328) 사이킷런 1.0에서 히스토그램 기반 부스팅이 experimental 모듈 아래에서 벗어났습니다. 따라서 위에서 7번째 줄에서 시작하는 문장부터 9번째 줄까지 다음 내용을 삭제합니다. “이 클래스는 아직 실험적이기 때문에 사용하기 전에 먼저 활성화해야 합니다.
    from sklearn.experimental import enable_hist_gradient_boosting
  • (p329) XGBoost 1.3.0에서 이진 분류 기본 평가 지표가 'error'에서 'logloss'로 변경되었습니다. 또한 향후 레이블 인코딩을 수행하지 않는다는 경고가 발생합니다. 경고를 없애기 위해 위에서 6번째 줄에 XGBClassifier(tree_method='hist', random_state=1)을 XGBClassifier(tree_method='hist', eval_metric='logloss', use_label_encoding=False, random_state=1)로 수정합니다.
  • (p415) 아래에서 6번째 줄에 price_std 배열을 2차원으로 바꾸기 위해 inverse_transform(price_std)를 inverse_transform(price_std.reshape(-1,1))로 수정합니다.
  • (p419) 사이킷런 1.0에서 'absolute_loss'가 deprecated 되었고 1.2 버전에서 삭제될 예정이기 때문에 대신 'absolute_error'를 사용합니다. 아래에서 4번째 줄에 loss='absolute_loss'를 loss='absolute_error'로 수정합니다.
  • (p428) 사이킷런 1.0에서 get_feature_names() 메서드를 가진 변환기에 get_feature_names_out() 메서드가 추가되었고 get_feature_names()는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 주석의 끝에서 2번째 줄에 get_feature_names()를 get_feature_names_out()으로 수정합니다.
  • (p436) 사이킷런 1.0에서 'mse'가 deprecated 되었고 1.2 버전에서 삭제될 예정이기 때문에 대신 'squared_error'를 사용합니다. 위에서 11번째 줄에 criterion='mse'를 criterion='squared_error'로 수정합니다.