최근에 Oreilly에서 나온 Machine Learning for Hackers를 읽었습니다.
일단 이 책은 R을 어느정도 아는 독자를 대상으로 machine learning을 가르쳐주는 컨셉의 책으로 시작했을것이라고 추측이되지만, 결과적으로는 거의 모든것을 이미 알고있는 독자만 읽을 수 있습니다. 구체적으로는 이런 스킬셋이 필요합니다.
1) ggplot에 익숙해야함.
2) R을 이해하고 있어야함.
3) Machine learning이나 statistics에 지식이 있어야함. 책에서 설명하는 모든 알고리즘을 이미 알고 있어야함.
이렇게 모든것을 알면서도 굳이 한권의 책을 더 읽는 사람에게만 도움이 되는 이유는 가장 먼저 ggplot의 사용때문입니다. 이 책의 44페이지에서부터 별다른 설명없이 ggplot을 사용하고 있고 (lattice를 쓰거나 기본적인 plot 쓰는게 나았겠죠), 또 regression을 설명하는 5장에서는 linear regression에 대한 설명없이 곧바로 geom_smooth()를 사용한 smoothing을 하는식으로 내용이 전개되기 때문입니다. 물론 reshape패키지의 melt() 같은 함수도 설명없이 사용합니다. 역시 5장에서는 별다른 설명없이 log scale로 변수변환을 하기도하고(물론 box-cox transform 같은걸 설명할수는 없겠지만 log를 취하는게 어떤 효과인지에 대해서 너무 얕게 다룹니다), 갑자기 linear model 결과에 대한 F-score를 보여주기도 합니다. 모델설명같은 것은 별로 없습니다. 대부분의 챕터가 이처럼 설명이 부족하고, 데이터를 ggplot으로 그려보다가 모델을 적용합니다.
하지만 단점만 있는 책은 아닙니다. 그랬다면 저도 끝까지 읽지 않았을것이고 oreilly에서 책이 나오지도 않았겠죠. 이런저런 기본기가 있는 사람에게는 볼만한 책입니다. 워낙 R에서의 데이터 다루기는 까다로운 일이라 어떻게 데이터를 정리해서 모델을 적용시키는지는 하나라도 더 봐두면 당연히 도움이 되기 때문입니다. 예를들면 8장 PCA에서 여러주가에서 principal component를 찾고 이를 DJI지수와 비교하는거나, 9장 MDS(Multi Dimensional Scaling)에서 미국 상원의원간 정책 유사도를 비교해 2차원에 도시하는 내용은 괜찮았습니다. 한편 visualization도 흥미로운데 SVM을 설명한 12장에서 보여준 linear, polynomial, radial, sigmoid SVM을 통한 prediction결과를 2차원 상에서 정답 label과 비교하는 방법은 인상깊었습니다.
만약 저에게 R을 사용한 machine learning책을 추천해달라고 한다면, 초급서로는 방송대 데이터마이닝 교재, Rattle을 추천하고 싶습니다. 그리고 나서 중급/고급서로는 DMwR를 보고 machine learning for hackers는 ggplot2을 읽고난 뒤 보시기를 권하고 싶습니다.