0. 데이터 전처리 ?
데이터를 다루고 분석하는 과정에서 반드시 필요한 것이 데이터 전처리입니다. 데이터 전처리는 데이터 생성, 수집, 처리(집약, 결합, 분할 등) 과정을 말하며, 빅데이터 분석에 가장 기본이 되는 과정입니다. 하지만 대부분의 데이터 분석 입문자들이 이 과정에서 많이 한계를 느끼곤 합니다. 그 이유는 그것 자체가 까다롭고 성가신 과정이며. 대부분 직접 수행해야만 하기 때문입니다. 또한 익숙해 지기 위해 많은 시간이 필요하고, 반복적으로 연습해야 스킬을 유지할 수 있어 단기간에 익히기 쉽지 않습니다. 저 또한 교육을 진행하면서, 가장 까다로운 과정이 바로 이 부분입니다. 어디서부터 어느지점까지 가르쳐야 할까? 항상 고민이 듭니다. 아마 많은 분들이 공감하실것 같습니다.
1. 이 책의 장점 어? 기발하다?
이 책의 가장 큰 특징은 프로그램(R, Python) 코드와, 데이터베이스(SQL) 쿼리를 같은 예제로 설명한다는 점입니다.
전처리는 다양한 부분에서 같은 용도로 수행이 이뤄질 경우가 많아, 상황상황에 잘 대처해야 하는게 매우 중요합니다. R, Python 뿐만 아니라 정통적인 쿼리를 익혀야 하는 이유가 여기에 있습니다. 이 책은 같은 예시를 통해 프로그램(코드)에서 실시하는 경우와 데이터베이스(쿼리)를 통해 실시하는 경우를 비교해 설명합니다. 저의 경우에는 뭐가 더 직관적인지, 그리고 어느 부분에서 어느 부분이 효과적인 접근인지를 비교할 수 있어 매우 유익했습니다.
2. Awesome과 Not Awesome 예 ~ 베이비 ~
또한 이 책은 같은 코드나 쿼리에 작성에 대한 정도의 길을 제시하고자 노력합니다. 사실 실무에서 일을 하다보면, 결과를 중심으로 코드와 프로그램을 작성하는 경우가 많습니다. 단순한 코드나 쿼리가 반복되고, 때로는 데이터 분석에 맞지 않는 코드와 쿼리를 만들게 됩니다. 즉 가독성이 떨어져 재사용이나 참조하기 어려워 눈쌀을 찌프리는 상황을 만들게되죠. 이 점에서 저자는 기초부터 하나씩 기본이 튼튼해지는 길을 제시합니다.
3. 1 ~ 4장 데이터 다루기, 5장? 기계학습을 위한 좋은 데이터 만들기
이 책은 큰 두 축을 나뉩니다. 1~4장 까지는 데이터를 다루는 스킬을 중심으로 합니다. 즉 자료형, 추출(데이터베이스 관점에서 SELECT, WHERE 등이 ), 집약(데이터베이스 관점에서, 산출입니다. GROUP, SUM, COUNT 등), 결합(JOIN) 등에 대해서, R, Python, SQL을 중심으로 다루는 법을 소개합니다. 전문가 입장에서는 기초를 다지는 것으로 생각하면 되고, 입문자들의 경우에는 필수적으로 익혀야하는 부분이므로 R, Python, SQL을 하나하나 서로 비교해 가면서 익힐 수 있습니다. 물론 입문자들은 하나를 익히는 것 또한 어려울 수 있기 때문에, R로 한번 4장까지 익히보고, Phython으로 한번 익혀보고, 마지막으로 SQL로 한번씩 익히는 방식으로 공부하면, 매우 효과적으로 학습하실 수 있을 것 같습니다.
그럼 5장 부터는 어떤 내용일까? 비로서 기계학습 및 인공지능을 수행함에 따라 필요한 데이터 전처리 스킬을 소개합니다. 데이터 전처리를 통해 모델을 보다 정확하게 생성할 수 있도록 데이터 전처리 방안을 제시합니다. 실습에 많이 적용할 수 있어 실무가 필요하신분들은 좀더 자세하게 봐야할 부분이라고 생각합니다.
즉 5장 이후부터는 모델검증을 위한 데이터 레코드 분할이나, 6장에서 샘플링에 대한 불균형을 조정하는 방법, 7장에서는 희소행렬로의 변환에 대해서 제시합니다. 이는 데이터 분석시, 한번 쯤 고민해야 하는 데이터 전처리로, 그 절차적인 부분을 배우는 것이 쉽지 않습니다. 본 책에서는 이러한 부분을 단계별로 잘 설명하고 있어, 기계학습 및 인공지능에 관한 전처리를 준비하는 데 큰 도움이 됩니다.
4. 데이터 내용 전처리, 머신러닝의 데이터 전처리의 화룡점정
7장 이전에는 데이터 구조의 전처리를 주로 다루고, 8장 이후부터는 데이터 분석 정확도를 높일 수 있는 머신러닝에서의 모델 특성 극대화를 위한 데이터 전처리를 설명합니다. 8장에서는 수치형의 형변환과, 대수화 그리고 범주화를 이용한 비선형화 및 정규화 를 설명하며, 이는 데이터 분석에 부분을 좀더 정밀하게 분석할 수 있는 데이터 전처리 노화우를 설명합니다. 인상적인 부분은 대수화, 정규화, 주성분 분석을 위한 차원 압축 등은 실제 데이터 분석을 정밀하게 이해하고 있지 않으면 하지 못하는 부분을 아주 쉽게 설명하고 있으며, 이 들도 R, Python, SQL 등으로 친절하게 비교하게 예시를 제시해, 전문영역까지 독자가 따라 오도록 제시하고 있습니다.
9장의 범주형 10장 일시형은 또다른 스킬?
데이터 분석을 할 때, 매우 쉬우면서, 다루기 까다로운 데이터가 있습니다. 저의 경우에는 일시형이 되겠네요, 날짜에 대해서, 분석을 할 때, 날짜 코드를 작성하는게 형식에 따라 매우 차이가 크기 때문에 표준화가 필요합니다. 즉 프로그램에서 읽기 쉽게 형식이 갖춰져 있어야 합니다. 그러나 이러한 형식을 프로그램이나 쿼리로 해석하기 위해서는 일정한 스킬이 필요합니다. 이 책은 기본적이지만, 웹에서 검색하기 까다로운 부분을 책의 9, 10장을 할애하여 설명하고 있습니다. 다시말해, 헤매지말고, 이 책을 잘 살펴보면 답이 있다라고 은근히 다시한번 설명하는 것 같습니다.
5. 전처리의 중요성?
이상으로 데이터 전추리 대전에 대해서 리뷰를 해 보았습니다. 데이터 분석을 하다보면 데이터 전처리의 중요성을 무시하고고 실습을 따라하기 급급한 경우가 있습니다. 이 경우 모델링은 잘한 것 같은데 데이터의 분석결과가 좋지 않게 나와 모델 생성의 파라미터 부터 수정하곤 합니다. 이 경우 모델링에 대한 분석이 가능하다면 상관 없지만, 대부분은 그렇지 못하기 때문에, 결국 원하는 결과를 얻지 못하게 됩니다. 무조건 모델의 파라미터 설정을 살피는 게 잘 못된 것이다를 이야기하는 것은 아닙니다. 다만, 데이터의 전처리를 잘 수행하였는지 면밀히 점검해불필요한 시간낭비를 줄이는 것이 필요하단 이야기를 하고 싶습니다. 이 책은 이러한 부분을 체계적으로 설명해 주고 있고, 이러한 전처리에 대해서, 정도의 길을 제시하는 점이 매우 인상적입니다. 여러분들도 꼭 한번 이책을 통해, 전처리에 대해서 고민을 해보시고, 보다 전문가로써 한차원 수준 높은 머신러닝을 경험해 보시길 바랍니다.