한빛출판네트워크

IT/모바일

데이터 전처리 대전

데이터 분석을 위한 파이썬, SQL, R 실천 기술

한빛미디어

번역서

절판

데이터 전처리 대전
좋아요: 4
  • 저자 : 모토하시 도모미쓰
  • 역자 : 윤준
  • 출간일 : 2019-11-01
  • 페이지 : 368쪽
  • ISBN : 9791162242247
  • 물류코드 :10224

합계 : 27,000

  • 실무 데이터 분석과 전처리 구현에 필요한 구체적인 기술을 제시하는 활용 가이드

     

    데이터 분석의 품질에 큰 영향을 미치는 데이터 전처리는 매우 중요한 작업이다. 전처리 공정을 전체적으로 이해하려면 프로그래밍 언어에 관한 이해뿐만 아니라 통계학이나 머신러닝에 관한 기반 지식이 필요하지만 이를 포괄적으로 설명하는 책은 없었다.

    이 책은 저자의 생생한 데이터 분석 실무 경험을 바탕으로 실용적인 전처리 기술을 설명한다. 프로그래밍 언어를 이용해 간단한 개발을 할 수 있는 사람이라면 무리 없이 이해할 수 있도록 쉽게 설명한다. 초급 데이터 과학자뿐만 아니라 데이터 분석 업무를 익히고 싶은 시스템 엔지니어에게도 강력히 추천한다.

     

    [상세이미지]데이터 전처리 대전_700.jpg

     

  • [저자] 모토하시 도모미쓰

    시스템 개발업체 연구원과 웹 계열 회사의 데이터 과학자를 거쳐 현재는 디지털 의료 스타트업의 CTO로 역임 중이다. 양자 어닐링 컴퓨터의 검증에 개인 사업자로 참여하고 있다. 제조업, 소매업, 금융업, 운수업, 레저 산업, 웹 등 다양한 업종의 데이터 분석을 경험했다. 취미로 마리오 AI를 개발한다.

    [역자] 윤준

    숭실대학교 미디어학부를 졸업하고 동 대학원 모바일 랩에서 미디어공학을 전공했다. 프런트엔드 엔지니어로 활동하고 있으며 한빛미디어에서 『초보자를 위한 언리얼 엔진 4 입문』, 『초보자를 위한 유니티 입문(개정판)』 등을 번역했다.

     

  • [1부 전처리 입문]

     

    1장 전처리 개요 

    1.1 데이터 

    1.2 전처리의 역할 

    1.3 전처리의 흐름 

    1.4 세 가지 프로그래밍 언어 

    1.5 패키지/라이브러리 

    1.6 데이터셋 

    1.7 데이터 읽기 

     

    [2부 데이터 구조 전처리]


    2장 추출

    2.1 데이터 열을 지정한 추출 

    2.2 조건에 따른 데이터 행 추출 

    2.3 데이터 값을 고려하지 않는 샘플링

    2.4 집약 ID에 기반한 샘플링

     

    3장 집약 

    3.1 데이터와 종류의 개수 산출

    3.2 합곗값 계산

    3.3 최댓값, 최솟값, 대푯값 산출 

    3.4 분포 계산

    3.5 최빈값 계산

    3.6 순위 계산 

     

    4장 결합

    4.1 마스터 테이블에서 정보 얻기 

    4.2 조건에 따라 결합할 마스터 테이블 변경하기

    4.3 과거 데이터에서 정보 얻기 

    4.4 상호 결합 

     

    5장 분할 

    5.1 모델 검증을 위한 데이터 레코드 분할 

    5.2 모델 검증을 위한 시간 데이터 분할 

     

    6장 생성

    6.1 언더샘플링으로 데이터 불균형 조정하기 

    6.2 오버샘플링으로 데이터 불균형 조정하기

     

    7장 전개 

    7.1 가로 데이터로 변환

    7.2 희소 행렬로의 변환 

     

    [3부 데이터 내용 전처리]


    8장 수치형 

    8.1 수치형 데이터로 변환

    8.2 대수화를 이용한 비선형 변화 

    8.3 범주화를 이용한 비선형 변화 

    8.4 정규화 

    8.5 예욋값 제거

    8.6 주성분 분석을 이용한 차원 압축 

    8.7 수치의 보완 

     

    9장 범주형 

    9.1 범주형으로 변환 

    9.2 더미 변수화

    9.3 범줏값의 집약

    9.4 범줏값의 조합

    9.5 범주형의 수치화

    9.6 범주형의 보완 

     

    10장 일시형

    10.1 일시형과 날짜형으로 변환 

    10.2 연, 월, 일, 시각, 분, 초, 요일로 변환

    10.3 일시의 차이로 변환 

    10.4 일시형의 증감

    10.5 계절로 변환

    10.6 시간대로 변환

    10.7 평일과 휴일로 변환

     

    11장 문자형 

    11.1 형태소 분석을 이용한 분해 

    11.2 단어의 집합 데이터로 변환

    11.3 TF-IDF로 단어의 중요도 조정

     

    12장 위치 정보형 

    12.1 한국 측지계를 세계 측지계로 변환 

    12.2 두 지점 간 거리와 방향 계산

     

    [4부 실천 전처리]


    13장 연습 문제

    13.1 집계 분석 전처리 

    13.2 추천 전처리

    13.3 예측 모델링 전처리 

     

     

    부록 A 예제 환경 구성하기

    A.1 SQL 환경 준비하기

    A.2 R 환경 준비하기

    A.3 파이썬 환경 준비하기

  • 데이터 분석에서 가장 먼저 실행하는 전처리 기술!

    SQL과 R, 파이썬 예제로 효과적이고 실용적인 구현 방법 익히기 

     

    이 책은 데이터 분석에서도 가장 먼저 실행되는 전처리를 전문적으로 다룬다. SQL과 R, 파이썬이라는 각 언어를 활용해 문제를 풀어나가면서 각 언어의 특징과 장단점을 함께 알려준다. 하지만 여러 언어를 다룬다고 해서 모든 것을 얻을 수 있는 책은 아니다. 이 책은 특정 언어의 스킬을 가르쳐주기보다는 전처리란 무엇인가를 설명하는 데 더 초점을 맞춘다. 특히 다양한 예제를 여러 언어를 활용해 풀어보면서 어떤 식으로 문제에 접근해야 하는지 알려준다. 즉 세 가지 언어의 특징을 통해 각 전처리의 특성을 더욱 잘 이해할 수 있게 구성했다.

     

    이 책의 내용은 프로그래밍을 하는 사람이면 누구나 쉽게 따라 할 수 있다. 프로그래밍을 잘 알지 못해도 예제들을 실행해보면서 전처리의 프로세스를 이해할 수 있을 것이다. 저자의 현장 경험을 바탕으로 구성한 예제들을 읽다 보면 그러한 경험과 노하우가 문제에 녹아들어 있음을 알 수 있다. 앞으로 전처리를 다뤄야 할 독자분이라면 언어의 선택부터 전처리를 다루는 팁까지 얻을 수 있는 좋은 자료가 될 것이다.

    • 좀 신기한 책이 나왔습니다.


       





       


      SQL, R, Python을 같이 설명하는 책은 처음 보았습니다.


      보통 SQL만 R만 Python만 다루는 책이 태반일 텐데, 일단 이 셋을 한번에 다루는 게 신기하면서도, 그동안 많이 다루지 않고 '전처리'라는 영역을 주제로 했다는 게 정말 특기할 만했습니다. 캐글 같은 경진대회에서 괜찮은 성적을 거둘 만한 역량이어도 현장 업무에서는 시작 단계에서 어려움을 겪을 때가 상당할 텐데, 이 책은 현실에서 맞붙게 될 상황에 대해 다양하게 풀어줍니다.


       


      예를 들어 범주형 데이터를 dummy 변수로 만들기는 원래 그렇게 하는 것 아니냐고 반문할 수도 있는데, 통계로 시작하지 않고 업무를 개발자로 시작했다거나 하면 직관적으로 깨닫기 힘든 노하우일 수도 있습니다. 그래서 이 책이 가진 가장 큰 장점은 시야를 넓혀준다는 점입니다.


       


      SQL로 시작한 사람은 R, Python의 패키지를 많이 알아둬야 하는 배경에 익숙하지 않습니다. SQL로 처리하지 못하는 영역이나 SQL로는 길게 코딩할 수 밖에 없는 상황은 곤혹스럽기만 할 겁니다.


       


      Python은 덜 한 편인데(완전 소견/편견), R은 워낙 패키지들이 막강하니 뭐든 R로 끌어 와서 처리하는 게 가능합니다. 다만 대체로 PC 위에서만 R을 사용할 수 밖에 없으니 데이터가 조금만 커져도 운용하는 데에 무리가 있습니다. 때문에 SAS 같은 상용 솔루션은 In-database 기능을 제공하고 홍보했습니다. 전처리 상당 부분을 성능이 괜찮은 DB에서 처리하면 작업시간을 줄일 수 있을 텐데, 의외로 SQL을 생소해 하는 팀원을 만나 다소 의아했던 적이 있습니다.


       


      이 책은 데이터 처리에 있어 R. Python. SQL로 제 몫을 다 하게 되었지만 시야를 넓히며 더 효율적인 방법을 갈고 닦고자 하는 중수에게 특히 권하고 싶습니다. 헤매는 시간을 줄이며 보다 다양한 영역을 눈으로 보게 해줍니다. 저런 방법이 있었구나 하는 깨달음을 향후 몇 년 간 업무경험을 풍요롭게 해줄 겁니다.

    •  



      이번 달에 리뷰 도서로 당첨된 책은 "데이터 전처리 대전"이다.


       



      AI/ML 관련 분야 中 "데이터"에 대한 내용을 담고 있는 책이다.


       


       


      아직까지도 AI/ML 공부한다고 하면


      대뜸 TensorFlow 또는 PyTorch와 같은 것으로


      어떻게 Training을 해서 모델을 만들 것인지에 대해서 파고든다.


       


      경사하강법(gradient descent)이 어찌고


      오버핏이 어찌고 등등등...


       


       



      하지만, 제대로된 결과물이 나오기 위해서는



      제대로된 입력물이 있어야 한다!!!


       


       



      즉, 데이터가 중요하다는 말이다 !!!


       


       


      그러한 데이터를 미리 예쁘고 똑똑하게 처리하는 것이 바로



      "데이터 전처리" 이다.


       


       


       





       


       


      제목도 직관적이고


      표지 디자인도 예쁘고


      색상도 주황색으로 트랜디 하다!


       


      즉, 책을 딱 보면 괜찮을 것 같다는 기대감을 준다 !!!


       


       


       


       





       


       


      원서의 경우 2018년도에 작성이 되었고


      번역본은 2019년 11월에 출간이 되었다.


      아직 개정판은 없는 것 같다.


       


      음... 시시각각 새로운 것들이 쏟아지는 AI/ML 바닥에서


      지금 (20년 11월) 이 책을 봐도 되는 것인지


      우려가 되기도 하지만...


       


      데이터를 다루는 부분에 있어서는


      책에서 설명하고 있는 내용들이 안될일은 없을 것 같다.


       


      즉, 지금 구매해서 봐도 괜찮다.


       


       


       


       





       


      이 책은 크게 4개의 파트로 구성되어 있다.


       


      정말 직관적이다.


       


      전처리가 무엇인지 설명해주고 (1부)


      구조를 어떻게 손봐야 하는지 알려주고 (2부)


      내용도 손봐야 하는 경우 어떻게 할지 알려준 다음에 (3부)


      실전에 적용하기 위해 필요한 사항들을 알려준다 (4부)


       


       


       





       


      화려한 것을 좋아하는 개인적인 취향에서 조금 아쉽게도


      흑백 인쇄이지만


      깔끔한 편집으로


      보기 편하게 잘 되어 있다.


       


       


       





       


       


       


      번역도 술술 읽힐 정도는 아니지만


      그냥 보기에 크게 어색하지 않게 잘 되어 있다.


       


       


       


       


       





       


      책 내용은


      표지에 명시되어 있는 것처럼


       


      파이썬


      SQL


      R


       


      3가지 방법으로 설명을 해주고 있다.


       


       


      즉, 현재 주로 사용하고 있는 언어(도구?)가


      저 3가지에 속한다고 하면 아무 부담없이


      이 책을 구매해도 될 것 같다.


       


       


      각 도구(언어?)에 대한 설명은 별도로 없기 때문에


      셋 중 하나는 다룰줄 아는 사람에게만


      이 책을 권장한다.


       


       


       


       


       


      이 책에서 사용하는 데이터는 한빛미디어 홈페이지에서 다운로드 받을 수 있다.


       


      http://hanbit.co.kr/support/supplement_survey.html?pcode=B1543811360


       


       


       


      역자가 예제 환경 설정 등에 대해서 포스팅을 해준다고 했는데,


      1년이 지난 지금까지도 포스팅 안해줬다.


       


      https://junyun0516.github.io/


       


       


       


      그냥 데이터나 예제를 github를 통해서 공유해주지....


       


       


       


      결론은 ...


      1년이 지난 책이지만, 지금 봐도 괜찮은 데이터 전처리 관련 도서이다.


       


       


       


       


       


      * 이 책은 한빛출판네트워크의 '나는 리뷰어다' 이벤트를 통해 제공 받은 도서입니다.






    • 그림 1. 데이터 전처리 대전 


       


       회사에서 인공지능 관련 업무를 하다보면, (물론 사람마다 나누는 기준은 다를 수 있겠지만...) 여러 부류의 일들이 있다. 당연히 모델 개발이나 이를 실제 프레임워크에 반영해서 넣는 일이 주 업무이겠지만, 이런 일 외적으로 개인적으로 중요하다고 생각하는 일이 하나가 있다. (이것도 기준이 다르겠지만) 내 기준에서는 Data Preprocessing, 다르게 표현하면 데이터 전처리이다. 뭐 다른 업무 처럼 딥러닝/머신러닝 모델을 만든다거나 그런 기술을 집어넣는 일이 아니기에 전체 업무에서는 그렇게 부각이 되는 건 아니지만, 어차피 그런 모델을 개발할 때 다 필요한게 모델에 집어넣고 학습시킬 데이터이고, 이런 데이터의 형식은 일정해야 되기 때문에 그만큼 원론적인 룰이라고 생각한다. 


       사실 내가 하는 일에서는 데이터 전처리의 필요성이 크다. 센서 데이터를 다루는 이상, 센서에서 정상적인 값을 읽지 못했을 경우 채워지는 NaN는 당연히 처리해야 될 데이터이고, 가끔 오동작으로 비정상적인 데이터가 저장된 경우는 더 골치가 아프다. 이 비정상적인 값이 진짜 이런 이상한 현상이 발생해서 찍힌 값인지, 아니면, 센서가 오동작해서 찍힌 값인지, 아니면 script가 도는 시스템이 중간에 멈춰서 이런건지 원인을 찾기가 애매하기 때문이다. 또 이런 데이터가 발생했을 경우에 대한 후처리도 고민해야 한다. 이런걸 할려면 포괄적으로 데이터를 많이 보고 이해하면서, 나름의 Domain Knowledge도 필요하고, 특정 문구를 처리하기 위한 정규표현식도 알아야 한다. 



       여기서 소개하는 이 책은 그 많은 데이터 처리 문제 중에서도 딱 전처리에 대한 노하우를 기술한 책이다. 이론적으로만 데이터 전처리를 하자면, 딱 케이스에 필요한 API만 찾아다가 쓰면 별 문제가 없다. 그 데이터의 양이 적다는 가정하에만 말이다. 데이터 양이 많아지면, 자연적으로 우리가 상식상에서 알고있는 API만 써서 처리하기에는 그 효율성이 너무 낮다. 그런 관점에서는 알고 있고, 쉬운 API가 아닌 "효율적인" API를 써야 한다고 생각한다. 그래서 그냥 정보가 아닌 노하우라고 표현한 이유이기도 하다. 책 내용도 보면 우리가 잘 알고 있으나 비효율적인 코드와 간단하고 매우 효율적인 코드를 Not awesome과 Awesome 으로 나눠서 설명하고 있다.


       개인적으로 좋다고 생각한 부분은 데이터 전처리도 그 나름의 주제별로 나눠서 설명했다는 것이다. 아마 주요 내용을 다루는 부분이 Part 2. 데이터 구조 전처리일텐데 여기서는 딱 이 주제들로 구분지어 설명하고 있다.


      • 추출 (Select)

      • 집약 (Aggregation)

      • 결합 (Join)

      • 분할 (Split)

      • 생성 (Generate)

      • 전개 (Spread)


      또한 데이터 내용 전처리에서도 자료형별로 전처리하는 기법을 다음과 같이 제시하고 있었다.


      • 수치형 (Numerical)

      • 범주형 (Categorical)

      • 일시형 (datetime)

      • 문자형 (Character)

      • 지리형 (GIS)


       데이터 전처리를 많이 해본 사람들이라면 어쩌면 이런 주제들이 익숙할 것이고, 새로 접하는 사람도 이런 주제에 대해서는 눈여겨보면 좋을만한 주제들로 정리가 잘되어 있었다. 그리고 데이터를 많이 처리하는 언어 중에서도 많이 사용되는 것이 Python과 R, 그리고 SQL일텐데, 이 책에서는 이 3가지 언어를 모두 커버하려고 노력했다. 그래서 예시도 되도록이면 언어별로 좋은 사례들을 제공하는 형태로 되어 있다. 이 부분은 어쩌면 한가지 언어만으로 데이터 전처리를 시도하는 사람에게는 해당 페이지들이 조금 낭비처럼 느껴질 수 있다. 물론 전처리 주제에 관한 컨셉을 다양한 언어로 표현한 부분에 대해서는 개발자 환경의 다양성을 감안해서 작성되었을 수도 있겠지만, 만일 내가 Python은 알고 SQL, R은 모르는 개발자다 싶으면, 이 책이 나한테 큰 메리트가 있을까 하는 의구심이 조금은 생길 수 있을듯 하다. (사실 나같은 경우가 좀 그랬다. 물론 평소에 SQL, R은 공부해야 되겠다 하는 마음가짐은 있지만, 문법도 익숙하지 않은 상황에서는 전처리에 바로 적용하기 어려운 부분이 좀 있었다.)



       그럼에도 불구하고, (Python만 한정해서 보더라도) 이 책에 담긴 전처리 노하우들은 실무에서도 바로 쓸 수 있을만큼 꽤나 도움이 많이 되었다. 딱 책에 명시된 주제가 내가 겪고 있던 문제에 대한 것들이 많았기 때문에, 그런 부분을 Awesome 코드만 따와서 적용해보기에 너무 좋았던 책이었던 것 같다.



       요약하자면 개인적인 관점에서는 이 책이 너무 많은 개발자들의 다양성을 존중하려고 노력했고, 그러면서 약간 알맹이들이 조금씩은 빠진듯한 느낌이 조금씩 있었지만, 데이터 전처리라는 주제를 딱 놓고 봤을 때는, 실무에서 겪을법한 일에 대한 주제와 그 예시들이 잘 설명되어 있어 실무에 응용하기 좋았던 부분은 이를 필요로 하는 독자들에게는 도움이 되지 않을까 하는 생각을 해본다.





      출처: https://talkingaboutme.tistory.com/entry/Book-Data-Preprocessing [자신에 대한 고찰]


    • 



      한빛미디어에서 나는 리뷰어다 활동을 통해 제공받은 책을 읽고작성하였습니다.



       


       



      ㅇ1.jpg


       



       



       



      좋은 학습 모델을 사용하고 좋은 데이터를 쓰는 것도 좋지만 전처리도잘 해놔야 하니까 읽어봐야겠다.



       



      라는 생각을 갖고 읽기 시작.



       



      저자: 모토하시 도모미쓰



      데이터 과학자고 취미로 마리오AI를 개발하신다고 합니다.



       



      데이터 분석을 위한 데이터 전처리를 공부하기 위해 읽으시려는분들에겐 좋은 책일 것 같다.


       



       



      ㅇ2.jpg ㅇ3.jpg 



      책은 Python 뿐만아니라 SQL, R 까지 3가지 언어로 좋은 예, 안 좋은 예로 나눠서 설명한다.



      그런데 나처럼 주로 쓰는 언어가 1, 많아야 2개정도로고정된 사람이 읽기엔 이게 조금 불편하다.



      나는 이것만 보면 되는데 중간 중간 있는 다른 언어들을 넘겨야하니 말이다.



      차라리 언어별로 챕터를 나눠버렸으면 좋았을텐데.



      3가지 언어의 예시가 모두 필요하지 않으면 오히려 다른 책이 나을것 같다.



      요즘은 '데이터!' 하면 글자와 숫자만 수두룩하게 써있는 게 아니라 그림, 소리, 영상까지 사용하는 경우가 많다.



      그런데 이 책은 표지에도 나와있듯이



      '딥러닝머신러닝을 위한'이 아니라 '데이터 분석을 위한'이다.



      따라서 내가 기대했던 이미지나 음성, 영상 데이터 전처리에 관한 내용은 없다..



      형태소 분석이나 TF-IDF 같은문자열 처리 같은 것 정도?



      그런데 측지계로 위치 정보를 다루는 내용은 흥미로웠다.



      나중에 인공위성 실험 할 일 있으면 써봐야지.



      내용은 좋았는데 내가 원하던 내용이 없어서 조금 아쉽다.



      



       



    •  '데이터' 라는 말은 이제 뭐랄까 포켓몬스터 중 하나인 '메타몽' 같은 존재랄까? 어디에 가져다놔도 이상하지 않은 단어가 되었다. 정말 그야말로 데이터의 시대다. 내가 어떤 직무에 있던지간에 데이터를 다룰 수 있는 사람과 아닌 사람은 시작점 부터가 다르다고 생각한다. 단순히 그런 분야가 있지가 아니라 한국에서 '영어'가 갖는 위치처럼 반드시 알아야하는 분야라고 생각한다.



      내가 이 책을 고른 가장 큰 이유는 같은 로직을 수행하는데 R, Python, SQL을 함께 다뤘다는 점이다. 사실 이 세 언어는 각자 할 수 있는 일이 다르다. 단순히 기호에 맞게 선택하는 것이 아니라 내가 하려고하는 일에 맞는것을 선택해야한다. 그런데 그러려면 세 언어를 기본적으로 다룰수 있어야하는데 각 언어별 시중의 서적을 보면 내가 원하는 곳까지 가려면 너무 많은 지식을 알아야한다. 예를들어 파이썬으로 데이터 전처리를 하고 싶어서 파이썬 기초 서적을 찾아보면 데이터 전처리보다는 파이썬 프로그래머가 되기 위한 기초를 다지는 것에 초점이 맞춰져 있는식이다. 이런 측면에 이책은 데이터 전처리를 배우고자 하는 사람들에게 추천할 만한 책임에 틀림없다. 



      이 책만으로 데이터 과학 또는 데이터 분석 업무를 할 수 는 없다. 데이터를 전처리 하는 것 만으로 해당 데이터를 분석하고 활용했다고 할 수는 없으니까. 다만 데이터 전처리 없이는 데이터 분석과 활용 역시 불가능하다. 모든 데이터는 전처리가 필요하다. 내가 필요한 데이터만 뽑아내는 것이 아니다. 데이터 전처리는 각 상황마다 매우 다양하지만 편향을 보고 중심 데이터를 파악하며 누락 된 데이터를 처리하고 이상치를 거르는 등의 작업들이다. Garbage in Garbage out 이라는 말이 있듯이 좋은 데이터가 있어야 좋은 결과가 나온다.  



      흔히 데이터를 가지고 해야할 일을 분석과 예측으로 나누는데 전처리가 충분하지 않으면 데이터를 보는 눈이 좁아진다. 한쪽으로 쏠린 데이터를 가지고 모집단의 데이터라고 생각하고 결과를 낼수도 있고 예측 모델의 정확도나 정밀도가 많은 차이가 있기도 한다. 특히 최근 많은 관심을 받고 있는 머신러닝/딥러닝의 경우 데이터를 어떻게 전처리 했는가 자체만으로 하나의 논문이 나오기도한다. 전처리라는 과정 자체가 결과에 미치는 영향이 크다는 것이다. 문제는 모든 데이터는 전처리를 거치지만 데이터 전처리만을 다룬 책이 없다는 것이다. 그냥 파이썬을 다룰 수 있고, R을 다룰 수 있다면 전처리를 따라오는 것이라고 생각하는 것 같다. 틀린말은 아니지만 데이터 전처리는 기술적인 분야다. 많은 경험이 필요하다. 데이터마다 다르고 하려는 일마다 처리해야하는 방식이 달라진다. 한 마디로 정리하기가 어렵다. 그런데 그 어려운 것을 이  책은 시도한다.



      다학적인 분야이므로 이 책에서는 정확성을 위해 책에서 다루려고하는 데이터셋을 구분 지어 설명한다. 멀티미디어 데이터는 제외하며, 수치, 문자, 논리값 데이터만 가지로 처리한다. 대상독자는 신입 데이터 직군 종사자 또는 데이터 분석 업무에 관심이 있는 초심자로 한 마디로 데이터 전처리에 관심이 있는 사람이 처음 접하기에 좋은 책이다. 책의 목차도 깔끔하지만 특히 좋은점은 전처리 각 단계에서 베스트트랙티스가 무엇인지를 구분 지어 설명한다는 점이었는데 각 언어마다 좋은 방법이 무엇인지 알려줘서 불필요한 접근을 크게 줄여준다. 초보자에게는 매우 필요한 부분이 아닐까. 



      이 책을 다 읽고 흥미가 생기면 개인적으로 '통계학'을 배워보는것을 추천한다. 기초 통계부터 회귀모형, 클러스터링, 나아가 머신러닝, 딥러닝까지 책에서 다루는 내용이 모두 사용되기 때문이다. 그만큼 많이 사용할 법한 내용들이 담겨있고 이론에서 끝나기 보다 실제 구현에서 필요한 내용이 많다. 데이터 분석에 관심이 있다면 이 책은 읽어보기를 추천한다. 데이터 전처리에 대한 막연함을 어느정도 해소하고 앞으로 공부가 필요한 방향까지 생각해 볼 수 있는 시각을 제공할 것이다.


    •  



      20201122_165928.jpg


       

      장점

       



      1.    Python R, SQL 3가지 언어를 이용하여 어느 언어가 해당 처리에 효율적인지와전처리 하는 방법을 예제를 통해 3가지 한꺼번에 공부하는 느낌을 받음



      2.    예제의 퀄리티가 상당히 뛰어난데 예제를 설명하기에앞서 하려는 예제가 어떤 기술을 이용해서 할 것인가를 시각적으로 표현을 한 뒤 예제를 제공하여 3가지언어로 표현하여 배우는 사람 입장에서 훨씬 편하게 와 닿음



      3.    어떤 용도로 데이터를 분석할지 방법들을 제공해주며 특히 머신러닝의 경우 더 좋은 모델을만들기 위해서 해당 데이터 셋을 학습의 용도에 맞게 전처리를 하여 품질을 높여주는 여러 방법들을 제시해줌



      4.    해당 예제에 대해서 어느 방법이 더 효율적인지를표기해주어 예제 풀었다고 끝이 아닌 다시 더 좋은 방법을 깨닫기 위한 복습해볼 수 있음



      후기



      1.    요즘 같이 빅데이터 및 AI가 붐이 일어나 전처리의중요성이 높아지고 있을 때 이 책을 접하게 되었는데 특히 한 개의 언어가 아닌 3가지의 언어를 이용하는게인상적이었으며 해당 언어에 대해서 효율적인 방법을 제시해 주어 다양한 방법을 제공해 교정해 가는 느낌을 받았습니다. 특히 개론 적인 부분이 쉽게 와 닿았으며 해당 기법을 사용할 환경에 문법이 기억이 안나도 개론적인 부분을 상기시켜자동완성 기능 이용해 유연하게 쓸 수 있는 것 같습니다.


    • 데이터 처리 대전 서적을 이용하면 R, SQL, Python 등 여러 언어를 이용해서 데이터 전처리를 할 수 있어서 여러면에서 실력이 향상될 것같다. 또한 이 책 외에도 관련한 더 자세한 내용은 필자의 ww25.junyun0516.githib.io/?subid1=20201122-1829-35a5-97ce-25755693d16a의 Github에 업데이트 한다고한다. 아직 책을 다 읽지는 못했지만 이책을 통해서 데이터에 관련한 능력을 향상해봐야겠다고 생각했다.


    • 데이터와 정보에 대해 아시나요?



      서로 다른 성격을 가집니다.







      데이터는 이름, 성별, 나이도 될 수 있습니다.







      하지만 그 데이터만 가지고는 큰 의미기 없습니다.







      데이터가 가공되었을 때 의미 있는 데이터가 되는데요.



      이를 정보성 데이터라 할 수 있습니다.







      가공되지 않은 데이터를 전처리해서 의미 있는 결과를 만들어야 합니다.







      또 데이터 하면 SQL이 떠오릅니다.







      SQL은 데이터를 생성, 읽기, 수정, 삭제 할 수 있습니다.







      큰 틀은 변하지 않아 한번 제대로 해두면 데이터 처리가 수월해집니다.







      데이터 전처리할 때 사용하는 언어로는 파이썬과 R이 있는데요.



      이를 잘 알려주는 책을 소개하고자 합니다.







      소개해 드릴 책은 '데이터 전처리 대전'입니다.







      데이터 초보자분들도 쉽게 학습 할 수 있는 내용입니다.







      데이터 분석은 어떻게 하고 어떠한 결과가 나오는지 궁금하신 분들에게 이 책을 추천합니다.











      photo_2020-11-22_13-54-13.jpg


       







      1. 통계학과 머신러닝



      통계학과 머신러닝이 무엇인지 아시나요?







      데이터를 전처리하려면 프로그래밍 언어도 알고 있어야 하는데요.



      데이터 전처리 공정에 통계학과 머신러닝도 필요합니다.







      이 책은 특정 언어의 스킬을 알려주는 책이 아닙니다.







      통계학과 머신러닝을 포괄적으로 알려줍니다.







      초급 데이터과학자도 따라가기 쉽게 구성되어 있습니다.











      photo_2020-11-22_13-54-15.jpg


       







      2. 예제를 통한 학습



      예제를 따라 하며 어떻게 동작하는지 이해할 수 있습니다.







      예제를 따라 하기 전 내용을 읽고 이해하면 학습에 도움이 됩니다.







      급하게 코드만 본다고 이해가 되진 않습니다.







      한 번에 이해가 안 된다면 여러 번 읽어 보시기 바랍니다.







      저자의 데이터 전처리 경험과 노하우가 담긴 예제입니다.







      앞으로 전처리를 다루는 데 도움을 얻을 수 있을 겁니다.











      photo_2020-11-22_13-54-18.jpg


       







      Ps



      데이터 분석을 하려고 파이썬을 많이들 공부합니다.







      비개발자도 프로그래밍 언어로 파이썬을 많이 시작합니다.







      저자는 제조, 소매, 금융 등의 데이터를 분석한 실무자입니다.







      데이터 분석에 관심 있는 분들에게 이 책을 추천합니다.

    • `인공지능`, `빅데이터` 등이 기술 분야에서 큰 자리를 잡아가고 있습니다. 그 동시에 이 데이터를 다루는 기술의 중요도도 커지고 있습니다. 그래서 데이터를 다루는 책 여러권이 시장에 나오고 있습니다.


       


      데이터는 굉장히 다양한 형태로 뽑아져 나옵니다. 종류도 다양하고, 데이터 셋이 가지고 있는 속성 값들, 속성의 종류들 너무 다양한 형태로 존재해서 한가지 방법론으로 모든 데이터를 다룰 수는 없습니다. 또 뽑아져 나온 데이터가 모두 우리에게 필요하지도 않습니다. 수행하려는 작업에 따라 전혀 필요없는 속성들도 존재합니다. 초당 수백개의 데이터가 쏟아져나오는데 여기서 모든 값들을 가공 없이쓰기는 사실상 불가능하고 가능하다고 해도 너무 많은 리소스를 필요로 합니다. 그래서 우리에게 이 데이터들을 우리 입맛에 맞게 가공하는 법이 필요합니다.


       


      이 책의 가장 큰 장점을 뽑자면 `SQL`, `R`, `PYTHON` 데이터 전처리에서 가장 많이 쓰이는 세가지 언어로 작성 되었다는 것입니다. 많은 책들이 특정 언어 사용자를 대상으로 쓰여진 것을 생각하면 큰 장점입니다. 목차를 보면 알 수 있듯 다양한 방법들을 알려줍니다. 이 방법들을 코드로 짤 때 효율적으로 짜고 관리할 수 있는 코드와 그렇지 못한 코드를 비교해 `Awesome`, `Not Awesome` 등의 타이틀이 달려 있어 코드 짜는 팁을 배울 수도 있습니다. 


       


       


      편집에서 좀 아쉬운 점이 있었습니다. 코드 파트에서 주석과 본 코드가 같은 폰트로 되어 있어서 가독성이 좀 떨어진다는 문제점이 있었습니다. 해당 파트가 어떤 언어 구형되는지 알려주는 뱃지가 존재하는데 몇몇 곳에서 오표기가 있었습니다. 


       


      위의 아쉬운 부분을 제외하고선 알찬 구성으로 필요한 기법만 찾아 볼 수 있게 인덱싱이 잘어 되어 있어서 레퍼런스 북으로 두고 봐도 괜찮을 듯합니다. 이 책은 데이터를 다루어야 하지만 자신이 없는 모든 분께 추천합니다. 다양한 기법을 소개하고 있고 데이터 형, 카테리형 -> 수치형 등 필요에 따른 핸들링 방법이 많아 한권 쯤 두고 볼 책입니다.


    • 0. 데이터 전처리 ?


       





      데이터를 다루고 분석하는 과정에서 반드시 필요한 것이 데이터 전처리입니다. 데이터 전처리는 데이터 생성, 수집, 처리(집약, 결합, 분할 등) 과정을 말하며, 빅데이터 분석에 가장 기본이 되는 과정입니다. 하지만 대부분의 데이터 분석 입문자들이 이 과정에서 많이 한계를 느끼곤 합니다. 그 이유는 그것 자체가 까다롭고 성가신 과정이며. 대부분 직접 수행해야만 하기 때문입니다. 또한 익숙해 지기 위해 많은 시간이 필요하고, 반복적으로 연습해야 스킬을 유지할 수 있어 단기간에 익히기 쉽지 않습니다. 저 또한 교육을 진행하면서, 가장 까다로운 과정이 바로 이 부분입니다. 어디서부터 어느지점까지 가르쳐야 할까? 항상 고민이 듭니다. 아마 많은 분들이 공감하실것 같습니다.


       


       



      그림1.png


       



      1. 이 책의 장점 어? 기발하다?


       






      이 책의 가장 큰 특징은 프로그램(R, Python) 코드와, 데이터베이스(SQL) 쿼리를 같은 예제로 설명한다는 점입니다.






      전처리는 다양한 부분에서 같은 용도로 수행이 이뤄질 경우가 많아, 상황상황에 잘 대처해야 하는게 매우 중요합니다. R, Python 뿐만 아니라 정통적인 쿼리를 익혀야 하는 이유가 여기에 있습니다. 이 책은 같은 예시를 통해 프로그램(코드)에서 실시하는 경우와 데이터베이스(쿼리)를 통해 실시하는 경우를 비교해 설명합니다. 저의 경우에는 뭐가 더 직관적인지, 그리고 어느 부분에서 어느 부분이 효과적인 접근인지를 비교할 수 있어 매우 유익했습니다.


       



      2. Awesome과 Not Awesome 예 ~ 베이비 ~





       



      또한 이 책은 같은 코드나 쿼리에 작성에 대한 정도의 길을 제시하고자 노력합니다. 사실 실무에서 일을 하다보면, 결과를 중심으로 코드와 프로그램을 작성하는 경우가 많습니다. 단순한 코드나 쿼리가 반복되고, 때로는 데이터 분석에 맞지 않는 코드와 쿼리를 만들게 됩니다. 즉 가독성이 떨어져 재사용이나 참조하기 어려워 눈쌀을 찌프리는 상황을 만들게되죠. 이 점에서 저자는 기초부터 하나씩 기본이 튼튼해지는 길을 제시합니다.


       


       


       



      그림2.png


       



      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장에서는 희소행렬로의 변환에 대해서 제시합니다. 이는 데이터 분석시, 한번 쯤 고민해야 하는 데이터 전처리로, 그 절차적인 부분을 배우는 것이 쉽지 않습니다. 본 책에서는 이러한 부분을 단계별로 잘 설명하고 있어, 기계학습 및 인공지능에 관한 전처리를 준비하는 데 큰 도움이 됩니다.


       


       



      그림3.png


       


       


       


       



      4. 데이터 내용 전처리, 머신러닝의 데이터 전처리의 화룡점정


       






      7장 이전에는 데이터 구조의 전처리를 주로 다루고, 8장 이후부터는 데이터 분석 정확도를 높일 수 있는 머신러닝에서의 모델 특성 극대화를 위한 데이터 전처리를 설명합니다. 8장에서는 수치형의 형변환과, 대수화 그리고 범주화를 이용한 비선형화 및 정규화 를 설명하며, 이는 데이터 분석에 부분을 좀더 정밀하게 분석할 수 있는 데이터 전처리 노화우를 설명합니다. 인상적인 부분은 대수화, 정규화, 주성분 분석을 위한 차원 압축 등은 실제 데이터 분석을 정밀하게 이해하고 있지 않으면 하지 못하는 부분을 아주 쉽게 설명하고 있으며, 이 들도 R, Python, SQL 등으로 친절하게 비교하게 예시를 제시해, 전문영역까지 독자가 따라 오도록 제시하고 있습니다.






      9장의 범주형 10장 일시형은 또다른 스킬?






      데이터 분석을 할 때, 매우 쉬우면서, 다루기 까다로운 데이터가 있습니다. 저의 경우에는 일시형이 되겠네요, 날짜에 대해서, 분석을 할 때, 날짜 코드를 작성하는게 형식에 따라 매우 차이가 크기 때문에 표준화가 필요합니다. 즉 프로그램에서 읽기 쉽게 형식이 갖춰져 있어야 합니다. 그러나 이러한 형식을 프로그램이나 쿼리로 해석하기 위해서는 일정한 스킬이 필요합니다. 이 책은 기본적이지만, 웹에서 검색하기 까다로운 부분을 책의 9, 10장을 할애하여 설명하고 있습니다. 다시말해, 헤매지말고, 이 책을 잘 살펴보면 답이 있다라고 은근히 다시한번 설명하는 것 같습니다.






      5. 전처리의 중요성?






      이상으로 데이터 전추리 대전에 대해서 리뷰를 해 보았습니다. 데이터 분석을 하다보면 데이터 전처리의 중요성을 무시하고고 실습을 따라하기 급급한 경우가 있습니다. 이 경우 모델링은 잘한 것 같은데 데이터의 분석결과가 좋지 않게 나와 모델 생성의 파라미터 부터 수정하곤 합니다. 이 경우 모델링에 대한 분석이 가능하다면 상관 없지만, 대부분은 그렇지 못하기 때문에, 결국 원하는 결과를 얻지 못하게 됩니다. 무조건 모델의 파라미터 설정을 살피는 게 잘 못된 것이다를 이야기하는 것은 아닙니다. 다만, 데이터의 전처리를 잘 수행하였는지 면밀히 점검해불필요한 시간낭비를 줄이는 것이 필요하단 이야기를 하고 싶습니다. 이 책은 이러한 부분을 체계적으로 설명해 주고 있고, 이러한 전처리에 대해서, 정도의 길을 제시하는 점이 매우 인상적입니다. 여러분들도 꼭 한번 이책을 통해, 전처리에 대해서 고민을 해보시고, 보다 전문가로써 한차원 수준 높은 머신러닝을 경험해 보시길 바랍니다.








       


       


       


       

    •  안녕하세요?책이 출간된다는 소식을 들으면서, 가장 기대한 책입니다. 데이터 전처리에 대한 목마름은 항상 있어왔어요.책에 대한 소개전에, 일단 저의 데이터 분석에 대한 여정을 먼저 말씀 드리는 것이 좋을 것 같네요.저는 데이터 분석을 R로 제일 먼저 시작하였어요. 데이터 분석가가 옆에 있어서, 문과에서 워드 클라우드를 하려면 무엇을 하는 것이 좋으냐는 질문에 R 을 하면 간단하게 할 수 있다는 이야기에 R 스튜디오를 설치하면서 데이터 분석을 시작하였어요. 그 당시에는 워드 클라우드가 목적이어서, 어려운 데이터 전처리는 모두 건너뛰고 정말 간단하게 빈도수 등이 나오는 것을 보면서 정말 놀라워 하였어요.스터디를 나가면서 파이썬이라는 것을 알게 되고, 머신러닝에서는 파이썬을 많이 사용한다는 것을 알게 되었습니다. 이때부터 많은 고민이 시작되었습니다. 파이썬이 R보다는 좀 더 프로그래밍적이었고, 코드도 더 복잡했거든요. 그래서 파이썬을 사용해야 하나 고민도 많아졌어요. 파이썬을 배우면서, R 을 찬양하는 이런 상태가 지속되었어요.그러다가 텐서플로우가 나오고 크롤링, 웹 서비스까지의 엔드투엔드 필요성을 느끼면서 파이썬으로 마음이 많이 움직였어요. 이때에도 시각화와 관련해서는 ggplot2의 미련을 버리지 못했어요. 파이썬의 시각화는 아직도 어려운 것 같아요.세월이 흘러, 크롤링한 데이터를 데이터베이스에서 관리하면서 mysql 도 다루게 되면서, sql 사용빈도도 늘어나게 되었습니다. 그러다 한빛미디어에서 나온 sql 에서 데이터 분석하는 책도 읽으면서, 데이터 전처리를 다양한 언어로 다양한 곳에서도 할 수 있다는 것을 알게 되었습니다.언젠가는 sql, R, python 에서 다루는 데이터 함수도 정리하고 싶었고, 성능도 비교도 하고 싶었습니다.그런데 더이상 진도가 나가지 않았습니다. 책들 간의 목차나 사용 목적을 이해해서 정확하게 사용할 함수를 찾아낸다는 것이 쉽지 않았습니다. 판다스를 배우면서, 파이썬 기본 함수와의 사용법조차 선택해서 사용해야 할지 갈수록 헤깔리고 해서, 그냥 판다스로 다 해결하는 것이 속 편할 것 같은 생각도 하였습니다.어느 정도 판다스가 눈에 들어오고 마음이 안정되자, 필요에 의해 데이터 전처리도 여러 언어를 사용해야 제가 필요한 곳에서 적재적소 해결하는 것이 좋지 않을까 생각하게 되었습니다.


       



      SAM_8691.JPG


       


      오늘 "데이터 전처리 대전" 리뷰를 쓰는 지금의 제 생각은 되도록이면 sql 에서 빠르게 전처리를 하고, 특수한 경우 파이썬의 판다스를 사용하는 것이 좋다는 생각이 들었습니다. 시각화를 통한 문제 탐색과 보고는 power bi 를 활용할 생각이고요. 


       



      SAM_8693.JPG


       


      이 책은 전처리에 대한 궁금점을 상당부분 해소시켜준 고마운 책으로 남을 것 같습니다.책의 목차를 보면 우리가 다루는 전처리의 대부분을 서술한 것을 볼 수 있습니다.실제 현업에서는 더 복잡하게 고려할 사항들이 나타날 수 있지만, 책 수준에서 다루는 데이터 전처리는 이 정도면 충분하지 않을까 생각합니다.데이터 분석을 꿈꾸는 분들이라면 강력추천합니다. 


       



      SAM_8695.JPG


       


      책에 내용에 대한 후기는 간단합니다. 문제점을 간략하게 소개하고, sql, R, python 순으로 해결 방법을 서술합니다. 


       



      SAM_8696.JPG


       


      이 책의 좋은 점이 Not Awesome 이라고 하여, 우리가 무심코 사용하는 좀 느리거나 메모리 부족을 일으킬 수 있는 코드를 보여준다는 점입니다. 그리고 나서 바로 Awesome 이라고 하여 좋은 코드를 제시한다는 점입니다. 두 코드를 비교하면서 어느 쪽으로 방향을 잡아야 할지 보여준다는 점이 좋았습니다. 


       


      이 책의 단점으로는 개별 문제 해결이기 때문에 전과정을 한꺼번에 흘러가는 모습을 보지 못한다는 점입니다. 그래도 대부분 목차 순으로 데이터를 전처리를 하기 때문에 현실 속 문제도 책 순서대로 하면 깔끔한 데이터가 나올 것 같습니다.이 책을 읽기 전에는 sql, R, python 언어의 데이터 전처리 해결의 우열이 좀 가려지지 않을까 생각했는데, 책을 읽어나가면서 R 은 아예 줄을 치지 않고 그냥 아~ 이런 함수를 사용하는구나 느끼는 정도로 읽고 넘어가고 있었습니다. 책을 읽으면서 각각의 문제 해결에 최고 괜찮은 sql, R, python 함수가 있지만, 다른 것을 사용해도 좀 코드가 길고 어려워지지만, 새로 다른 언어를 배울 만큼의 정도는 아닌 것 같았습니다. 내가 사용하는 언어가 어느 부분은 부족할지는 몰라도 다른 언어도 같다는 위안을 삼을 수 있는 좋은 기회였던 것 같습니다.저처럼 마음이 왔다갔다 하시는 분이나, 자신의 언어에서 어떤 함수를 사용하는 것이 최선을 가져올지 확신이 드지 않는 초보 데이터 분석가라면 이 책으로 많을 것을 얻을 것이라고 생각합니다.데이터분석하시는 분들에게 추천드리는 책입니다. ^^ 


       


    • KakaoTalk_20191215_224143217.jpg


       


      [들어가며]


      불과 몇 년 전만 해도 IT의 화두는 빅데이터였다. 하지만 몇 년 되지도 않아서 대세는 머신러닝, AI가 되어 버렸다. 


      많은 산업계에서 ML과 AI는 필수적인 기술이 되어버렸다. ML과 AI는 만능인듯 보이지만, 실제로는 많은 선작업이 필요하다. 


      그 중에 가장 많은 시간을 할애하는 것 중의 하나가 바로 전처리이다.


       


      이 책은 그 전처리에 대해서 다룬다. Python, R, SQL을 모두 사용하여 이를 설명하고 있다. (일반적으로 많이 사용하는 RDBMS인 오라클이나 MySQL, MSSQL, PostgreSQL이 아닌 RedShift를 사용한 것이 좀 의아하다.)


       


       


      [요약]


      Part 1


      전처리의 개념에 대해 설명한다. 전처리의 역할, 흐름, 사용언어 및 라이브러리, 데이터셋에 대해 설명한다.


       


      Part 2


      데이터 구조 전처리에 대한 파트이다. 데이터를 추출하는 방법, 샘플링, 집약, 결합, 분할, 생성, 전개 등 많은 형태로 추출하는 법을 설명한다.


       


      Part 3


      파트2에서 추출한 데이터의 내용을 전처리하는 것에 대해 설명한다. 수치형 데이터, 범주형 데이터, 일시형 데이터, 문자형 데이터, 위치 정보형 데이터를 전처리하는 방법에 대해 설명한다.


       


      Part 4


      실전 전처리를 위한 연습 문제이다. 집계 분석, 추천 전처리, 예측 모델링 전처리


       


       


      [후기]


      내용을 보면 Awesome과 Not Awesome이 있어, 어느 것을 선택해야 하는지 명확하게 설명해 주어 좋다.


      실무적인 내용이 포함되어 있어, 현업에 종사하는 사람에게 큰 도움이 된다.


      다만, 위에서도 언급했듯이 SQL용으로 RedShift를 사용한다. ㅡ.ㅡ;


       


       


      [추천대상]


      1. ML이나 AI 관련 업종에서 전처리 업무를 담당하는 사람에게 추천한다.


      2. Python, R, SQL 등을 어느 정도 알고 있어야 한다.

    • 데이터 공부를 시작하는사람들은 R을 해야하는지 Python을 해야하는지 SQL을 해야하는지 묻는다. 


      나 또한 그중 한명이었다. 나는 컴퓨터공학도로 Python으로 시작했으며 Sql 공부도 하며 공모전 언어 통일의 이유로 R을 사용하기도 했다.


      이러한 언어들은 데이터 과학을 하기 위한 도구이고 또한 이들을 함께 공부할 수 있는 책이 나왔으면 하는 생각을 했는데 정확히 '데이터 전처리 대전'이 그 책이다. 또한 데이터 분석 부서의 인턴을 했었는데 실무에서도 Python, R, Sql을 모두 다 사용했었는데 인턴 시기에 나왔다면 동기들과 함께 사서 봤을법한 책이다. 막 입문하는 자보다는 언어 하나를 했고 나무보다는 숲을 보고 싶으며 좀 더 실무적으로 접근하고 싶은 자들에게 추천한다. 


       



      책내부.jpg


       



      책표지.jpg


       



      책뒷면.jpg


       

    • 데이터는 데이터 일뿐이다. 

       


      많은 기업이 앞다투어 데이터를 모은다. 그래서 빅데이터라고 한다. 하지만 우선 쌓아놓고보자 였다. 그리고 무언가 활용을 고려해보려고 하는데 쉽지 않다. 제약조건도 너무 많다. 그래서 목적에 맞게 설계해서 수집해야하지만 시대를 흐름을 그렇게 다 반영하기에는 녹녹치 않음이 현실이다.그러니 계속 데이토만 쌓고 있다. 스토리지가 차고 있다는 것이다.  그것은 비용의 증가라는 것이다.


      그리고 활용하고자 보니 더 쉽지 않다는 것이다. 그제서야 전처리이 대하여 들여다 보게 된다.늦었다고 생각할 때 가장빠르다. 


       


      그에 적합한 책이 나왔다. 


       


      딥러닝도 마찬가지다. 얼마나 정형화된 다루가에 적핮한 데이터로 구성하느냐가 답일 것이다.그후로는 지속적으로 참값을 비교하면 머신이 찾아갈 것이다. 


      실무 데이터 분석과 전처리 구현에 필요한 구체적인 기술을 제시하는 활용가이드 마지막 뒷장의 설명이다. 


      구성은1.전처리 입문2.데이터 구조 전처리3.데이터 내용 전처리4.실전 전처리데이터 전처리에 대한 모든 것을 알아갈 수 있다. 


      특히 재미있는 주제들이 있다.-위치정보형: 좌표변환과 두 지점 간 거리와 방향 계산도 예시로 나와 있다는 것이다.


       


       


      책이다.



      2.jfif


      뒷면



      3.jfif


       



      1.jfif


       


      한빛미디어의 미리보기 서비스는 언제봐도 최고다.



      http://preview2.hanbit.co.kr/books/idad/



      캡처.PNG


       


      책의 서두의 책의 전부를 나타낸다.


      지루하고 고독한 오랜 연단 위에 마침내 꽃은 핀다. 


      만일 당시이 일류 데이터 과학자가 목표라면 지루하면서도 화려함과는 거리가 먼 전처리에서 정점을 찍어야 합니다. 그럼 지금부터 Awesome한 데이터 과학자의 길로 함께 걸어가봅시다.


       


       

    •  



      데이터 전처리 대전, 모토하시 도모미쓰 지음, 윤준 옮김, 한빛미디어, 2019


       


       



      PSX_20191215_181002.jpg


       


       



       



      4차 산업혁명 기반 기술은 우리 일상생활에 빠르게 적용되고있다. 인공지능, 빅데이터,자율주행 등의 용어가 낯설지 않고, 근래에 사용화가 되어 우리 일상에 편리함을 제공해 줄것으로 기대된다. 최근에 데이터 사이언스는 마케팅 분야에도 빠르게 적용되고 있다. 그동안 기업의 마케터 개인의 경험과 감각에 의존해 대중을 상대로 마케팅활동을 했다면, 이제는 빅데이터를 활용한 데이터 사이언스를 기반으로 개별 소비자의 행동을 예측하고, 상품과 서비스를 제안해 판매를 유도하고 있다.


       



       



      맛있는 요리를 만들기 위해서는 요리사의 요리기술도 중요하지만, 좋은원물 재료가 필요한 것처럼, 데이터 분석을 위해서는 분석 목적에 최적화된 데이터가 필요하다. 하지만 데이터는 수집단계에서 날 것 그대로의 불완전한 경우들이 많아 원물의 흙과 모난부분들을 달라내듯 전처리가필요하다.


       



       



      데이터 분석의 전처리를 데이터분석의 8할을 차지한다혹은
      필요 불가결한 과정이라고 합니다.
      전처리 과정이 이렇게까지 중요한 이유는(
      )
      전처리가 데이터 분석의 품질을 크게 좌우하기 때문입니다.(7)


       



       



      <데이터 전처리 대전>은이러한 데이터 사이언스에 있어 가장 기본이 되는 데이터 전처리에 대해 다루고 있다. 4개의 파트로 구성되어 있으며, 먼저 데이터 전처리가 무엇인지 설명하고있다. 그리고 데이터 구조와 데이터 내용을 전처리하는 방법에 대해 설명하고, 실전 예제와 함께 실습할 수 있도록 구성되어 있다.


       



       



      각 데이터 전처리에 대해 파이썬, SQL, R이라는 세 가지언어로 구현하는 방법에 대해서 설명하고 있다. 또한 각 언어의 Awesome한코드와 Not Awesome한 코드를 함께 보여줌으로써 Not Awesome한코드를 Awesome한 코드로 구현하는 방법 제시하고 고민하게 해준다.


       



       



      SQL, R, 파이썬에서 각각 구현가능한 부분과 구현되지 않는 부분들이있어 하나의 언어로만 데이터 분석을 하기보다는 여러 방법을 병행하는 것도 괜찮을 듯 싶다. 다만 세가지 언어를 다루다 보니, 하나의 언어만 사용하고 있다면 내용이 다소 부족하다고 느낄 듯 싶다.


       



       



      파이썬을 이용한 데이터 분석을 배우면서 예제로 제공되는 데이터는 분석을 하는데 큰 문제가 없었는데, 실전에서 데이터를 확보해 분석을 하려고 하면 불완전한 데이터가 상당히 많았다.데이터 양이 많지 않다면 해당 데이터를 삭제하거나, 유사값으로 채워서 사용했는데, 데이터 양이 많아지면 보정하는데 너무 많은 시간이 걸려 데이터 분석 효율성이 떨어졌다. 그래서 데이터 전처리의 중요성을 깨닫게 되었고, 데이터 전처리에대해 세세하게 알려주는 <데이터 전처리 대전>은구세주와 같았다.


       



       



      <데이터 전처리 대전>은 데이터전체에 대해 추출, 집약, 결합, 분할, 생성하여 구조를 전처리하는 방법을 먼저 소개하고, 이렇게 구조 전처리된 데이터를 활용해 분석 정확도를 높이기 위해 수치형, 범주형, 일시형, 문자형, 위치정보형으로내용 전처리하는 방법을 소개하고 있다.


       



       



      간단한 프로그래밍을 할 수 있는 독자라면
      충분히 이해할 수 있도록 구성했습니다.
      프로그래밍 언어를 전혀 모르는 초보자라면
      입문서와 함께 이 책을 읽어나가길 권합니다.
      그러나 전처리의 흐름을 훑어보고 싶은 정도라면
      프로그래밍의 세세한 부분을 몰라도 괜찮습니다.(8)


       


    • 데이터 분석을 위하여!


      1


      데이터 분석 혹은 머신러닝을 공부하거나 실제 서비스에 적용하기 위해서 가장 먼저 진행하는 과정은 데이터를 깔끔하게 정리하는 일이다.



      나는 대학원생이자 직장인이라서 어쩔 수 없이 R과 Python을 모두 사용한다. 논문이나 다른 연구원들과 함께 작업할 경우 R을 사용해서 진행하는 경우가 많고, 회사나 다른 프로젝트는 Python을 사용한다.



      대부분의 경우 데이터 전처리가 끝나면 Python의 tensorflow나 scikit-learn 등을 사용하거나 R의 경우 e1071이나 CARAT등을 사용하지만, 나는 CUDA의 도움을 받아야 되는 경우가 많고 Python이 편하기 때문에 tf나 scikit-learn등을 활용한다.



      문제는 데이터 전처리의 경우 생각보다 손이 많이 가고, 모든 작업을 ‘자동화’할 수 없기 때문에 어쩔 수 없이 R과 Python 관련 데이터 처리 라이브러리를 함께 사용해야 한다. 다행스럽게도 Python에서 사용하는 Pandas와 R에서 주로 사용하는 data.table의 사용용법이 거의 비슷해서 큰 어려움이 없지만 그래도 미묘하게 다른 점이 있다.


      2



      가장 큰 특징



      이 책의 가장 큰 특징은 Pandas와 data.table 두 가지 모두를 다루고 있으며, 비슷한 업무나 작업을 해야 할 경우 관련 사항을 한 번에 확인할 수 있어서 좋았다. 그리고 SQL 관련 내용도 추가로 제공하고 있기 떄문에 데이터 클리닝 작업을 하는 개발자나 관련 업무 종사자에게 굉장히 추천할만한 책이라 할 수 있다.



      SQL만 사용하는 분들이 Pandas를 사용할 경우에도 약간의 도움이 된다. 데이터베이스에서 실시간으로 작업을 하는 연구자, 개발자에게 좋은 참고 자료가 될 것으로 생각된다.(하지만 나는 대부분의 데이터를 CSV로 작업한다). 왜냐하면 이 책의 경우 Pandas를 기준으로 놓고 보자면 기초적인 내용부터 차근 차근 다루고 있기 때문에 Pandas 초보자가 보기엔 전혀 무리가 없다. 따라서 책에서 다루는 언어(PythonRSQL) 중 하나 정도를 어느 정도 알고 있다면 책에서 소개하는 내용만 차근차근 따라하면 별 문제없이 배울 수 있다.


      3



      하지만 Python을 전혀 모르거나, R을 함께 사용하고 있지 않다면 아쉽지만 책의 분량에 비해서 소개하는 내용이 조금 모자랄 것으로 생각된다. 특히 그래프 관련해서 Pandas나 R 책에 비해서 내용이 많이 부족하기 때문에 전문적인 내용이 필요하시면 다른 교재도 함께 참고하셔야 됩니다. 그리고 그래프 부분이 조금 부족한 점이 조금 아쉽네요.

    •  



      [개요]


       


      인공지능이 휩쓸고 있다. 어떤 문제를 해결하기 위해서 알고리즘과 절차를 만드는 것이 아니라, 딥러닝 모델을 돌리기 위한 데이터를 수집하는 게 더 중요하게 되어가는 느낌마저 들 정도이다.


       


      수집된 데이터는 전처리가 필요하다. 전처리는 제대로 된 분석 결과물을 만들기 위해서 반드시 수행해야 하는 작업이다. 좋은 결과를 위해서는 다양하면서도 충분한 양이 확보된 데이터와 편향되지 않은 샘플링을 사용하는 것이 무엇보다도 중요하기 때문이다. 


       


      그러나 전처리는 잡일이다. 잘못된 데이터를 정리하고 데이터가 내포한 각종 오류를 잡는 작업과, 잘못 수집된 데이터를 걸러내고 없는 데이터를 보완하는 일에는 엄청난 시간이 들기 때문이다. 


       


      그래서 전처리는 실제 데이터 분석에 드는 시간의 대부분을 차지하지만, 문제의 유형이 너무나도 다양해서 오히려 이에 대한 실무적인 내용을 배울 수 있는 책이나 교재는 드물다. 


       



      [내용]


       


      Part 1에서는 전처리 개요를 설명한다. 데이터와 전처리의 역할, 흐름, 데이터 셋, 기초 사용 방법을 배울 수 있다. 


       


      Part 2는 데이터 구조 전처리이다. 추출, 집약, 결합, 분할, 생성, 전개의 유형으로 나눠서 각 데이터를 조작해서 원하는 결과를 뽑아내는 법을 설명한다. 


       


      Part 3는 데이터 내용에 따라 달라지는 전처리 기법에 대해 다룬다. 수치형, 범주형, 날짜/시간형, 문자형, 지리 정보형 데이터를 전처리할 때 중요한 점과 자주 쓰이는 기법들을 알게 된다. 


       


      마지막 Part 4는 연습 문제로 구성되었다. 앞에서 다뤘던 내용을 모아서 실습해보는 내용이다. 


       



      [장점]


       


      이 책에서 가장 좋았던 점은 하나의 문제에 대해서 SQL, R, Python 세 언어를 모두 사용해서 풀어본다는 점이다. 


       


      그리고 각 언어별 해결책에는 Awesome과 Not Awesome이 표기되어 있어서, 이를 통해 어떤 상황에서 어떤 언어로 작업을 하는 것이 유리한 지 직관적으로 알 수 있다. 


       


      고수는 도구를 가리지 않는다고 하지만, 데이터 전처리를 본격적으로 진행할 때, 상황에 따른 언어의 취사선택에 상당히 도움이 될 것으로 생각한다.


       



      [단점]


       


      SQL을 배우기 위한 DB로 Amazon RedShift를 이용한다. 부록에서 초기 설정을 제공하기는 하지만, AWS에 익숙하지 않다면 초기 설정 과정이 꽤 길고 번거롭게 느껴진다. 


       


      게다가 레드쉬프트는 최초 2개월 이후에는 유료이다. 클라우드 DB보다는 PostgreSQL 같이 간단한 로컬 DB 계열로 진행했어도 될만한 내용이라 조금 아쉬웠다. 실제로 레드쉬프트의 SQL문은 PostgreSQL과 호환되므로 내용 이해에는 별로 문제가 없었다. 


       



      [결론]


       


      데이터 실무자의 경험과 노하우를 배울 수 있는 책이다. 한글 번역이 유려한 데다, 세 가지 언어로 작업해보면서 어떤 언어가 어떤 과정에서 더 효율적인지 감을 잡는데 도움이 되었다.


       


      초급 데이터 분석 책이지만 각 프로그래밍 언어에 대한 지식은 이미 어느 정도 있다고 가정한다. 언어의 문법이나 코딩기법에 대한 상세한 설명이 생략되어서 데이터 전처리에 대한 내용만 빠르게 훑어볼 수 있어서 좋았다. 

    • 최근에 상황이 가능해서 오프라인 교육을 몇 가지 수강했다.

       

      R을 이용한 데이터 분석, 파이썬을 이용한 데이터 분석, 텐서플로우를 이용한 딥 러닝, ...

       

      예전에 실무에서도 많이 느꼈고 새삼스레 이런 교육들을 듣다 보니(실습이나 예제를 하려면 필수)

       

      데이터 전처리 작업이 대부분의 경우에 필요하고 의외로 이 부분이 엄청난 시간과 리소스를 필요로 한다.

       

      교육 도중에도 어느 수강생이 '데이터 전처리'  에 대해서 레퍼런스를 알려달라 했더니, 

       

      강사가 구글 검색해서 자신에게 맞는 책을 보라고 했던 기억도 난다.

       


       






       


      개인적으로 아주 시기 적절하게  이 책이 나와 보게 되었는데 일단 먼저 후한 점수를 주고 싶다.

       

      그 이유는 이 책의 쿡북 형태(특정 문제나 주제를 어떻게 해결할지 서술)를 띠고 있으며,

       

      데이터 처리에 요즘 가장 많이 사용하는 R, SQL, 파이썬 3가지 언어로 설명을 하고 있기 때문이다.

       






       

      책의 분량은 360 페이지 정도로 부담 없는 사이즈 이지만 내용은 약간 고급 내용도 다루고 있다.

       

      목차를 보면 처음에는 단순하게 최빈값, 순위 계산, 데이터 조인 등을 다루다가 

       

      뒤로 갈수록 데이터 분석 모델이나 머신 러닝 관련 내용들이 나온다. 

       






       

      아마 원저자는(일본 사람이다) 단순한 데이터 전처리가 아니라 머신 러닝을 위한 데이터 전처리를 책에 담고 싶었나보다. 

       

      책에 나오는 예제를 실습하기 위해서는 아마존 레드쉬프트, R, 파이썬을 설치해야 한다. 

       

      부록에서 설명은 되어 있지만 R, 파이썬 설치는 너무 쉬워서 문제가 없을텐데 

       

      MySQL이나 PostgreSQL 등의 접하기 쉬운 DB가 아닌  생뚱 맞게 DB를 아마존 레드쉬프트를 사용하는 것은 옥의 티?

       

      R, SQL, 파이썬 3가지 언어로 설명하고 있고, 책의 뒤편으로 갈수록 고급 내용이나 머신 러닝 등의 내용이 나온다고 했는데 

       

      아래 사진을 보면 SQL 설명이 없는 내용들이 꽤 나온다. 

       






       

      이건 저자가 일부러 설명을 안하는게 아니라 대부분의 머신 러닝 알고리즘은

       

      SQL 로 구현이 불가능하거나 아주 어렵기 때문에 실무에서도 대부분 다른 언어로 대체하기 때문이다.

       

      결론!  데이터 전처리만 하더라도 다양한 방법/언어/라이브러리가 있으므로

       

      엄청난 분량이 나올 수 있지만 이 책은 3가지 언어로 핵심만 설명하고 있다. 

       

      이 책에 나오는 내용들은 전반적인 큰 숲을 둘러보는 용도로 사용하고, 

       

      실무 프로젝트에서의 디테일한 부분은 각각의 언어나 라이브러리를 이용하여 각개격파 하는 방식으로 접근하길 추천한다.










    • <나는 리뷰어다> 11월 이벤트 당첨으로 작성한 리뷰 입니다.






      [한줄평]



      데이터 분석과 전처리 구현의 두마리 토끼를 잡을 수 있는 책







      [목차구성]







      [1부 전처리 입문]



      1장 전처리 개요







      [2부 데이터 구조 전처리]



      2장 추출



      3장 집약



      4장 결합



      5장 분할



      6장 생성



      7장 전개







      [3부 데이터 내용 전처리]



      8장 수치형



      9장 범주형



      10장 일시형



      11장 문자형



      12장 위치 정보형







      [4부 실천 전처리]



      13장 연습 문제







      [대상 독자]



      파이썬,R,SQL 개발자



      초급 데이터 과학자



      데이터 분석을 배우고 싶은 시스템 엔지니어







      [주요 내용]



      이 책은 다음과 같이 네 개의 파트로 구성되어 있습니다.







      1.전처리 입문



      2.데이터 구조 전처리



      3.데이터 내용 전처리



      4.실전 전처리







      전처리 입문에서는 데이터 분석에서 전처리의 역할, 전처리의 종류나 전처리를 구현할 프로그래밍 언어의 분류에 관해 설명합니다. 데이터 구조와 데이터 내용 전처리에서는 이 책의 핵심 내용인 전처리에 대한 구체적인 기술에 관해 알아봅니다. 특히 다음 세가지 요소를 통해 전처리를 설명합니다. 1) 전처리 패턴과 효과 2)예제와 SQL, R, 파이썬의 좋은 혹은 나쁜 해답 코드 3) SQL, R, 파이썬의 코드 작성 팁 먼저 각 챕터에서 문제를 하나씩 제시합니다. 그리고 해당 문제를 풀기 위한 프로그래밍 언어(SQL,R,파이썬)를 선택한 뒤 Awesome한 코드와 Not Awesome한 코드를 함께 보여줍니다. Not Awesome한 코드는 코드 자체가 나쁠 때도 있지만, 프로그래밍 언어에 따라 부득이한 처리일 때도 있고 패키지나 라이브러리를 사용하는 편이 나을 때도 있습니다. Not Awesome한 코드를 어떻게 Awesome한 코드로 바꿀수 있을지를 고민하며 읽을수 있을 겁니다. 또한 각 코드의 핵심 내용은 본문에서 포인트라는 키워드를 붙여서 정리 되어있습니다.







      [서평]



      이 책은 각 전처리에 대해 SQL과R, 파이썬이라는 세가지 언어로 구현 방법을 Awesome, Not Awesome으로 설명합니다. 그 과정에서 각 언어의 특징을 익히고, 전처리 문제별로 적합한지 아닌지를 배울수 있습니다. 여기 책에서의 SQL은 Redshift SQL입니다. 파이썬은 3.7.4버전으로 R은 3.6.1버전으로 거의 최신 버전으로 예제 소스의 동작을 확인 할수 있습니다. 기본적으로 프로그래밍 언어에 대한 이해가 있으면 sql, R, 파이썬에 대해 충분히 이해할 수 있는 수준의 코드로 되어 크게 어렵지는 않아 신입 개발자, 데이터 과학자에게 추천 할수 있겠습니다. 이책을 통해 전처리의 종류나 필요한 최소한의 프로그래밍의 노하우를 배울수 있으며 데이터 분석 혹은 AI에 관심이 많은 엔지니어라면 자신의 분야에서 활용 할수 있는 데이터에 대한 전처리부터 시작하는걸 추천합니다.









    • 데이터를 어떻게 다뤄야 잘 다뤘다고 소문이 날수 있는지 알려주는 책인것이다!


       



      막 수학을 다룰것 같고 머리가 아파오기 시작한다.



      수학은 별로 안좋아한다.



      외우기 어려운 공식 써가면서 해결책을 찾아야 한다는게...


      싫다...! 싫어!


       


      잡담은 이만하고 이 책을 한번 쭉 훑어본 감상은


      오... 재미있는데? 였다.


       


      읭? 머리아플것 같고 그렇다며?


      음... 출판사에서 일부러 훼이크를 준거 아닐까? ㅎㅎ


      어려워 보이지?지만 사실 재미있는거지롱~? 같은 느낌...!


       


      누구를 위한 책인가?


      이 책의 초반부에 설명하고 있는 대상 독자는


      "간단한 프로그래밍을 할 수 있는" 이라고 정의하고 있다.


      그러니까 뭐 수학이 어떻고...


      이런건 그냥 헛소리란 거다 ㅎㅎ


       


      어떤 언어를 사용할까?


      현재 데이터를 다룰때 가장 많이 사용되는 언어는


      위의 사진에 나오는 것처럼 세가지가 있다.


      SQL


      R


      PYTHON


       


      이 책에서는 파이썬과 SQL이 '주' 이다.


      R이 나오는건 아직 자세하게 보지 않아서 모르겠다.


       


      솔직히 프로그래머라면 SQL을 주로 다루게 되니 파이썬을 잘 모르더라도


      충분히 읽을수 있다고 생각한다.


      ORACLE, mariaDB 등 어떤 특정 데이터베이스를 정한게 아니기 때문에


      특정 DB에서 호환되는 문법을 사용하지 않고 스탠다드 SQL을 사용하는것 같다.


       




      막 바로 실전으로 투입하는게 아니라


      지도학습과 같은 데이터 처리를 위한 방법들에 대해 간략하게 설명해준다.


      머신러닝을 잠깐이라도 접해봤다면


      반가운 느낌이 들지 않을까!


       




      SQL 정의 부터 자세하게 설명형식으로 진행하기 때문에


      "나는 프로그래머지만 SQL을 잘 모른다..."


      하는 분들도 조금만 공부한다면 잘 따라올수 있을것 같다.


      (CREATE DATABASE는 안나온 것 같은데 설마 모르는 분들이 있을까..?)


       




      위와같이 직접 실행하고 어떤 결과가 나오는지 출력 결과가 대부분 첨부되어있다.


       


      후반부에는 그래프도 쓰고 그럴것 같았지만


      딱히 그런건 없는것 같았다.


      파이썬을 활용했으니 그래프 같은것도 사용했으면


      좀 더 시선을 끌수 있지 않았을까!


      하는 생각도 해본다.


       


      책을 받아보고 하나씩 따라해보고 있는데


      확실히 데이터의 변화를 바로바로 볼수 있으니


      직접 해보는 재미가 있다.


       


      전처리,



      [어떤 조작을 하기 전에, 그 조작에 알맞는 상태로 준비해 두는 것]


       


      4차 산업혁명이라는 세상에 들어서면서


      모든것은 '데이터의 싸움' 이라고 생각한다.


      여러 분야에서 쓰이는 빅데이터나 머신러닝등


      가장 핫한 분야에서도 데이터가 없다면 무용지물이 아닌가!


       


      데이터 핸들링을 필요로 하는 사람들이라면


      읽어보길 추천한다.

  • 내용이 없습니다.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?