품목정보
출간일 | 2018년 02월 13일 |
---|---|
쪽수, 무게, 크기 | 420쪽 | 750g | 188*235*30mm |
ISBN13 | 9791162240472 |
ISBN10 | 1162240474 |
출간일 | 2018년 02월 13일 |
---|---|
쪽수, 무게, 크기 | 420쪽 | 750g | 188*235*30mm |
ISBN13 | 9791162240472 |
ISBN10 | 1162240474 |
데이터 과학자가 알아야 하는 거의 모든 것 프로그래밍 경험은 많지만 통계나 데이터 분석을 잘 모르거나, 반대로 이론은 잘 알지만 실제로 데이터를 다루는 프로그래밍 경험이 없다면 데이터 과학을 어떻게 공부해야 할지 막막하기 마련입니다. 이 책은 데이터 과학자의 실무에 필요한 컴퓨터 공학 및 프로그래밍을 자세히 소개합니다. 또 널리 사용하는 머신러닝 알고리즘에 대한 직관적 설명, 수학적 배경, 실제 사례를 다룹니다. 데이터 과학에서 필수인 시각화 방법과 도구, 데이터를 해석하는 데 필요한 확률과 통계도 다룹니다. 마지막으로 데이터 과학 업무 결과를 정리하고 소통하는 노하우를 소개합니다. 이 책은 데이터 과학자가 알아야 하는 내용을 빠르고 체계적으로 전달하는 최고의 안내서입니다. |
CHAPTER 1 데이터 과학 유니콘이 되자! 1.1 데이터 과학자는 단지 연봉이 높은 통계학자일 뿐이다? 1.2 왜 파이썬을 쓰나요? 1.3 한마디 더 [Part 1 데이터 과학 필수 요소] CHAPTER 2 큰 그림으로 보는 데이터 과학 2.1 문제 파악 2.2 데이터 분석 및 이해 - 기초 2.3 데이터 분석 및 이해 - 전처리 2.4 데이터 분석 및 이해 - 데이터 탐험 2.5 특징값 추출 2.6 모델 수집 및 분석 2.7 결과 정리 및 발표 2.8 코드 배포 2.9 반복 작업 2.10 주요 용어 CHAPTER 3 프로그래밍 언어 3.1 왜 프로그래밍 언어를 사용해야 하나요? 다른 대안은 없나요? 3.2 데이터 과학에서 사용하는 프로그래밍 언어 3.3 파이썬 속성 코스 3.4 문자열 데이터 3.5 함수 정의하기 3.6 파이썬의 공학용 라이브러리 3.7 개발 환경 및 라이브러리 소개 3.8 파이썬 관련 문서 및 참고 자료 3.9 더 알아보기 3.10 주요 용어 CHAPTER 4 데이터 먼징 : 문자열 다루기, 정규표현식, 데이터 정리하기 4.1 생애 최악의 데이터셋 4.2 실수를 예방하는 방법 4.3 데이터 자체의 문제 4.4 데이터 형식 문제 4.5 데이터 형식 정리 예제 4.6 정규표현식 4.7 실제 현장 이야기 4.8 더 알아보기 4.9 주요 용어 CHAPTER 5 시각화와 대푯값 5.1 파이썬의 시각화 도구 5.2 아이리스 데이터셋 5.3 원형 차트 5.4 막대그래프 5.5 히스토그램 5.6 평균, 표준편차, 중간값, 백분위 5.7 상자그림 5.8 산포도 5.9 산포도와 로그 축 5.10 산포 행렬 5.11 히트맵 5.12 상관관계 5.13 안스콤 쿼텟 데이터셋과 대푯값의 한계 5.14 시계열 데이터 5.15 더 알아보기 5.16 주요 용어 CHAPTER 6 머신러닝 개론 6.1 역사적 맥락 6.2 지도학습과 비지도학습 6.3 학습 데이터, 시험 데이터, 과적합 6.4 더 알아보기 6.5 주요 용어 CHAPTER 7 특징값 추출 7.1 일반 특징값 7.2 데이터 표본 여러 개의 대푯값 7.3 복잡한 특징값 7.4 어떤 특징값을 예측할지 결정하기 CHAPTER 8 머신러닝과 분류 8.1 분류기란? 8.2 현실적인 고려사항 8.3 이진 분류와 다범주 분류 8.4 예제 코드 8.5 다양한 분류기의 특징 8.6 분류기 평가하기 8.7 분류 기준값 정하기 8.8 더 알아보기 8.9 주요 용어 CHAPTER 9 의사소통과 문서화 9.1 일반적인 원칙 9.2 슬라이드 작성 9.3 보고서 작성 9.4 발표하기 9.5 코드 문서 작성하기 9.6 더 알아보기 9.7 주요 용어 [Part 2 데이터 과학 확장팩] CHAPTER 10 비지도학습 : 군집화와 차원 축소 10.1 고차원의 저주 10.2 아이겐페이스와 차원 축소 예제 10.3 주성분 분석 10.4 스크리 도표와 차원 이해하기 10.5 요인 분석 10.6 주성분 분석의 한계 10.7 군집화 10.8 더 알아보기 10.9 주요 용어 CHAPTER 11 회귀 11.1 당뇨 진행 상황 예측 예제 11.2 최소제곱법 11.3 비선형 커브피팅 11.4 커브피팅 평가 : R2과 상관관계 11.5 오차의 상관관계 11.6 선형 회귀 11.7 라소 회귀와 특징값 선정 11.8 더 알아보기 11.9 주요 용어 CHAPTER 12 데이터 인코딩과 파일 형식 12.1 일반적인 데이터 형식 12.2 CSV 파일 12.3 JSON 파일 12.4 XML 파일 12.5 HTML 파일 12.6 Tar 묶음 파일 12.7 Gzip 파일 12.8 Zip 파일 12.9 이미지 파일 형식 12.10 바이트 데이터 12.11 정수형 12.12 실수형 12.13 텍스트 데이터 12.14 더 알아보기 12.15 주요 용어 CHAPTER 13 빅데이터 13.1 빅데이터가 정확히 뭔가요? 13.2 하둡과 하둡 파일시스템 13.3 HDFS 사용하기 13.4 파이스파크 예제 코드 13.5 스파크 둘러보기 13.6 스파크 연산 13.7 파이스파크를 실행하는 두 가지 방법 13.8 스파크 설정하기 13.9 파이스파크 : 더 깊이 살펴보기 13.10 스파크 : 팁과 주의사항 13.11 맵리듀스 패러다임 13.12 성능 개선을 위한 고려사항 13.13 더 알아보기 13.14 주요 용어 CHAPTER 14 데이터베이스 14.1 관계형 데이터베이스와 MySQL 14.2 키-값 저장소 14.3 와이드 컬럼 저장소 14.4 문서 저장소 14.5 더 알아보기 14.6 주요 용어 CHAPTER 15 좋은 프로그래밍 습관 기르기 15.1 코딩 스타일 15.2 버전 관리와 깃 15.3 테스트 코드 15.4 테스트 주도 개발 방법론 15.5 애자일 방법론 15.6 더 알아보기 15.7 주요 용어 CHAPTER 16 자연어 처리 16.1 자연어 처리가 필요한 상황 16.2 언어와 통계 16.3 주식 관련 신문 기사의 감정 분석 예제 16.4 자연어 처리 소프트웨어 및 데이터셋 16.5 토큰화 16.6 BoW 특징값 16.7 단어 빈도와 문서 빈도 역수 16.8 n-그램 16.9 불용어 16.10 표제어 추출과 공통부분 추출 16.11 동의어 처리 16.12 품사 태깅 16.13 그 외 문제들 16.14 자연어 처리 심화과정 16.15 더 알아보기 16.16 주요 용어 CHAPTER 17 시계열 데이터 분석 17.1 위키피디아 조회수 예측 예제 17.2 시계열 데이터 분석 순서 17.3 시계열 데이터와 타임스탬프 데이터 비교 17.4 내삽법과 외삽법 17.5 신호 스무딩 17.6 간단한 데이터 전처리 17.7 추세와 주기성 17.8 윈도 적용 17.9 시계열 데이터의 특징값 추출 17.10 특징값 추출 심화 과정 17.11 푸리에 분석 17.12 시계열 데이터와 특징값 17.13 더 알아보기 17.14 주요 용어 CHAPTER 18 확률 18.1 동전 던지기와 베르누이 확률변수 18.2 다트 던지기와 균등확률변수 18.3 균등분포와 유사난수 18.4 비이산 불연속 확률변수 18.5 표기법, 기댓값, 표준편차 18.6 종속성, 주변확률, 조건부확률 18.7 확률분포의 꼬리 18.8 이항분포 18.9 푸아송 분포 18.10 정규분포 18.11 다차원 정규분포 18.12 지수분포 18.13 로그 정규분포 18.14 엔트로피 18.15 더 알아보기 18.16 주요 용어 CHAPTER 19 통계 19.1 데이터 과학과 통계학 19.2 베이지언과 빈도론자의 비교 19.3 가설검정 19.4 다중 가설검정 19.5 매개변수 추정 19.6 t 검정 19.7 신뢰구간 19.8 베이지안 통계학 19.9 나이브 베이즈 19.10 베이지안 네트워크 19.11 선험적 확률 추정 19.12 더 알아보기 19.13 주요 용어 CHAPTER 20 프로그래밍 언어의 주요 개념 20.1 프로그래밍 방법론 20.2 컴파일과 인터프리팅 20.3 자료형 체계 20.4 더 알아보기 20.5 주요 용어 CHAPTER 21 알고리즘의 성능과 메모리 관리 21.1 예제 코드 21.2 알고리즘의 성능과 빅오표기법 21.3 정렬 알고리즘과 이진검색 21.4 평균복잡도와 분할상환분석 21.5 오버헤드 줄이기, 메모리 관리 21.6 팁 : 수치연산 라이브러리를 이용하자 21.7 팁 : 사용하지 않는 대용량 객체를 삭제한다 21.8 팁 : 가능하면 내장 함수를 사용한다 21.9 팁 : 불필요한 함수 호출을 자제한다 21.10 팁 : 덩치가 큰 객체는 가급적 새로 만들지 않는다 21.11 더 알아보기 21.12 주요 용어 [Part 3 데이터 과학 특수 분야] CHAPTER 22 컴퓨터 메모리와 자료구조 22.1 가상 메모리 22.2 C 언어 예제 22.3 자료형과 배열 22.4 구조체 22.5 포인터, 스택, 힙 22.6 주요 자료구조 22.7 더 알아보기 22.8 주요 용어 CHAPTER 23 최대 우도 추정과 최적화 23.1 최대 우도 추정 23.2 커브피팅 예제 23.3 로지스틱 회귀 예제 23.4 최적화 23.5 경사 하강법과 볼록 최적화 23.6 볼록 최적화 23.7 확률 경사 하강법 23.8 더 알아보기 23.9 주요 용어 CHAPTER 24 고급 분류기 24.1 라이브러리 선정 24.2 딥러닝 기초 24.3 합성곱신경망 24.4 텐서 24.5 MNIST 숫자 필기 인식 24.6 순환신경망 24.7 베이지안 네트워크 24.8 학습 및 예측 24.9 마르코프 연쇄 몬테카를로 방법 24.10 파이엠시 예제 24.11 더 알아보기 24.12 주요 용어 CHAPTER 25 확률 과정 25.1 마르코프 연쇄 25.2 마르코프 연쇄의 종류 25.3 마르코프 연쇄 몬테카를로 25.4 은닉 마르코프 모델 25.5 비터비 알고리즘 25.6 랜덤워크 25.7 브라운 운동 25.8 ARMA 모델 25.9 연속 마르코프 과정 25.10 푸아송 과정 25.11 더 알아보기 25.12 주요 용어 |
‘처음 배우는 데이터 과학’ 이 책은 목차만 봐도 데이터 과학에 필요한 다양한 내용에 압도되는 그런 책입니다. 컴퓨터로 데이터를 다루는 거의 모든 분야(빅데이터, 머신러닝, 딥러닝 등)를 다루는 책입니다.
이 책에도 데이터 과학자가 뭔지 설명하지만 제 생각으론 컴퓨터로 통계를 좀 더 잘하려고 노력하다보니 데이터 과학으로 발전한게 아닌가 싶네요. 물론 최근에 급격하게 늘어나는 데이터가 이 분야를 급격하게 발전시키고 있는 것 같습니다.
엄청난 양의 데이터를 사람이 직접 처리할 수는 없기 때문에 데이터 과학에서 코딩은 필수라고 말합니다. 저자는 다른 프로그래밍 언어도 많지만 파이썬을 강력하게 추천하고 있습니다. 추천에서 끝나는게 아니라 파이썬 기초를 설명해주고 이 책에 등장하는 거의 모든 이론을 파이썬 코드로 보여주고 있습니다.
이 책은 우선 데이터를 다듬는 방법부터 설명합니다. 먼저 눈으로 데이터를 보면서 문제가 없는지 살펴본 후 프로그래밍으로 쓸모있게 변경하는 작업입니다. 아무리 통계, 머신러닝, 딥러닝을 할 수 있어도 데이터에 문제가 있으면 그 결과값도 의미가 없기 때문에 이 부분부터 잘 배워야겠습니다.
데이터를 나름 심도있게 다루는 책이라 그런지 (이런 것까지 알아야하는 소리가 절로 나오는)복잡한 수학공식, 코드도 다소 포함되어 있습니다. 모두 다 이해하면 좋겠지만 왜 쓰는지 이유만 알아도 초보에게는 큰 문제가 될 것 같지 않습니다. 이 분야 박사가 되는게 목표가 아니라 데이터 잘 다루는게 중요하기 때문에 그 정도로도 충분하다 생각합니다.
다루는 내용이 방대한 만큼 여기서 사용되는 라이브러리, 프레임워크도 다양합니다. 예로 빅데이터에서는 하둡, 스파크를 만지고, 딥러닝에서는 (텐서플로보다 쉬운) 케라스를 다루는 식입니다. 분야별로 좀 더 깊게 공부하기 위해서는 전문적인 책이나 구글링을 하면 될 것 같습니다.
이 책을 보면서 오랜만에 컴퓨터 분야에서 참 좋은 책을 만났다는 생각이 들었습니다. 프로그래밍으로 데이터를 다듬는 작업부터 시작해서 통계, 빅데이터, 머신러닝, 딥러닝 등 데이터 과학에 필요한 거의 모든 분야를 입문할 수 있었습니다.
좋게 말하면 데이터 과학의 a to z를 모두 살펴볼 수 있고, 나쁘게 말하면 겉핡기 식으로 데이터 과학을 알아본다. 만약 독자가 (나와 같은) 데이터과학과 접점이 거의 1도 없던 사람이라면 적극적으로 ‘비추’한다.
기본적으로 파이썬, 통계, 확률, 수학, 머신러닝, 프로그래밍, 딥러닝 등을 다루는데, 이에 대한 기본적인 지식이 없다면 이해하기 매우 힘들다. 컴퓨터공학이나 통계학을 전공했거나 개발자로서 일하는 사람이라면 ‘아, 이게 데이터 과학에서는 이렇게 쓰이는구나!’ 하고 깨달을 수도 있는데, 그런 배경지식이 없다면 도대체 무슨 말을 하는지 알 수 없기 때문이다.
내가 이해하는 내용은 파이썬 기초와 프로그래밍 언어의 특징, 데이터 과학의 문제해결방법 등 아?주 기초적인 부분뿐이었다. 이해가 안 되는 장들은 그냥 펄럭펄럭 넘겼더니 2시간도 다 안 되어서 읽을 수 있었다. 이걸 좋아해야하나 말아야 하나?
하지만 통계학이나 컴퓨터공학을 전공했는데 데이터과학자를 꿈꾼다면, 굉장히 유용한 책이라는 생각이 들었다. ‘데이터 과학’이라는 학문이 아직 정체성도 잡히기 전인 걸로 아는데, 이 학문에 대한 ‘총론’격 책의 역할을 톡톡히 하기 때문이다. 조금 더 공부하고, 다시 읽어봐야겠다.
그래도 한 가지 건진 인용구는 있다. 아마 통계학자들 사이에서는 유명한 말이 아닐까 싶다.
“케디의 법칙 : A와 B의 상관관계가 높으면 대체로 둘 중 하나가 다른 하나의 원인이 아니라 어떤 공통의 외부 요인 C가 존재한다.”
이 법칙, 어쩐지 인간관계에도 적용할 수 있지 않을까 생각한다. ‘A와 B가 (서로 다른데) 친하다면, 그것은 둘이 비슷해서가 아니라 둘 다 C를 싫어하기 때문이다.’ 뭐, 이런 생각?
1년6개월동안 영어만 파고들어서 미국 유학에 필요한 고급영어를 마스터한 이야기를
최근에 독한서민갑부 반찬가게를 운영하는 세프 편에서 보고 들었다. 요리사가 꿈인
학생이 유학을 가고 싶다는 욕망 그 하나를 붙잡고 ABC도 모르는 상태에서 세게3대
요리학교 중 한 곳에서 공부할 수 있는 수준의 영어로 날아올라간 것이다. 뛰어올라간
것이 아니고 확실히 날아올라간 것이 맞다고 생각된다.
나는 수포자. 사실 수학 점수가 조금만 높았으면 서울대에 갔을 것이다. 농담반진담이다.
그렇다고 명문대학을 나오지 않은 것은 아니지만 (과는 조금 그렇다. 돈과는 상관 없어
보이는 학과를 나왔다) 수포자인 것은 변함이 없는 상태에서 53세를 맞았다. 그런데 요즘
빅데이터와 AI에 눈이 맞았다. 이걸 제대로 사용하는 사람이 되고 싶다. 그러면 옆에서
깐족되며 "곰손이니 사업하지 마!"라고 깝죽대는 형을 혼낼 수 있고 일도 잘 할 수 있다는
생각이 든다.
그래서 구입한 책 <처음 배우는 데이터 과학> ...... 더럽게 눈에 안 들어온다.
하지만 사실 수학이 엉망인데도 명문대에 갈 수 있었던 것은 얼굴이 하얗게 될 정도로
노력한 덕분이었다는 사실을 상기해냈다. 그리고 다른 사람들이 얼마만에 내가 일을 그만
둘까 내기를 거는 순간 - 3D 업종으로 불리는 부서로 이동해간 상황 -을 기억한다. 1개월
도 아니고 3개월 또는 6개월을 외친 내기꾼들을 납작하게 해주었던 기억. 무려 햇수로 10년
동안 근무하고 그것도 좋은 기록을 많이 내고는 팀장으로 영전해갔다. 이 기억을 떠올리면서
가장 초보적인 질문에 답을 찾아본다.
13.1 빅데이터가 정확히 뭔가요?
오늘날 우리가 사용하는 빅데이터 라는 말에는 조금 어폐가 있습니다. 빅데이터라는 말이 유행하기 전에도 이미 큰 데이터는 존재했습니다. 빅데이터는 단순히 크기가 큰 데이터셋이 아니라 사용되는 데이터셋의 크기를 포함함 몇 가지 특징과 이를 처리하기 위한 기술을 뜻합니다. 여기에는 두 가지 특징이 있습니다.
빅데이터의 데이터셋은 규모가 큽니다.
빅데이터를 가르는 특별한 기준이 있는 것은 아니지만, 대력적으로 컴퓨터 한 대에 전부 저장하기 어려울 만큼 큰 규모를 의미합니다. 따라서 컴퓨터 몇 대에서 많게는 수천 대로 이루어진 클러스터가 필요합니다. 여기서 핵심은 큰 규모에도 잘 대응할 수 있도록 데이터를 불특정 다수의 컴퓨터로 이루어진 클러스터에 분산시키고 각각에서 병렬로 작업을 처리하는 겁니다. 클러스터에 속하는 개별 컴퓨터를 노드 node 라고 부릅니다. 작업 도중에 노드 간 통신이 있을 수도 있지만 가급적 이를 최소화해서 병렬 연산의 효율을 높입니다.
빅데이터의 데이터셋은 비구조적 unstructured 형태를 띱니다.
데이터에 구족가 전혀 없다는 뜻은 아니지만, 에스큐엘과 같은 관계형 데이터베이스에 저장하기에 적합하지 않은 경우가 많습니다. 예를 들면 그림 피디에프 파일, 에이취티엠엘 파일, 행렬이 깨끗하게 정돈되지 않은 엑셀 파일, 자동으로 생성된 로그 파일 등이 여기에 해당합니다. 전통적인 데이터베이스는 분명하게 정의된 구조로 이루어진 데이터를 빠른 속도로 처리할 수 있습니다. 이와 달리 빅데이터는 다양한 형태의 데이터를 유연하게 처리할 수 있어야 합니다. 그만큼 최적화가 어렵기 때문에 연산시간이 늘어난다는 단점이 있습니다.
우선 빅데이터가 정말로 필요한지 잘 따져봐야 합니다. ... 빅데이터에서 사용하는 라이브러리는 거의 항상 기본 방식보다 느리고 설치가 어려우며 불안정합니다. ... 데이터셋 크기가 컴퓨터 한 대에서 처리할 수 있을 정도로 작거나 에스큐엘로 처리가 가능하다면 전통적인 방식을 먼저 고려해야 합니다.
빅데이터를 쓰더라고 상황에 따라 전통적인 데이터 분석 도구를 잘 섞어서 사용해야 합니다.
예를 들어 머신러닝이나 데이터 시각화에는 대부분의 경우 빅데이터가 필요 없습니다. 보통 특징값 추출 단계에서 빅데이터의 힘을 빌립니다. ... 따라서 특징값을 추출한 뒤에는 팬더스 같은 도구로 데이터 분석을 하면 됩니다.
빅데이터를 아예 쓰지 말라는 이야기는 아닙니다. 다만 유행 때문에 빅데이터를 쓰는 경우를 너무 많이 봤습니다. 212쪽 2부 데이터 과학 확장팩
다음은 13.2 하둡과 하둡 파일시스템......
분명 말도 안되는 도전인데 수학개념대박과와 <1년안에AI깁데이터전문가가되는법> 그리고 이 책 < 처음배우는데이터과학>을 엮어버리려고 생각중입니다. 어렵고 잘 안 될 것입니다. 그래서 더더욱 해내고 싶습니다.