

교보문고 2021 올해의 책에 <혼자 공부하는 머신러닝+딥러닝>과 <파이토치로 배우는 자연어 처리> 책이 선정되었습니다. <혼자 공부하는 머신러닝+딥러닝>은 AI/ML 분야에서 1등을 했고 <파이토치로 배우는 자연어 처리>는 자연어 처리 분야에서 1등을 했습니다! (머신 러닝 교과서도 후보에 들었네요! 🙂 )


한 해 동안 제 책을 애독해 주신 모든 분들께 정말 감사드립니다!
교보문고 2021 올해의 책에 <혼자 공부하는 머신러닝+딥러닝>과 <파이토치로 배우는 자연어 처리> 책이 선정되었습니다. <혼자 공부하는 머신러닝+딥러닝>은 AI/ML 분야에서 1등을 했고 <파이토치로 배우는 자연어 처리>는 자연어 처리 분야에서 1등을 했습니다! (머신 러닝 교과서도 후보에 들었네요! 🙂 )
한 해 동안 제 책을 애독해 주신 모든 분들께 정말 감사드립니다!
<머신러닝 파워드 애플리케이션>의 주피터 노트북을 사이킷런 1.0에 맞추어 업데이트했습니다. 업데이트된 노트북은 깃허브 저장소에서 확인하실 수 있습니다. 감사합니다! 🙂
<혼자 공부하는 머신러닝+딥러닝>이 Yes24 2021년 올해의 책 후보에 선정되었습니다! 추천해 주신 모든 분들께 진심으로 감사드립니다. 올해 후보에는 IT 책이 한 권 뿐이지만 내년에 여러 권이 되었으면 좋겠습니다. 저도 더 열심히 노력하겠습니다.
올해의 책 후보 중 3권이상 골라 투표에 참가하면 1천원 Yes24 상품권을 준다고 하네요. 마음에 드는 책을 골라 투표에 참여해 보세요!
감사합니다! 🙂
얼마전 케라스 2.7.0 버전이 릴리스된 후 이어서 텐서플로 2.7.0 버전이 릴리스되었습니다. 당연하지만 텐서플로 2.7.0은 케라스 2.7.0 버전을 사용합니다. 주요 변경 사항으로는 서브클래싱으로 만든 케라스 모델에서 스칼라 입력을 자동으로 2D 텐서로 확장하지 않습니다. to_yaml()
과 model_from_yaml()
을 사용하지 못하며 대신 json이나 h5 포맷을 사용해야 합니다. 합성곱 층에 convolution_op()
메서드가 추가되어 커스텀 합성곱 층을 만들기 쉬워 집니다. 디버깅에 용이하도록 에러 메시지가 읽기 쉽게 제공됩니다.
더 자세한 내용은 텐서플로 2.7.0의 릴리스 노트를 참고하세요! 감사합니다. 🙂
온라인 서점 Yes24(www.yes24.com)에서는 매년 올해의 책을 선정합니다. 먼저 20여권의 후보를 추천을 통해 선정한 후에 투표를 통해 최종 올해의 책을 선정합니다. 올해의 책 후보에 드는 것만으로도 엄청난 영광이죠. 제 기억에는 IT 책이 후보에 오른적이 없었던 것 같습니다. 대부분 인기있는 책은 문학, 경제, 자기개발 분야입니다.
오늘 우연히 Yes24에서 <혼자 공부하는 머신러닝+딥러닝> 페이지를 보다가 몇 분이 올해의 책 후보에 추천해 주신 것을 보고 너무 기뻤습니다. 사실 IT 책이 후보가 될 가능성은 매우 희박합니다. 그래도 몇 분의 추천에 힘을 얻고 용기내어 도전해 보려고 합니다. 혹시 이 책을 재미있게 보셨다면 11월 3일까지 Yes24 올해의 책 후보로 추천 부탁드립니다! 저는 물론 이 분야의 책을 내는 출판사, 번역자, 작가 모두에게 큰 힘이 되리라 생각합니다. 감사합니다! 🙂
Yes24 2021년 올해의 책 후보 추천 페이지: http://www.yes24.com/campaign/00_corp/2021/boy.aspx
[핸즈온 머신러닝 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)
[혼자 공부하는 머신러닝+딥러닝], [Do It! 딥러닝 입문]의 주피터 노트북 코드를 최신 사이킷런 1.0 버전에서 모두 테스트하여 깃허브에 반영하였습니다. 책을 보실 때 참고하세요. 감사합니다!
10년이 훌쩍 넘었습니다. 그동안 명실공히 표준 머신러닝 라이브러리로 자리매김한 사이킷런이 드디어 버전 1.0의 RC1을 릴리스했습니다. 이번에도 많은 변화가 있습니다.
이 외에도 많은 기능이 추가되고 개선되었습니다. 배울 게 한층 더 늘었네요. ㅎ 전체 릴리스 노트는 사이킷런 웹사이트를 참고하세요! 🙂