실전 데이터 분석 with 파이썬 - 5개의 케이스 스터디로 데이터 분석 스킬업하기!
레널드 아펠신 지음, 박찬성 옮김 / 길벗 / 2024년 12월
평점 :
장바구니담기


[이 글은 초대권(도서)을 제공 받아 주관적인 견해에 의해 작성했습니다]

길벗 출판사 페이스북과 인스타그램에서 <길벗 26차 개발자 리뷰어 모집>를 하고 계셨다.

최근 길벗 출판사에서 출간한 개발 서적을 읽고 리뷰를 남기는 이벤트였는데 선택할 수 있는 책들 중에 <실전 데이터 분석 with 파이썬/레널드 아펠신 저>라는 책도 선택할 수 있었다. 데이터 분석을 공부하고 실습할 수 있는 책이었는데 나는 데이터 분석을 공부하는 데 이론적인 부분만 배우고 있어 실전, 실무를 배우지 못해 아쉬움이 있었다. 이 책으로 실전, 실무 데이터 분석을 배울 수 있을 것 같아 큰 기대가 되고 꼭 읽어보고 싶어서 서평 이벤트를 신청했고 당첨되어서 책을 받게 되었다! 감사합니다.^^ 길벗출판사님.^^


책의 저자-레널드 아펠신

현재 Anomaly의 데이터 과학 책임자이다. Anomaly 이전에는 자연어 처리를 전문으로 하는 스타트업인 Primer AI에서 머신 러닝을 연구했고, 창립 멤버로서 Primer AI 팀을 4명에서 거의 100명의 직원으로 성장시키는 데 도움을 주었다. 스타트업에 진출하기 전에는 학계에서 일하면서 유전적으로 연관된 질병의 숨겨진 패턴을 발견했고, 그 내용이 사이언스 앤 네이처 저널의 자회사에 게재되었다.

카네기 멜론 대학교에서 생물학 및 컴퓨터 과학 학사 학위를, 샌프란시스코 캘리포니아 대학교에서 생물정보학 박사 학위를 취득했다. 인공지능과 머신러닝에 전문가인 엔지니어링 디렉터로, 코넬 대학교에서 컴퓨터 과학 학사, 카네기 멜런 대학교에서 로봇학 박사 학위를 받았다. 대학원 연구 시절 잠재적인 킬러 소행성을 감지하기 위한 알고리즘 개발에 참여했다. 『The CS Detective』(No Starch Press, 2016)를 저술했고, ‘Computational Fairy Tales‘ 블로그도 작성했다.

책의 목차

1부 첫 번째 사례 탐구: 카드 게임의 승리 전략 탐색

1장 파이썬으로 확률을 계산하는 방법

1.1 표본 공간 분석: 방정식 없이 결과의 불확실성을 측정하는 접근법

__1.2.1 문제 1: 네 자녀를 둔 가족 분석하기

__1.2.2 문제 2: 다면체 주사위를 굴렸을 때 분석하기

__1.2.3 문제 3: 가중된 표본 공간으로 주사위를 굴렸을 때 확률 계산하기

1.2 사소한 확률 계산 문제

1.3 구간에 대한 확률 계산

__1.3.1 구간 분석법으로 극단 평가

1.4 요약

2장 맷플롯립으로 확률 그래프 그리기

2.1 맷플롯립으로 그래프 그리기

2.2 동전 뒤집기 확률 그래프 그리기

__2.2.1 여러 동전 뒤집기 확률 분포도 비교하기

2.3 요약

3장 넘파이로 무작위 시뮬레이션 수행하기

3.1 넘파이로 무작위 동전 뒤집기와 주사위 던지기 시뮬레이션하기

__3.1.1 편향된 동전 뒤집기 분석

3.2 히스토그램과 넘파이 배열로 계산하는 신뢰 구간

__3.2.1 히스토그램 내 유사한 점들을 묶기

__3.2.2 히스토그램에서 확률 구하기

__3.2.3 고신뢰 구간의 범위 줄이기

__3.2.4 넘파이로 히스토그램 계산하기

3.3 신뢰 구간으로 편향된 카드 덱 분석하기

3.4 순열로 카드 뒤섞기

3.5 요약

4장 첫 번째 사례 탐구의 솔루션

4.1 뒤섞은 카드 덱에서 빨간색 카드 예측하기

__4.1.1 전략의 성공 확률 추정하기

4.2 열 장으로 구성된 카드 덱 하나에 대한 표본 공간으로 전략 최적화하기

