26 May 2024

실무로 통하는 ML 문제 해결 with 파이썬

이 책은 기존 파이썬을 활용한 머신러닝 쿡북의 2판으로 이 책의 공동저자 중 한명인 크리스 알본(Chris Albon)은 데이터 사이언스와 머신 러닝 분야에서 잘 알려진 인물로, 특히 시각적인 설명과 교육 자료를 통해 잘 알고 있던 분이다.

아래 링크의 크리스 알본의 X계정을 팔로우 해보면 머신러닝과 관련된 여러 플래시카드를 그린 것을 볼 수 있다. 누구보다 쉽게 머신러닝 개념을 설명하고자 하는데 진심인듯한 모습을 볼 수 있다. 또한 원서의 책이름에도 cookbook 이 들어갈 정도로 쉬운 설명에 진심이 느껴진다.

X에서 Chris Albon 님 : “I’m drawing new machine learning flashcards every day. This is the new style because iPad drawing is easier than actual pen and paper (draw-to-product per card is seconds vs an hour) Thoughts or feedback? https://t.co/WzkV5fbaU8” / X

이 책은 데이터 사이언스와 머신러닝을 처음 접하는 사람들을 위한 실용적인 안내서로, 데이터 처리와 분석에 필요한 다양한 기법들을 체계적으로 소개하고 있다. 총 23장으로 구성되어 있으며, 각 장은 데이터 처리, 분석, 모델링에 필요한 기술을 세부적으로 다룬다.

1장: 벡터, 행렬, 배열

첫 번째 장은 벡터와 행렬, 배열의 기본 개념과 사용법을 설명한다. 벡터와 행렬을 만들고, 조작하는 다양한 방법들을 다루며, 넘파이 라이브러리를 활용한 효율적인 배열 관리를 소개한다. 수학적 연산과 데이터 전처리에 대한 기초를 탄탄히 다질 수 있다.

2장: 데이터 적재

두 번째 장에서는 다양한 소스로부터 데이터를 적재하는 방법을 배운다. CSV, 엑셀, JSON 파일 등 일반적인 파일 형식부터 SQLite, 구글 시트, S3 버킷 등 데이터베이스와 클라우드 서비스까지 폭넓게 다루고 있어 실제 현업에서 유용하게 활용할 수 있다.

3장: 데이터 랭글링

이 장은 데이터프레임을 다루는 기본적인 기술을 소개한다. 데이터프레임 생성, 슬라이싱, 정렬, 값 치환 등 데이터 정제와 변환에 필요한 여러 기법들을 설명하며, 판다스 라이브러리를 중심으로 실습한다.

4장: 수치형 데이터 다루기

네 번째 장에서는 수치형 데이터의 전처리 방법을 다룬다. 특성 스케일링, 표준화, 정규화, 이상치 감지 및 처리 등 데이터 분석의 정확도를 높이기 위한 다양한 기법을 배울 수 있다.

5장: 범주형 데이터 다루기

이 장은 범주형 데이터를 효과적으로 처리하는 방법을 설명한다. 순서가 있는 범주형 데이터와 없는 데이터의 인코딩 방법을 비롯해, 누락된 클래스 값을 대체하고 불균형한 클래스를 다루는 기술을 배운다.

6장: 텍스트 다루기

여섯 번째 장에서는 텍스트 데이터를 처리하고 분석하는 기법들을 다룬다. 텍스트 정제, 토큰화, 불용어 제거, 감성 분석 등 NLP(자연어 처리)의 기본적인 기술들을 실습할 수 있다.

7장: 날짜와 시간 다루기

이 장에서는 날짜와 시간 데이터를 다루는 방법을 학습한다. 문자열을 날짜로 변환하고, 시간대를 처리하며, 날짜 간의 차이를 계산하는 등 시계열 데이터 분석에 필수적인 기술들을 소개한다.

8장: 이미지 다루기

여덟 번째 장에서는 이미지 데이터를 처리하고 분석하는 방법을 배운다. 이미지 로드, 저장, 크기 변경, 자르기, 필터 적용 등 이미지 전처리 기법을 다루며, OpenCV와 파이토치 등을 활용한 실습을 포함한다.

9장 ~ 19장: 머신러닝 기법

이 섹션에서는 다양한 머신러닝 기법들을 소개한다. 선형 회귀, 결정 트리, 랜덤 포레스트, k-최근접 이웃, 로지스틱 회귀, 서포트 벡터 머신, 나이브 베이즈, 군집 등 주요 알고리즘을 설명하고, 실습을 통해 모델을 구축하고 평가하는 방법을 배울 수 있다.

20장 ~ 22장: 신경망과 비정형 데이터

이 장들은 신경망과 비정형 데이터를 다루는 방법을 다룬다. 파이토치를 활용한 텐서 처리, 신경망 구성, 이미지와 텍스트 분류 신경망 훈련 등을 실습한다. 특히 사전 훈련된 모델을 활용한 미세 튜닝 기법도 포함되어 있어 실용적이다.

23장: 훈련 모델의 저장, 로딩, 서빙

마지막 장에서는 훈련된 모델을 저장하고 로드하는 방법을 학습한다. 사이킷런, 텐서플로, 파이토치 등 주요 라이브러리를 활용한 모델 저장과 서빙 기술을 배울 수 있어, 실제 프로젝트에 적용할 유용한 팁을 알려준다.

개정판에서는 파이토치를 활용한 딥러닝 기법과 모델의 저장 서빙에 대한 내용이 대폭 강화되었고 책 이름이 바뀔 정도로 정말 많은 변화가 있었다. 평소 인상적으로 봐오던 크리스알본이 참여한 책이라 더 인상깊게 볼 수 있었다.