728x90

안녕하십니까, 간토끼입니다.

오늘은 책쓰는 프로그래머 협회(이하 '책프협')의 이벤트로 받은 파이썬을 활용한 머신러닝 쿡북(Machine Learning with Python Cookbook)에 대한 서평을 작성해보도록 하겠습니다.

https://search.daum.net/search?w=bookpage&bookId=5054983&tab=introduction&DA=LB2&q=%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84%20%ED%99%9C%EC%9A%A9%ED%95%9C%20%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%20%EC%BF%A1%EB%B6%81

파이썬을 활용한 머신러닝 쿡북 – Daum 검색

Daum 검색에서 파이썬을 활용한 머신러닝 쿡북에 대한 최신정보를 찾아보세요.

search.daum.net


머신러닝은 최근 정말 핫한 소재죠.

통계학이나 수학을 전공하는 사람도, 컴퓨터과학(Computer Science), 혹은 컴퓨터공학을 전공하는 사람도,
아니면 정말 관련이 없을 것 같은 분야(인문학, 사회과학 등)에서도 머신러닝을 배워보려는 사람이 늘어나고 있습니다.

이러한 추세에 발 맞추어 시중에서도 괜찮은 책이 줄곧 출간되고 있는데요.
유감스럽게도 이 책은 '초심자'에게는 추천할만한 책은 아니라고 생각하며 글을 시작하겠습니다.


Q. 이 책은 어떤 책인가요?
'파이썬을 활용한 머신러닝 쿡북(Cookbook)'이라는 제목에 걸맞게, 이 책은 머신러닝의 다양한 레시피를 담은 책입니다.
즉 다른 입문서처럼 머신러닝의 기초 개념부터 설명하지 않습니다.

예를 들어 Regression, Hyper Parameter, Loss & Cost 등 기초적인 용어부터
Gradient Descent, Random Forest, Support Vector Machine 등 알고리즘에 대한 이해가 없는 분들은 이 책을 읽기에 적합하지 않습니다.

즉 머신러닝의 입문서를 시작으로 기초적인 개념을 익힌 분들 중,
입문서 내에 있는 예제보다 더 많은 예제와 실제 상황 및 작업을 다루는 것을 필요로 하는 분들에게 적합한 책이라고 할 수 있습니다.

이 책의 설명을 빌리자면, 작업 기반 접근 방식으로 머신러닝을 다루는 책이라고 정의하고 있는데요.
데이터 과학자(Data Scientist)나 머신러닝 엔지니어(Machine Learning Engineer)가 모델을 만들 때 자주 사용하는 작업에 유용한 약 200개에 달하는 해결책을 담고 있습니다.

그렇기에 머신러닝 시스템을 만들 때 있어 필요하다고 느끼는 부분들만 효과적으로 발췌하여 사용할 수 있겠죠.

예를 들어,
로지스틱 회귀분석(Logistic Regression)에 대한 개념을 익힌 독자가 실전에서 클래스 불균형(Class Imbalance) 문제에 맞닥뜨렸다고 가정하면,
이 책을 보유한 독자는 p.396(로지스틱 회귀 - 불균형한 클래스 다루기)를 펼쳐서 클래스 불균형 문제를 해결하는 방법을 빠르게 살펴보고 문제에 적용할 수 있을 것입니다.

p.396 - 불균형한 클래스 다루기


Q. 그럼 누구에게 추천하는 책인가요?
저도 머신러닝 수업을 갓 듣고 이론을 익히려고 노력하는 학부생인지라, 아직은 모르는 게 너무나 많습니다.
그럼에도 제가 생각할 때 이 책은 '머신러닝 이론을 최소한 수리적으로 접근하여 익힌 사람'을 위한 책이라고 생각합니다.

머신러닝(Machine Learning)은 컴퓨터 과학의 인공지능 중 한 분야로, 통계학과 수학의 다양한 이론이 결합되어 있죠.
크게 보면 수학에서는 해석학, 선형대수학 / 통계학에서는 회귀분석, 수리통계학, 베이지안 통계학, 확률론 등 다양한 수리적인 과목의 집합체라고도 볼 수 있을 것 같습니다.

