<핸즈온 머신러닝 2>, <파이토치로 배우는 자연어 처리>, <혼자 공부하는 머신러닝+딥러닝>, <머신 러닝 교과서 3판>, <(번역개정판)파이썬 라이브러리를 활용한 머신러닝>, <파이썬을 활용한 머신러닝 쿡북>의 에러타를 안내해 드립니다.

16 views
Skip to first unread message

Haesun Park

unread,
Oct 9, 2021, 8:55:24 PM10/9/21
to 머신러닝/딥러닝 도서 메일링 리스트
안녕하세요. 박해선입니다.

새롭게 등록된 에러타를 안내해 드립니다.

감사합니다!

<핸즈온 머신러닝 2>
  1. (p647) 첫 번째 코드 블럭에서 https://tfhub.dev/google/tf2-preview/nnlm-en-dim50/1를 https://tfhub.dev/google/nnlm-en-dim50/2로 수정합니다.
  2. (p377, 387, 396, 398, 431, 436, 437, 440, 441, 446, 493, 582, 613, 676, 679, 736, 750, 769) 옵티마이저의 lr 매개변수를 deprecated 경고를 피하기 위해 learning_rate으로 수정합니다.
  3. (p418) 위에서 3번째 줄에 “ELU가 수렴할 값을“을 “ELU가 수렴할 값의 역수를“로 정정합니다.
<파이토치로 배우는 자연어 처리>
  1. (p27) NOTE 상자 안에서 TF-IDF 값을 정규화하는 마지막 두 식에서 분모의 끝에 있는 + 기호를 삭제합니다(Y**Cho 님).
<혼자 공부하는 머신러닝+딥러닝>
  1. (p241) 페이지 아래에서 3번째 줄에 plt.figure(figsize=(20,15), dpi=300)을 plt.figure(figsize=(20,15))로 수정합니다.
  2. (p242) <참고할 만한 사이트> 절에서 “특히 케라스 공식 문서를 번역하여~참고로 사용하세요.” 문장을 삭제합니다. 이어서 나오는 “케라스 외에도 머신러닝과 딥러닝에 관한”을 “또한 머신러닝과 딥러닝에 관한”으로 수정합니다. 그 아래 순서 없는 목록에서 두 번째 항목을 “* 머신러닝 문서 번역: http://ml-ko.kr“로 수정합니다.
<머신 러닝 교과서 3판>
  1. (p214, 215) <그림 5-9>의 앞뒤 문장을 다음처럼 변경합니다. “결과 그래프를 보면 클래스 2의 샘플 하나가 로지스틱 회귀 모델의 결정 경계에 가까이 놓여 있습니다.
    <그림 5-9>
    규제 강도를 낮추어 로지스틱 회귀 모델이 훈련 데이터셋의 모든 샘플을 더 확실하게 분류하도록 결정 경계를 옮길 수 있습니다.”
  2. (p637) 주석 13번의 마지막 줄에서 https://keras-ko.kr을 https://keras.io로 수정합니다.
<(번역개정판)파이썬 라이브러리를 활용한 머신러닝>
  1. (p62) 위에서 3번째 줄에 다음처럼 주석을 추가합니다. “보스턴 주택가격 데이터셋<주석>옮긴이_ 보스턴 주택가격 데이터셋의 특성에는 흑인 인구 비율이 들어 있어 요즘 시대에 적절치 않다는 의견이 많았습니다. 사이킷런 1.0 버전에서 load_boston() 함수가 deprecated 되었고 1.2 버전에서 삭제될 예정입니다.</주석>을 사용하겠습니다”
  2. (p136, 137) In [79], [80]에서 Axes3D가 자동으로 그림에 추가되는 방식은 matplotlib 3.4 버전에서 deprecated 되었기 때문에 관련 경고를 피하기 위해 ax = Axes3D(figure, elev=-152, azim=-26)을 ax = Axes3D(figure, elev=-152, azim=-26, auto_add_to_figure=False); figure.add_axes(ax)로 수정합니다.
  3. (p156) In [102]에서 다음처럼 MLPClassifier 객체 생성시 max_iter 매개변수를 지정합니다. mlp = MLPClassifier(max_iter=1000, random_state=0)
  4. (p205) In [26]의 첫 번째 줄에서 np.bool이 1.20버전부터 deprecated 되었기 때문에 대신 bool을 사용합니다. mask = np.zeros(people.target.shape, dtype=bool)
  5. (p223) 4번째 줄에 다음과 같이 주석을 추가합니다. “결과를 비교해 보겠습니다.<주석>옮긴이_ 사이킷런 1.2 버전에서 TSNE 클래스의 init 매개변수의 기본값이 'random'에서 'pca'로 바뀔 예정입니다.</주석> t-SNE는 새 데이터를..”
  6. 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()으로 수정합니다.
  7. (p366) In [52]에서 0 나눗셈 경고를 피하기 위해 다음처럼 zero_division 매개변수를 지정합니다. classification_report(y_test, pred_most_frequent, target_names=["9 아님", "9"], zero_division=0))
  8. (p443) 아래에서 4번째 줄에 다음처럼 주석을 추가합니다. “설치 페이지(…)를 참고하세요.<주석>옮긴이_ 최신 버전의 tweepy 패키지를 설치할 경우 konlpy에서 StreamListener가 없다는 에러가 발생하므로 3.10버전을 설치해 주세요. pip install tweepy==3.10</주석> KoNLPy는 5개의…”
  9. (p335) 주석 7번 끝에 다음을 추가합니다. “사이킷런 1.0 버전에서 그룹을 유지하면서 클래스 비율에 맞게 분할하는 StratifiedGroupKFold가 추가되었습니다.”
  10. (p293) 주석 15번 끝에 다음 문장을 추가합니다. “사이킷런 1.0 버전부터는 PolynomialFeatures 클래스의 degree 매개변수에 변환할 최소 차수과 최대 차수를 튜플로 전달할 수 있습니다.”