4.3 요약

2부 두 번째 사례 탐구: 온라인 광고 클릭의 유의성 평가하기

5장 사이파이를 사용한 기본 확률 및 통계 분석

5.1 사이파이로 데이터와 확률 간 관계 탐색하기

5.2 중심성의 척도로서 평균

__5.2.1 확률 분포의 평균 구하기

5.3 흩어진 정도를 측정하는 분산

__5.3.1 확률 분포의 분산 구하기

6장 사이파이와 중심 극한 정리로 예측하기

6.1 사이파이로 정규 분포 다루기

__6.1.1 샘플링된 정규 분포 곡선 두 개 비교하기

6.2 무작위 샘플링으로 모집단의 평균 및 분산 결정하기

6.3 평균과 분산을 이용하여 예측하기

__6.3.1 정규 곡선 아래 면적 계산하기

__6.3.2 계산된 확률 해석하기

6.4 요약

7장 통계적 가설 검정

7.1 표본 평균과 모집단 평균 간 차이 평가하기

7.2 데이터 드레징: 오버샘플링을 이용한 잘못된 결론 도출하기

7.3 복원 추출을 이용한 부트스트랩: 모집단 분산을 알 수 없을 때 가설 테스트하기

7.4 순열 테스트: 모집단의 매개변수를 알 수 없는 경우 표본 수단 비교하기

7.5 요약

8장 판다스를 사용한 테이블 분석하기

8.1 기본 파이썬 기능으로 테이블 저장하기

8.2 판다스로 테이블 탐색하기

8.3 테이블의 열 가져오기

8.4 테이블의 행 가져오기

8.5 테이블의 행과 열 수정하기

8.6 테이블 데이터 저장 및 불러오기

8.7 시본으로 테이블 시각화하기

8.8 요약

9장 두 번째 사례 탐구의 솔루션

9.1 판다스로 광고 클릭 테이블 처리하기

9.2 평균의 차이로 p-값 계산하기

9.3 통계적 유의성 결정하기

9.4 41가지 파란색 색조: 실제 사례로 알아보는 주의 사항

9.5 요약

3부 세 번째 사례 탐구: 뉴스 헤드라인으로 질병 발생 추적하기

10장 데이터 그룹화하기

10.1 중심성으로 클러스터 발견하기

10.2 K-평균: 중심 그룹 K개로 데이터를 그룹화하는 클러스터링 알고리즘

__10.2.1 사이킷런을 사용한 K-평균 클러스터링

__10.2.2 엘보 방법으로 최적의 K 선택하기

10.3 밀도를 사용하여 클러스터 검색하기

10.4 DBSCAN: 공간 밀도에 따라 데이터를 그룹화하는 클러스터링 알고리즘

__10.4.1 DBSCAN과 K-평균 비교하기

__10.4.2 비유클리드 거리 기반 클러스터링

10.5 판다스로 클러스터 분석하기

10.6 요약

11장 지리적 위치의 시각화 및 분석

11.1 대원 거리: 지구상 두 점 사이의 거리를 계산하는 지표

11.2 카토피로 지도 시각화하기

__11.2.1 지오스 및 카토피 수동 설치하기

__11.2.2 콘다 패키지 관리자 활용

__11.2.3 지도 시각화

11.3 GeoNamesCache를 사용한 위치 추적

__11.3.1 국가 정보 접근

__11.3.2 도시 정보 접근

__11.3.3 GeoNamesCache 라이브러리의 제약

11.4 텍스트 내 지명 찾기

11.5 요약

12장 세 번째 사례 탐구의 솔루션

12.1 헤드라인 데이터에서 위치 추출하기

12.2 추출된 위치 데이터 시각화 및 클러스터링

12.3 위치 클러스터에서 인사이트 추출하기

12.4 요약

4부 네 번째 사례 탐구: 온라인 채용 공고로 데이터 과학자의 이력서 개선하기

13장 텍스트 유사성 측정

13.1 간단한 텍스트 비교

__13.1.1 자카드 유사도 탐색

__13.1.2 단어를 숫자 값으로 바꾸기

13.2 단어 수를 사용하여 텍스트 벡터화하기

__13.2.1 정규화로 TF 벡터 유사도 개선하기

__13.2.2 단위 벡터 내적으로 관련성 지표 간 변환하기

13.3 효율적인 유사도 계산을 위한 행렬 곱셈

__13.3.1 기본 행렬 연산

