목차를 왜 이런 식으로 했는지 좀 낯설다.
데이터 적재 - 데이터 전처리 - 텍스트 다루기(로딩부터 감성분석까지) - 날짜/시간 다루기(데이터 전처리의 영역) - 이미지 다루기(로딩부터 이미지 분류까지) - 차원 축소 - 모델 평가 - 모델 선택 - 머신러닝 모델 소개(선형 회귀, 트리, 랜덤포레스트, kNN, 로지스틱 회귀, SVM, 나이브베이즈)와 군집화(k-Means, 평균이동, DBSCAN, 계층적군집화) - 파이토치로 텐서 다루기 - 신경망 - 모델 저장/로딩/서빙
순서가 다른 책들과 확 달라서 처음 접하는 사람은 혼란스러울 수도 있겠다는 생각이 든다. 첫페이지부터 따라가며 보려고 하지 말고 필요한 부분들을 찾아가면서 보는 것이 오히려 나을 것 같다. 이해가 안 되는 부분이 있으면 일단 넘어가고 뒷부분을 읽은 다음에 다시 돌아오는 방식으로. 다른 책에서 많이 다루는 '시각화' 관련된 내용은 많이 나오지 않는다. 모델 성능 평가할 때 라인차트를 그려본다거나 혼동행렬 그리는 것과 결정트리 모델 그리기, 특성 중요도를 바차트로 그려보는 정도..
161쪽까지 약 1/3 가량을 할애해 데이터를 가져와서 전처리하는 과정을 다룬다.
이어지는 '6장. 텍스트 다루기'에서는 널리 사용되는 전처리 기법과 사전 훈련된 머신러닝 모델을 활용하는 방법을 다룬다. 공백, 구두점, 특수문자, 불용어 등을 제거하거나 HTML 요소를 추출해내는 것 등이다. NLTK를 사용해 토큰화, 어간추출, 품사태깅을 하고 spaCy를 사용해 개체명 인식을 수행한다. 사이킷런의 CountVertorizer를 사용해 BoW로 인코딩하고 TfidfVectorizer를 사용해 단어에 중요도가중치를 부여한 행렬을 만든다. 이어 텍스트 유사도 계산, 감성 분류를 소개한다. 전체적으로는 간단하고 짤막하게만 소개하고 있다. 실제로 텍스트를 처리하는 업무를 한다면 여기에서는 아주 기초적인 내용만 훑고 자연어처리에 관한 다른 책을 봐야한다. '8장. 이미지 다루기'도 마찬가지이다. 감만 익힌다고 생각하고 가볍게 보면 된다. 강의로 치면 8시간 하루 좍 훑어가며 수업할 내용이다. 이어지는 차원축소 부분은 개념을 잘 이해하고 넘어기면 좋겠다. 사실 라이브러리가 너무 잘 되어 있어서 호출해서 사용하면 한두 줄이면 끝나는 부분이라 왜 하고 어떻게 동작하는지, 어떤 때 사용하면 유용한지 등을 알아두면 좋다.
이후는 일반적인 머신러닝 알고리즘과 모델 이야기라서 특별히 인상적인 것은 없었다. 데이터도 바로 만들어서 사용하는 단순한 데이터나 흔하게 사용하는 iris데이터를 불러 쓰는 정도...사실 이 부분에서 살짝 실망했다.
아마 텐서플로를 주로 쓰는 사람들과 파이토치를 쓰는 사람들이 갈릴 텐데, 텐서플로를 쓴다면 파이토치 텐서 부분은 건너 뛰어도 될 것이다. 그런데 이 책에서는 이후에도 파이토치를 사용하기 때문에 책을 끝까지 보고 싶다면 익혀두면 좋겠지. 텐서플로를 하는 사람들은 '21장. 신경망' 부터는 개념만 잘 이해하고 책에 제시된 파이토치 코드에 대응하는 텐서플로 코드를 찾아보거나 직접 만들어 보는 방식으로 학습을 하면 될 것이다.
분량이 많지는 않지만 '22장. 비정형 데이터를 위한 신경망'은 흥미로웠다. 요즘 핫한 생성형인공지능의 핵심기술인 트랜스포머(Transformer)를 살짝이라도 맛볼 수 있기 때문이다. '23장. 훈련 모델의 저장, 로딩, 서빙' 도 웹서버에 간단하게 서빙하는 방법을 알려준다.
전체적으로는 내가 원했던 것을 이루지는 못했다. 아주 간단한 데이터나 널리 알려진 데이터 몇 가지를 사용해 기초부터 찬찬히 설명해줬기 때문에...실무 적용은 또 숙제로 남았다. 하지만 앞에서 언급한 저런 내용들이 필요한 독자라면 책이 눈에 잘 들어오게 구성되어 있기 때문에 찬찬히 읽어봐도 좋겠다. 꼼꼼하게 읽고 코드를 실행했다면 이제 실무로 통하는 문은 연 것이다.