<파이썬을 활용한 머신러닝 쿡북>
  1. (p75, 79, 81, 85, 86, 88, 91, 93, 95, 97, 99, 100, 102, 107, 108, 110) 타이타닉 데이터를 다운로드하는 https://tinyurl.com/titanic_csv 주소에 문제가 생겨서 https://bit.ly/titanic_csv_data로 바꿉니다.
  2. (p177) 덧붙임의 첫 번째 문단 끝에 다음 주석을 추가합니다. “…설치할 수 있습니다.<주석>옮긴이_ 최신 버전의 tweepy 패키지가 설치될 경우 konlpy에서 StreamListener가 없다는 에러가 발생하므로 3.10버전을 설치해 주세요. pip install tweepy==3.10</주석>
  3. 사이킷런 1.0에서 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으로 수정합니다.
  4. (p229) 위에서 3번째 줄에서 corner의 값을 정수로 변환하기 위해 corner[0].astype('int')로 수정합니다.
  5. (p252) 9.4절 [해결]의 첫 번째 문장 끝에 다음 주석을 추가합니다. “… 차원을 축소합니다.<주석>옮긴이_ 기본값인 init=None일 때 n_components가 n_samples나 n_features 보다 작으면 init='nndsvd'가 됩니다. 사이킷런 1.1버전부터 이 값이 'nndsvda'로 바뀔 예정입니다.</주석>
  6. (p252) 아래에서 9번째 줄에서 NMF 객체를 만들 때 반복횟수를 늘려주기 위해 max_iter 매개변수를 추가합니다. nmf = NMF(n_components=10, max_iter=1000, random_state=1)
  7. (p283) 11.2절 [해결]의 첫 번째 문장 끝에 다음 주석을 추가합니다. “…모델을 만듭니다.<주석>옮긴이_ 보스턴 주택가격 데이터셋의 특성에는 흑인 인구 비율이 들어 있어 요즘 시대에 적절치 않다는 의견이 많았습니다. 사이킷런 1.0 버전에서 load_boston() 함수가 deprecated 되었고 1.2 버전에서 삭제될 예정입니다.</주석>
  8. 로지스틱 회귀 객체를 만들 때 반복횟수를 늘려주기 위해 (p300) 위에서 15번째 줄, (p311) 위에서 5번째 줄에 max_iter 매개변수를 추가합니다. classifier = LogisticRegression(max_iter=1000)
  9. (p312) 위에서 4번째 줄에 0 나눗셈 경고를 피하기 위해 다음처럼 zero_division 매개변수를 지정합니다. print(classification_report(target_test, target_predicted, labels=[0,1,2,3], zero_division=0))
  10. 사이킷런 0.22 버전에서 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)으로 바꿉니다.
  11. (p331) 위에서 8번째 줄에 반복 횟수를 늘려 주기 위해 max_iter 변수를 추가합니다. logit = linear_model.LogisticRegressionCV(max_iter=1000, Cs=100)
  12. (p332) 사이킷런 1.0에서 매개변수 변화에 따른 경고가 발생하지 않으므로 아래에서 4번째 줄을 다음처럼 수정합니다. logistic = linear_model.LogisticRegression(max_iter=1000)
  13. 사이킷런 1.0에서 매개변수 변화에 따른 경고가 발생하지 않으므로 위에서 (p333) 5번째 줄에 iid=False, 7번째 줄에 cv=3, 아래에서 4번째 줄에 iid=False, (p334) 위에서 8번째 줄에 cv=3을 삭제합니다.
  14. (p335) 위에서 2 번째 줄 끝에서 시작되는 문장, 아래에서 3번째 줄에 있는 문장, 마지막 줄에 있는 문장인 “경고를 출력하지 않기 위해 … 로 지정합니다”를 삭제합니다.
  15. (p355) 결정 트리의 criterion 매개변수 값인 mae가 사이킷런 1.0에서 deprecated되었고 1.2 버전에서 삭제될 예정입니다(mse도 마찬가지). 대신 'absolute_error'를 사용합니다. 위에서 6번째 줄을 decisiontree_mae = DecisionTreeRegressor(criterion="absolute_error", random_state=0)으로 수정합니다.
  16. (p374) 사이킷런 1.0에서 히스토그램 기반 부스팅이 experimental 모듈 아래에서 벗어났습니다. 따라서 위에서 8번째 줄 끝에서 시작하는 문장부터 12번째 줄까지 다음 내용을 삭제합니다.
    “이 클래스들은 실험적이기 때문에 명시적으로 사용한다는 것을 선언해야 합니다.
    # 히스토그램 기반의 그레이디언트 부스팅을 활성화하고 라이브러리를 임포트합니다.
    from sklearn.experimental import enable_hist_gradient_boosting
  17. (p397) 아래에서 2번째 줄에 compute_class_weight 함수에 키워드 매개변수를 추가합니다. compute_class_weight('balanced', classes=[0,1], y=target)
Reply all
Reply to author
Forward
0 new messages