책장

파이썬 머신러닝 판다스 데이터 분석

코리안더 2021. 9. 3. 21:09
반응형

파이썬 머신러닝 판다스 데이터 분석
오승환 지음
정보문화사

 파이썬 관련 기초서적을 한권(혼공파:리뷰는 아직 없음) 보고 나서 코딩에 대한 아주 가벼운 감을 잡았다. 사실 내 꿈은 정말 원대(?)했는데 공부하다보니 '아 이제 그정도는 늦은걸까'하는 생각이 들면서 동력이 사라졌고, 일년 넘게 책을 방치해두고 있었다. 그러다가 파이썬으로 데이터 분석을 쉽고 편하게 할 수 있다는 걸 깨닫고 다시 책을 잡았다. 원래는 파이썬으로 퀀트 트레이딩을 하는 서적이었는데 그 책의 목표독자층이 파이썬을 꽤 잘 다루는 사람이라 나 같은 초보들은 전혀 이해할 수가 없었다. 

  코딩에 관한 내 수준은 평범하다. 초딩 때 워드프로세서2급을 땄고(지금도 있는 자격증인진 모르겠다), 엑셀을 이리저리 다루다보니 함수 같은 건 나름대로 능숙하게 쓴다고 생각하지만 마스터는 못 한 것 같다. 몇 년 전 취직준비할 때 컴활1급을 따면서 엑셀(+엑셀함수) 공부를 오랜만에 해보긴 했다. 돌이켜보면 엑셀을 나름대로 다루긴 했는데 어디 회사에서 몇년동안 구르면서 실무를 익힌 건 아니다. 그저 원리 정도나 이해할 정도라고나 할까?

 그 후 안드로이드 앱을 만들어보겠다고 '혼공파'를 사서 정독했는데 정작 예제말고 직접 프로젝트를 하며 제대로 써본적은 없다.  그냥 '파이썬의 기본은 이정도구나~'라는 수준이라고나 할까. 사실 메소드, 클래스가 어떤건지 물어보면 대답도 못 하겠고 '객체 지향 프로그래밍이 뭡니까' 라고 물어보면 잘 대답도 못하겠다. 책 진도만 열심히 따라가봤다.

 다읽고보니 안드로이드 앱 프로그래밍은 파이썬보다는 자바가 더 좋다는 말을 뒤늦게 듣고 '혼공자'를 샀다. 그런데 그 당시엔 시간도 시간이고 자바는 확실히 더 어려워서 자연스럽게 중단했다. 이게 내 수준이니 이 서평을 읽는 분들은 참고하면 좋을 것이다.

  아무튼 다시 이 책으로 돌아와서 이정도 배경수준(엑셀은 함수는 약간 다루지만 파이썬은 기초만 아는 수준)을 가진 비전공자인 나에게 이 책은 적절한 난이도였다고 본다. 좀 어려운 책을 도전해보고 좌절감을 느꼈을 즈음, 알라딘서점과 블로그 포스팅으로 적절한 난이도의 책을 검색해봤었는데 의외로 이 쪽 서적은 서평이 잘 없어서 고르기 어려웠다. 그나마 이 책을 추천한 글을 하나봐서 일단 샀다. 나 정도 수준에서는 '판다스란 뭔가요?', '시리즈와 데이터프레임은 뭐죠?' 같은 질문부터 시작해야 한다. 다행히도 이 책은 판다스 라이브러리 설치부터 차근차근 설명해준다. 이 책을 읽으면서는 이 문장을 이해 못 하겠다거나 알 수 없는 오류가 연속으로 나서 공부를 포기할 정도로 좌절하진 않았다. 예제도 선행지식이 필요하지는 않아서 애초에 안될걸 붙잡고 끙끙거린 적은 없었다.

 내 수준(=초보)에 맞는 눈높이라는 점 말고도 이 책의 장점은 이론적으로 어렵지는 않다는 점이다. 데이터프레임이 무엇인지, 어떻게 연산하는지, Matplotlib같은 시각화 도구는 어떤게 있고 데이터처리는 어떻게 하는지를 쉽게 설명해준다. 이 책의 난이도와는 별개로, 많은 양의 데이터를 다루다보니 내가 만든 자료가 아니니까 자료의 내용을 모른다는 점이 학습 난이도를 높이는데 일조하기는 했다. '이 열은 무슨 내용이었지?', '저 행에 NaN이 있나?' 같은 의문이 있는데 물론 이건 데이터관련 예제의 본질적인 문제가 아닐까싶다. 아예 첫페이지나 끝페이지에 Raw Data를 붙여주면 편하려나 싶다.

 책의 마지막 단원은 머신러닝을 간략하게 설명하고 있다. 본격적인 머신러닝 서적이 아니니만큼 간단한 예제로 머신러닝이 무엇이며 어떻게 작동하는지를 설명하고 있다. 이 단원에서도 복잡한 수학적 이론이 나오기보다는 회귀분석을 간단하게 예제로 해보며 시작한다. KNN이나 결정트리같은 것도 어떻게 작동하는지 맛보기로 나온다. 물론 이 정도 내용만 보고 머신러닝을 익혀서 멋진 결과물을 만들기는 불가능해보이지만, 파이썬(+판다스+사이킷런)으로 어떻게 작동하는지 개념이라도 잡을 수 있어서 좋은 내용이었다. 내가 나중에 머신러닝까지는 안하더라도 판다스를 배운 이상 이정도는 익히면 좋을 것 같다.

 이렇게 적어놓으니 이 책에 칭찬밖에 없는 것 같은데, 사실 불만인 점도 몇몇 군데 있다. 먼저 아나콘다 위주로 서술해서, 아나콘다를 안 쓰는 사람은 조금 난감할 때가 있다. 난 혼공파로 익숙해진 비주얼스튜디오코드를 이용했다. IPython은 또 뭐지? 처음 판다스로 차트를 그릴 때는 차트가 안나와서 30분은 인터넷으로 검색해서 해결했다. 다행인 건 이런 문제들은 사실 어려운 건 아니었다. 책 내용 전체에서는 적은 수준이었고 몇번 검색하다보면 해결할 수 있는 정도라 크게 스트레스 받지는 않았다.

 또 한가지는 오타였다. 아주 많은 건 아니었지만 코딩 예제 내에 오타가 몇 군데 있어서 긴장한 적이 몇 번 있었다. 심각한 오타는 없다보니 이것도 정신차리고 하다보면 해결될 문제라고 본다.


 전체적으로 총평을 내리면 파이썬을 막 익혔지만 제대로 프로젝트를 해보지 않은 사람들에게는 적절한 판다스 입문서라고 할 수 있다. 물론 다른 입문서는 안봐서 비교가 어렵겠지만, 적어도 완전히 잘못골랐다는 생각은 안할 것이다. 판다스를 훑어보고 본격적인 프로젝트로 들어가기에는 나쁘지 않다.

 그나저나, 나는 이제 무얼 공부해야할까? 판다스를 익히면 주식투자를 할 때 데이터분석을 조금이나마 해볼 수 있을 줄 알았는데 어디서부터해야할지 막막하다. 중화요리로 한상 크게 차려보겠다고 큰 소리쳤는데 이제 막 칼질하는 법과 양파껍질까는 법을 익힌 기분이다.

 일단 다음 책, 『파이썬으로 배우는 포트폴리오』를 읽으려 한다.

반응형