__13.3.2 전체 행렬에 대한 유사도 계산하기

13.4 행렬 곱셈의 계산 한계

13.5 요약

14장 행렬 데이터의 차원 감소

14.1 2D 데이터를 단일 차원으로 그룹화하기

__14.1.1 회전으로 차원 줄이기

14.2 PCA와 사이킷런으로 차원 감소시키기

14.3 4D 데이터를 2차원으로 그룹화하기

__14.3.1 PCA의 제한 사항

14.4 회전 없이 주성분 계산하기

14.5 SVD 및 사이킷런으로 효율적인 차원 축소하기

__14.4.1 거듭제곱 반복으로 고유 벡터 추출하기

14.6 요약

15장 대용량 텍스트에 대한 자연어 처리 분석

15.1 사이킷런으로 웹 토론 포럼 데이터셋 불러오기

15.2 사이킷런으로 문서 벡터화하기

15.3 게시글 빈도 및 개수로 단어의 순위 매기기

__15.3.1 사이킷런으로 TFIDF 벡터 계산하기

15.4 대규모 문서 데이터셋의 유사성 계산하기

15.5 주제별로 텍스트 그룹화하기

__15.5.1 단일 텍스트 클러스터 탐색하기

15.6 텍스트 클러스터 시각화하기

__15.6.1 하위 그래프로 여러 워드 클라우드 표시하기

15.7 요약

16장 웹 페이지의 텍스트 추출하기

16.1 HTML 문서 구조

16.2 BeautifulSoup으로 HTML 파싱하기

16.3 웹 데이터 내려받기 및 파싱하기

16.4 요약

17장 네 번째 사례 탐구의 솔루션

17.1 채용 공고 데이터에서 기술 요구 사항 추출하기

__17.1.1 기술을 설명하는 HTML 살펴보기

17.2 관련성별로 작업 필터링하기

17.3 관련 채용 공고에서 스킬 클러스터링

__17.3.1 직무 기술을 그룹 15개로 그룹화하기

__17.3.2 기술 클러스터 조사하기

__17.3.3 소프트 스킬 클러스터 조사하기

__17.3.4 다른 K 값으로 그룹 탐색하기

__17.3.5 가장 관련성이 높은 게시물 700개 분석하기

17.4 결론

17.5 요약

5부 다섯 번째 사례 탐구: 소셜 네트워크 데이터로 미래의 친구 관계 예측

18장 그래프 이론 및 네트워크 분석

__18.1.1 NetworkX로 웹 네트워크 분석하기

18.1 기본 그래프 이론으로 인기도별 웹 사이트 순위 지정하기

18.2 비방향성 그래프로 마을 간 이동 시간 최적화하기

__18.2.1 마을과 지역에 대한 복잡한 네트워크 모델링하기

__18.2.2 노드 간 가장 빠른 이동 시간 계산하기

18.3 요약

19장 노드 순위 매기기 및 소셜 네트워크 분석을 위한 동적 그래프 이론 기법

19.1 네트워크의 예상 트래픽을 기반으로 중앙 노드 발견하기

__19.1.1 교통 시뮬레이션으로 중심도 측정하기

19.2 행렬 곱셈으로 이동 확률 계산하기

__19.2.1 확률 이론으로 페이지랭크 중심성 도출하기

__19.2.2 NetworkX로 페이지랭크 중심성 계산하기

19.3 마르코프 그룹화로 커뮤니티 감지하기

19.4 소셜 네트워크에서 친구 그룹 찾기

19.5 요약

20장 네트워크 기반 지도 학습

20.1 지도 학습의 기본 사항

20.2 예측 레이블 정확도 측정하기

__20.2.1 사이킷런의 예측 측정 기능

20.3 KNN 성능 최적화

20.4 사이킷런으로 격자 탐색 수행하기

20.5 KNN 알고리즘의 한계

20.6 요약

21장 로지스틱 회귀로 선형 분류 모델 학습

21.1 규모별로 고객을 선형적으로 분리하기

21.2 선형 분류 모델 학습시키기

__21.2.1 표준화를 이용하여 퍼셉트론 성능 향상시키기

21.3 로지스틱 회귀를 이용한 선형 분류 개선하기

__21.3.1 특징 두 개 이상에서 로지스틱 회귀 수행하기

21.4 사이킷런을 사용하여 선형 분류 모델 학습시키기

__21.4.1 다중 클래스에 대한 선형 모델 학습시키기

21.5 계수로 특징 중요도 측정하기

