
<혼자 공부하는 머신러닝+딥러닝>의 주피터 노트북을 코랩(사이킷런 1.2.2와 텐서플로 2.11.0)에서 모두 재실행하여 업데이트했습니다.
9-02절의 코드가 원-핫 인코딩 벡터 크기 때문에 코랩에서 메모리 부족을 일으킵니다. 이를 피하기 위해 사용하는 단어 개수를 500개에서 300개로 줄였습니다. 자세한 수정 내용은 에러타 페이지를 참고해 주세요.
감사합니다!
<혼자 공부하는 머신러닝+딥러닝>의 주피터 노트북을 코랩(사이킷런 1.2.2와 텐서플로 2.11.0)에서 모두 재실행하여 업데이트했습니다.
9-02절의 코드가 원-핫 인코딩 벡터 크기 때문에 코랩에서 메모리 부족을 일으킵니다. 이를 피하기 위해 사용하는 단어 개수를 500개에서 300개로 줄였습니다. 자세한 수정 내용은 에러타 페이지를 참고해 주세요.
감사합니다!
<파이썬 라이브러리를 활용한 머신러닝(개정 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 파이썬>이 출간되었습니다!
이 책은 파이썬 데이터 과학 생태계의 핵심 라이브러리인 판다스, 넘파이, 맷플롯립, 사이파이, 사이킷런을 사용하여 데이터 분석에 필요한 기초 지식을 쌓을 수 있도록 돕습니다. 또한 뷰티플수프, 리퀘스트 같은 유용한 다른 패키지도 함께 배울 수 있죠.
데이터 수집, 정제, 분석, 시각화, 검증 그리고 모델링까지 이 분야의 기술이 궁금하다면 바로 이 책으로 시작하세요!
동영상 강의도 함께 들으시면 책을 완독하는데 도움이 되실거에요! 🙂
한빛미디어의 혼공단에 참여해서 같이 공부하시면 더욱 좋습니다! 🙂
최근 릴리스된 사이킷런 1.1.x 버전에서 변경된 부분에 맞춰 <(번역개정2판) 파이썬 라이브러리를 활용한 머신러닝>의 본문 내용을 다음과 같이 업데이트합니다!
SGDClassifier
의 loss
매개변수 중 로지스틱 손실을 의미하는 'log'
가 'log_loss'
로 바뀔 예정이므로 첫 번째 줄에서 “훈련합니다.”를 “훈련합니다(1.3 버전에서 'log'
가 'log_loss'
로 바뀔 예정입니다).“로 수정합니다.RandomForestClassifier
와 ExtraTreesClassifier
의 max_features
매개변수 기본값이 'auto'
에서 'sqrt'
로 바뀔 예정이므로,RandomForestClassifier
의 max_features
기본값이 'auto'
로 sqrt(n_features)
를 의미합니다. 1.3 버전에서는 max_features
기본값이 'auto'
에서 'sqrt'
로 바뀔 예정입니다.“"auto"
로 특성 개수의 제곱근을 나타내며, … 하지만 max_features="auto"
로 설정하면…”을 “랜덤 포레스트 분류기는 기본적으로 특성 개수의 제곱근을 사용하며, … 하지만 max_features="sqrt"
로 설정하면…”로 수정합니다.GradientBoostingClassifier
의 loss
매개변수 기본값이 1.3 버전에서 'deviance'
에서 'log_loss'
로 바뀔 예정이므로'deviance'
입니다.”를 “손실을 의미하는 'deviance'
입니다(1.3 버전에서 'deviance'
가 'log_loss'
로 바뀔 예정입니다).”로 수정합니다.'log_loss'
로 바뀔 예정)”으로 수정합니다.HistGradientBoostingClassifier
의 loss
매개변수 기본값이 1.3 버전에서 'auto'
에서 'log_loss'
로 바뀔 예정이므로 표 2-2의 히스토그램 기반 부스팅의 ‘손실 함수’ 항목에서 “(이진분류는 'binary_crossentropy'
, 다중 분류는 'categorical_crossentropy'
)”을 “(로지스틱 손실. 1.3 버전에서 'log_loss'
로 바뀔 예정)”로 수정합니다.OneHotEncoder
클래스에 자주 등장하지 않는 범주를 하나로 묶어주는 min_frequency
와 max_categories
매개변수가 추가 되었습니다. 4.2절 아래 세 번째 줄에서 “OneHotEncoder
클래스에 구현되어 있습니다.”를 “OneHotEncoder
클래스에 구현되어 있습니다.<주석>옮긴이_ 버전 1.1에서 추가된 min_frequency
매개변수를 사용하면 특정 횟수 또는 비율 보다 적게 등장하는 범주를 하나의 특성으로 합칠 수 있습니다. 또한 max_categories
매개변수를 사용하여 원-핫 인코딩으로 만들어지는 특성의 개수를 제한할 수 있습니다.</주석>“로 수정합니다.감사합니다! 🙂
2017년 처음 이 책을 작업할 때 사이킷런 코드를 보면서 무식하게 노트에 한 줄 한 줄 펜으로 번역해서 옮겼던 기억이 납니다. 사이킷런 개발자가 쓴 책인만큼 잘 옮기고 싶었고 그때는 지금처럼 좋은 책이 많지 않아서 더 그랬던 것 같습니다.
무슨 생각이 들었는지 읽을만한 책을 만들자고 호기롭게 시작한 그 도전이 5년을 지나 오늘 여기까지 오게된 것 같네요. 이 책이 없었다면 아마 지금 다른 일을 하고 있을 것 같습니다.
2019년 번역개정판을 내고도 많은 분들에게 꾸준히 사랑을 받았습니다. 정말 감사드립니다. 새로운 번역개정2판은 최근 릴리즈된 사이킷런 1.0 버전을 반영하였습니다. 새로운 기능과 변경된 내용을 많이 담아서 500페이지가 넘었습니다. 또 구글 코랩에서 실습할 수 있도록 코드를 업데이트했습니다. 흔쾌히 번역개정2판을 허락해 주신 한빛미디어 출판사에 감사드립니다. 다시 한 번 머신러닝 학습의 엔트로피를 줄이는데 도움이 되기를 기대합니다! 감사합니다! 🙂
<머신러닝 파워드 애플리케이션>의 주피터 노트북을 사이킷런 1.0에 맞추어 업데이트했습니다. 업데이트된 노트북은 깃허브 저장소에서 확인하실 수 있습니다. 감사합니다! 🙂
[핸즈온 머신러닝 2판], [머신 러닝 교과서 3판]의 주피터 노트북을 사이킷런 1.0 버전에 맞추어 모두 테스트하여 깃허브에 반영하였습니다. 변경이 필요한 부분은 수정하거나 주석을 추가했습니다. 아래 에러타를 참고해 주세요.
감사합니다! 🙂
핸즈온 머신러닝 2판
np.int
가 deprecated 되었기 때문에 첫 번째 코드 블럭의 마지막 줄에서 astype(np.int)
를 astype(int)
로 수정합니다.get_feature_names()
메서드를 가진 변환기에 get_feature_names_out()
메서드가 추가되었고 get_feature_names()
는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 따라서 23번 주석에서 get_feature_names()
를 get_feature_names_out()
으로 수정합니다.머신 러닝 교과서 3판
OrdinalEncoder(dtype=np.int)
를 OrdinalEncoder(dtype=int)
로 수정합니다. (p158) 위에서 12번째 줄에 “np.int
로 지정했습니다”를 “int
로 지정했습니다”로 수정합니다. (p159) 위에서 14번째 줄에 OrdinalEncoder()
를 OrdinalEncoder(dtype=int)
로 수정합니다.TSNE
클래스의 init
매개변수의 기본값이 'random'
에서 'pca'
로 바뀔 예정입니다.”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, ...)
로 수정합니다.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, ...)
로 수정합니다.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, ...)
로 수정합니다.experimental
모듈 아래에서 벗어났습니다. 따라서 위에서 7번째 줄에서 시작하는 문장부터 9번째 줄까지 다음 내용을 삭제합니다. “이 클래스는 아직 실험적이기 때문에 사용하기 전에 먼저 활성화해야 합니다.from sklearn.experimental import enable_hist_gradient_boosting
“'error'
에서 'logloss'
로 변경되었습니다. 또한 향후 레이블 인코딩을 수행하지 않는다는 경고가 발생합니다. 경고를 없애기 위해 위에서 6번째 줄에 XGBClassifier(tree_method='hist', random_state=1)
을 XGBClassifier(tree_method='hist', eval_metric='logloss', use_label_encoding=False, random_state=1)
로 수정합니다.price_std
배열을 2차원으로 바꾸기 위해 inverse_transform(price_std)
를 inverse_transform(price_std.reshape(-1,1))
로 수정합니다.'absolute_loss'
가 deprecated 되었고 1.2 버전에서 삭제될 예정이기 때문에 대신 'absolute_error'
를 사용합니다. 아래에서 4번째 줄에 loss='absolute_loss'
를 loss='absolute_error'
로 수정합니다.get_feature_names()
메서드를 가진 변환기에 get_feature_names_out()
메서드가 추가되었고 get_feature_names()
는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 주석의 끝에서 2번째 줄에 get_feature_names()
를 get_feature_names_out()
으로 수정합니다.'mse'
가 deprecated 되었고 1.2 버전에서 삭제될 예정이기 때문에 대신 'squared_error'
를 사용합니다. 위에서 11번째 줄에 criterion='mse'
를 criterion='squared_error'
로 수정합니다.사이킷런 버전 1.0에서 판다스 데이터프레임을 모델이나 변환기에 입력했을 때 열 이름을 feature_names_in_
속성에 저장합니다. 향후에는 변환기가 판다스 데이터프레임을 입력으로 받으면 출력도 데이터프레임으로 만들 예정입니다. <핸즈온 머신러닝 2판>의 저자 오렐리앙 제롱이 새로 추가된 사이킷런의 데이터프레임 연동 기능에 대해 간단한 튜토리얼을 주피터 노트북으로 만들었습니다. 내용이 좋아 제가 한글로 번역했습니다. 무료한 주말(?)에 재미있게 보세요! 🙂
안녕하세요. [파이썬 라이브러리를 활용한 머신러닝], [파이썬을 활용한 머신러닝 쿡북]의 주피터 노트북 코드를 사이킷런 1.0 버전에 맞추어 모두 테스트하여 깃허브에 반영하였습니다. 또한 변경이 필요한 본문을 수정하고 주석을 추가했습니다. 다음 에러타 내용을 참고해 주세요.
감사합니다! 🙂
파이썬 라이브러리를 활용한 머신러닝
load_boston()
함수가 deprecated 되었고 1.2 버전에서 삭제될 예정입니다.</주석>을 사용하겠습니다”ax = Axes3D(figure, elev=-152, azim=-26)
을 ax = Axes3D(figure, elev=-152, azim=-26, auto_add_to_figure=False); figure.add_axes(ax)
로 수정합니다.MLPClassifier
객체 생성시 max_iter
매개변수를 지정합니다. mlp = MLPClassifier(max_iter=1000, random_state=0)
np.bool
이 1.20버전부터 deprecated 되었기 때문에 대신 bool
을 사용합니다. mask = np.zeros(people.target.shape, dtype=bool)
TSNE
클래스의 init
매개변수의 기본값이 'random'
에서 'pca'
로 바뀔 예정입니다.</주석> t-SNE는 새 데이터를..”get_feature_names()
메서드를 가진 변환기에 get_feature_names_out()
메서드가 추가되었고 get_feature_names()
는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 따라서 (p281) 마지막 문장과 In [13], (p294) 첫 번째 문장과 In [34], (p297) 마지막 문장과 In[39], (p320) 첫 번째 문장과 In [72], (p423) In [16], (p426) In [21], (p430) In [30], (p434) In [35]와 In [36], (p435) In [38], (p437) In [41], (p450) In [51], (p451) In [55]에서 get_feature_names()
를 get_feature_names_out()
으로 수정합니다.zero_division
매개변수를 지정합니다. classification_report(y_test, pred_most_frequent, target_names=["9 아님", "9"], zero_division=0))
tweepy
패키지를 설치할 경우 konlpy
에서 StreamListener
가 없다는 에러가 발생하므로 3.10버전을 설치해 주세요. pip install tweepy==3.10
</주석> KoNLPy는 5개의…”StratifiedGroupKFold
가 추가되었습니다.”PolynomialFeatures
클래스의 degree
매개변수에 변환할 최소 차수과 최대 차수를 튜플로 전달할 수 있습니다.”파이썬을 활용한 머신러닝 쿡북
https://tinyurl.com/titanic_csv
주소에 문제가 생겨서 https://bit.ly/titanic_csv_data
로 바꿉니다.tweepy
패키지가 설치될 경우 konlpy
에서 StreamListener
가 없다는 에러가 발생하므로 3.10버전을 설치해 주세요. pip install tweepy==3.10
</주석>get_feature_names()
메서드를 가진 변환기에 get_feature_names_out()
메서드가 추가되었고 get_feature_names()
는 deprecated 되어 1.2 버전에서 삭제될 예정입니다. 따라서 (p128) 마지막 줄, (p129) 1번째 줄, (p156) 위에서 15, 17번째 줄, (p179) 마지막 줄, (180) 2번째 줄, (p493) 아래에서 2번째 줄에서 get_feature_names
를 get_feature_names_out
으로 수정합니다.corner
의 값을 정수로 변환하기 위해 corner[0].astype('int')
로 수정합니다.init=None
일 때 n_components
가 n_samples
나 n_features
보다 작으면 init='nndsvd'
가 됩니다. 사이킷런 1.1버전부터 이 값이 'nndsvda'
로 바뀔 예정입니다.</주석>NMF
객체를 만들 때 반복횟수를 늘려주기 위해 max_iter
매개변수를 추가합니다. nmf = NMF(n_components=10, max_iter=1000, random_state=1)
load_boston()
함수가 deprecated 되었고 1.2 버전에서 삭제될 예정입니다.</주석>max_iter
매개변수를 추가합니다. classifier = LogisticRegression(max_iter=1000)
zero_division
매개변수를 지정합니다. print(classification_report(target_test, target_predicted, labels=[0,1,2,3], zero_division=0))
solver
매개변수의 기본값이 'liblinear'
에서 'lbfgs'
로 변경되었습니다. 'lbfgs'
는 'l2'
페널티만 지원합니다. 예제에서 'l1'
, 'l2'
페널티를 그리드서치로 탐색하기 위해 solver='liblinear'
로 지정합니다. 또 반복 횟수를 늘려주기 위해 max_iter=1000
을 추가합니다. (p318) 위에서 13번째 줄, (p320) 아래에서 3번째 줄, (p323) 위에서 15번째 줄, (p325) 아래에서 7번째 줄, (p327) 아래에서 8번째 줄, (p329) 위에서 11번째 줄에서 LogisticRegression()
을 LogisticRegression(solver='liblinear', max_iter=1000)
으로 바꿉니다.logit = linear_model.LogisticRegressionCV(max_iter=1000, Cs=100)
logistic = linear_model.LogisticRegression(max_iter=1000)
iid=False
, 7번째 줄에 cv=3
, 아래에서 4번째 줄에 iid=False
, (p334) 위에서 8번째 줄에 cv=3
을 삭제합니다.criterion
매개변수 값인 mae
가 사이킷런 1.0에서 deprecated되었고 1.2 버전에서 삭제될 예정입니다(mse
도 마찬가지). 대신 'absolute_error'
를 사용합니다. 위에서 6번째 줄을 decisiontree_mae = DecisionTreeRegressor(criterion="absolute_error", random_state=0)
으로 수정합니다.experimental
모듈 아래에서 벗어났습니다. 따라서 위에서 8번째 줄 끝에서 시작하는 문장부터 12번째 줄까지 다음 내용을 삭제합니다.from sklearn.experimental import enable_hist_gradient_boosting
“compute_class_weight
함수에 키워드 매개변수를 추가합니다. compute_class_weight('balanced', classes=[0,1], y=target)
세바스찬 라시카Sebastian Raschka와 바히드 미자리리Vahid Mirjalili가 쓴 아마존 베스트셀러 <Python Machine Learning 3rd Ed.>의 번역판인 <머신 러닝 교과서 3판>이 출간되었습니다!
3판은 사이킷런과 텐서플로 최신 버전의 변경 사항을 담았으며 코랩에서 실행할 수 있습니다. 특히 딥러닝 파트는 완전히 새롭게 리뉴얼되어 콘텐츠가 크게 보강되었습니다. 무엇보다도 이번에 새롭게 GAN과 강화 학습이 추가되어 머신러닝의 끝판왕이라고 부를만합니다!
출간에 맞추어 동영상 강의를 제작해 유튜브에 올리고 있습니다. 혼자 공부하시는 분들에게 도움이 되었으면 좋겠습니다. 궁금한 점이 있다면 블로그나 카카오 오픈채팅(http://bit.ly/tensor-chat, 참여코드: tensor)으로 알려 주세요!
온라인/오프라인 서점에서 판매 중입니다! 868페이지, 풀 컬러: 39,600원 [Yes24], [교보문고], [알라딘]