그러나 일각에서는 이러한 수리적인 요소의 이해는 크게 중요하지 않다고 보는 시각도 있는 것 같습니다.
어차피 코드로 문제를 해결하는데, 알고리즘의 심화적 이해 없이도 결과만 잘 나오면 되는 게 아니냐는 것이죠.


개인적으로 저는 이러한 입장에 대해 반대합니다.
프로그래밍은 결국 이론을 구현하는 도구일 뿐이라는 거죠.

타인이 만들어놓은 코드를 사용하는 것은 당장의 성과를 내는 데 있어 문제가 전혀 없을 수 있으나,
좀 더 복잡한 문제를 맞닥뜨렸을 때, 스스로 문제를 정의하고 알고리즘을 적용해야만 하는 상황에 부딪힌다면 분명 한계가 있을 것이라고 생각합니다.

즉, 알고리즘에 대한 심층적 이해와 데이터에 대한 특성을 제대로 파악하지 못한다면,
왜 특정한 상황에서는 이러한 알고리즘이 적용되지 않는지 결국 알아내지 못할 것이라고 생각합니다.

개인적으로 초보자가 빠지기 쉬운 함정은 남이 만들어놓은 깔끔한 데이터와 아름다운 코드를 그대로 따라치는 상황에서 발생하는 것 같습니다.
책에 나온대로 코드를 따라쳤더니 높은 정확도와 화려한 plot이 출력되는 것을 보면서,
'어? 머신러닝 별 거 아니네... 어차피 좋은 알고리즘만 적용하면 결과는 당연히 잘 나오는 거 아니야...? 코드도 남들이 만든 거 쓰면 될 것 같고... ' 라는 생각을 갖게 만들어준다는 거죠.

물론 저도 그렇게 되지 않으려고 항상 경계하고 있습니다만... 참 어려운 문제인 것 같습니다.

말이 좀 길어졌으나, 결론은 이 책에 나온 다양한 코드들이 초보자보다는 숙련자에게 도움이 될 것이라는 생각입니다.


Q. 이 책의 장점은 무엇인가요?
먼저 이 글을 번역하신 박해선님은 명실상부한 대한민국 인공지능 서적의 번역가시죠!
머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 / 핸즈온 머신러닝 등 세계적인 베스트 셀러를 번역하시고,
Do it! 정직하게 코딩하며 배우는 딥러닝 입문 등을 집필하신 인공지능 전문가이시기도 하고,
국내 6명뿐인 구글 인증 머신러닝 전문가(ML GDE; Machine Learning Google Developer Experts)이시기도 합니다.

그렇기에 박해선 님께서 번역하신 서적들은 말투가 어색하다는 번역서의 단점이 전혀 느껴지지 않습니다!
믿고 읽으셔도 된다고 생각합니다 :)

그리고 쿡북(Cookbook)인 만큼, 다양한 레시피가 담겨있다고 했죠.
실제로 책이 각 챕터마다 [과제] -> [해결] -> [설명] 순으로 일목요연하게 구성되어 있습니다.

챕터마다 [과제] 가 주어지고, 그에 따른 [해결]을 확인할 수 있습니다.


그리고 이 책의 한국어판만의 특징이라고 하는데요.
바로 번역자 박해선님의 추가적인 설명(덧붙임)이 일부 챕터에 추가되어 있습니다.

모든 챕터에 있는 것은 아니지만, 추가 설명이 필요한 챕터에는 [덧붙임]이 있습니다.

[덧붙임] 덕분에 설명이 부족한 챕터에는 보다 알찬 설명을 느낄 수 있다는 거죠.

매우 좋은 장점인 것 같습니다.



제가 아무리 서평을 잘 쓴다고 한들, 역시 백문이 불여일견일 것 같습니다.

직접 보고 판단해보시죠! 강추하는 책입니다.

좋은 책을 리뷰할 수 있도록 기회주신 책쓰는 프로그래머 협회번역가 박해선 님께 다시 한번 감사드립니다.


감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)



- 간토끼(DataLabbit)
- University of Seoul
- Economics, Data Science

728x90

+ Recent posts