21.6 선형 분류 모델의 제한 사항

21.7 요약

22장 의사 결정으로 비선형 분류 모델 학습

22.1 논리 규칙 자동 학습하기

__22.1.1 두 특징으로 중첩된 if/else 모델 학습시키기

__22.1.2 분할할 특징 결정하기

__22.1.3 특징 둘 이상을 다루는 if/else 모델 학습시키기

22.2 사이킷런으로 의사 결정 분류 모델 학습시키기

__22.2.1 특징 중요도를 이용한 암세포 연구하기

22.3 의사 결정 분류 모델의 제한 사항

22.4 랜덤포레스트 분류 모델로 성능 개선하기

22.5 사이킷런으로 랜덤포레스트 분류 모델 학습시키기

22.6 요약

23장 다섯 번째 사례 탐구의 솔루션

23.1 데이터 탐색하기

__23.1.1 프로필 살펴보기

__23.1.2 실험 관찰 결과 살펴보기

__23.1.3 친구 관계 연결 테이블 살펴보기

23.2 네트워크 특징을 사용하여 예측 모델 학습시키기

23.3 모델에 프로필 관련 특징 추가하기

23.4 안정적인 특징 집합에 대한 성능 최적화

23.5 학습된 모델 해석하기

__23.5.1 일반화 가능한 모델은 왜 중요할까요?

23.6 요약

찾아보기


책의 특징

책의 저자님은 많은 부트캠프에서는 일관성 있는 문제 해결 능력보다 독립형 알고리즘 연구를 더 우선시하는 경우가 많고 또 알고리즘의 강점에 대한 과대광고는 약점보다 강조되는 경향이 있다고 하신다. 그래서 학생들이 때때로 실제 환경에서 데이터 과학을 다룰 준비가 부족한 경우가 많아 그러한 이유들로 이 책을 쓰게 되셨다고 말씀하신다. 책의 저자님은 책을 읽는 독자들에게 점점 더 어려워지는 분석 문제를 던지시면서 저자님만의 데이터 과학 교육을 재현하신다. 또 이러한 데이터 분석 문제를 효과적으로 처리하는 데 필요한 도구와 기술을, 책을 읽는 독자들에게 알려주신다.

책의 장점

시중에 많은 코딩/프로그래밍 관련 책들이 출간되어 있지만, 실용적인 예제들 보다는 문제를 위한 문제, 그다지 실무에서는 쓸모 없는 내용들(원 그리기, 삼각형 그리기 등)을 실습하는 경우가 많은데 이 책은 그런 책들과 달리 실무에서 쓸 수 있는 카드 게임 승리 전략 탐색, 온라인 광고 클릭의 유의성 평가하기, 뉴스 헤드라인으로 질병 발생 추적하기, 온라인 채용 공고로 데이터 과학자의 이력서 개선하기, 소셜 네트워크 데이터로 미래의 친구 관계 예측 등 재미있는 실습 내용들이 많아 재미있게 공부 할 수 있고 배운 것들을 응용해 볼 수 있는 기회를 제공한다.

책의 후기

이 책에서 가장 재미있던 실전 데이터 분석 프로젝트는 네트워크 분석 부분이었다. 왜냐하면 나는 네트워크 분석에 큰 관심이 많았는데 국내에 출판된 데이터 분석 관련 책들은 네트워크 분석을 다루지 않는 경우가 많아 자료가 적어 찾기 힘들고 희귀했기 때문이다. 다행히 이 책에는 네트워크 분석을 다루는 예제가 하나만 달랑 있는 게 아니라 여러 개로 다양한 네트워크 분석 실전 프로젝트들이 있어서 코드를 치면서 배우는 동안 재미있고 유익했다. 앞으로 국내에도 네트워크 분석을 다루는 책들이 이 책 처럼 많이 출간되었으면 좋겠다. 덕분에 좋은 책 잘 읽었습니다. 길벗출판사님.^^ 언제나 감사하고 있습니다.^^

#실전데이터분석with파이썬 #수학 #통계 #길벗출판사 #길벗출판 #길벗 #데이터 #숫자 #분석 #회귀분석 #상관분석 #머신러닝 #서평 #서평단 #서평이벤트 #리뷰 #리뷰단 #리뷰이벤트 #리뷰어 #책 #책인증 #이벤트 #책이벤트 #레널드아펠신 #박찬성 #파이썬 #코딩 #프로그래밍 #데이터분석 #데이터사이언스 #텍스트 #텍스트데이터



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo