단행본위키북스 데이터 사이언스 시리즈 89
파이썬 데이터 사이언스 핸드북
- 발행사항
- 파주: 위키북스, 2023
- 형태사항
- 588 p: 삽도, 24cm
- 총서명
- 위키북스 데이터 사이언스 시리즈; 89
소장정보
위치 | 등록번호 | 청구기호 / 출력 | 상태 | 반납예정일 |
---|---|---|---|---|
이용 가능 (1) | ||||
한국청소년정책연구원 | 00031508 | 대출가능 | - |
이용 가능 (1)
- 등록번호
- 00031508
- 상태/반납예정일
- 대출가능
- -
- 위치/청구기호(출력)
- 한국청소년정책연구원
책 소개
많은 연구원에게 파이썬은 데이터를 저장, 가공하고 데이터에서 통찰력을 얻을 수 있는 라이브러리 덕분에 데이터를 다루기에 최고의 도구로 여겨진다. 여러 참고 자료에서 파이썬 라이브러리를 소개하지만, 대부분은 각 라이브러리를 개별적으로 다룬다. 하지만 《파이썬 데이터 사이언스 핸드북》 개정판에서는 IPython, NumPy, Pandas, Matplotlib, Scikit-Learn을 비롯한 관련 도구를 모두 다루며, 데이터 과학 및 머신러닝 활용에 꼭 필요한 도구를 성공적으로 설정하고 사용하는 데 도움이 되는 명확하고 따라 하기 쉬운 예제를 제공한다.
파이썬 코드를 읽고 작성하는 데 익숙한 과학자나 데이터 분석가라면 이 책이 데이터의 가공, 변환, 정제와 다른 유형의 데이터 시각화, 통계 모델이나 머신러닝 모델 구축을 위한 데이터 활용 면에서 흔히 발생하는 문제를 해결하기에 가장 이상적인 종합 참고서가 될 것이다. 간단히 말해, 이 책은 파이썬으로 데이터 사이언스 분야를 배우기 위해 반드시 소장해야 할 책이다.
이 핸드북을 통해 다음 도구의 사용법을 학습할 수 있다.
◎ IPython과 Jupyter: 파이썬을 이용하는 데이터 과학자를 위한 컴퓨팅 환경 제공
◎ NumPy: 파이썬의 복잡한 데이터 배열을 효율적으로 저장하고 가공할 수 있는 ndarray(n 차원 배열 객체) 제공
◎ Pandas: 파이썬에서 레이블이 붙거나 칼럼 형식의 데이터를 효율적으로 저장하고 가공하기 위한 DataFrame 자료구조 제공
◎ Matplotlib: 파이썬을 이용한 유연한 데이터 시각화 기능 제공
◎ Scikit-Learn: 기존 머신러닝 알고리즘 중 가장 중요한 것을 파이썬으로 효율적이고 깔끔하게 구현한 라이브러리
파이썬 코드를 읽고 작성하는 데 익숙한 과학자나 데이터 분석가라면 이 책이 데이터의 가공, 변환, 정제와 다른 유형의 데이터 시각화, 통계 모델이나 머신러닝 모델 구축을 위한 데이터 활용 면에서 흔히 발생하는 문제를 해결하기에 가장 이상적인 종합 참고서가 될 것이다. 간단히 말해, 이 책은 파이썬으로 데이터 사이언스 분야를 배우기 위해 반드시 소장해야 할 책이다.
이 핸드북을 통해 다음 도구의 사용법을 학습할 수 있다.
◎ IPython과 Jupyter: 파이썬을 이용하는 데이터 과학자를 위한 컴퓨팅 환경 제공
◎ NumPy: 파이썬의 복잡한 데이터 배열을 효율적으로 저장하고 가공할 수 있는 ndarray(n 차원 배열 객체) 제공
◎ Pandas: 파이썬에서 레이블이 붙거나 칼럼 형식의 데이터를 효율적으로 저장하고 가공하기 위한 DataFrame 자료구조 제공
◎ Matplotlib: 파이썬을 이용한 유연한 데이터 시각화 기능 제공
◎ Scikit-Learn: 기존 머신러닝 알고리즘 중 가장 중요한 것을 파이썬으로 효율적이고 깔끔하게 구현한 라이브러리
목차
▣ 1장: Jupyter - 파이썬에 날개를 달자
IPython과 Jupyter 시작하기
__IPython 셸 실행하기
__Jupyter 노트북 실행하기
__IPython의 도움말과 문서
__IPython 셸에서 사용할 수 있는 키보드 단축키
향상된 대화형 기능
__IPython 매직 명령어
__입력/출력 이력
__IPython과 셸 명령어
디버깅 및 프로파일링
__에러와 디버깅
__코드 프로파일링 및 시간 측정
__IPython 추가 참고 자료
▣ 2장: NumPy 소개
파이썬의 데이터 타입 이해하기
__파이썬 정수는 정수 이상이다
__파이썬 리스트는 리스트 이상이다
__파이썬의 고정 타입 배열
__파이썬 리스트에서 배열 만들기
__처음부터 배열 만들기
__NumPy 표준 데이터 타입
NumPy 배열의 기초
__NumPy 배열 속성 지정
__배열 인덱싱: 단일 요소에 접근하기
__배열 슬라이싱: 하위 배열에 접근하기
__배열 재구조화
__배열 연결 및 분할
NumPy 배열 연산: 유니버설 함수
__루프는 느리다
__Ufuncs 소개
__NumPy 유니버설 함수(Ufuncs)
__고급 Ufunc 기능
__Ufuncs: 더 알아보기
집계: 최솟값, 최댓값, 그리고 그사이의 모든 것
__배열의 값의 합 구하기
__최솟값과 최댓값
__예제: 미국 대통령의 평균 신장은 얼마일까?
배열 연산: 브로드캐스팅
__브로드캐스팅 소개
__브로드캐스팅 규칙
__실전 브로드캐스팅
비교, 마스크, 부울 로직
__예제: 비온 날 세기
__ufunc으로서의 비교 연산자
__부울 배열로 작업하기
__마스크로서의 부울 배열
__키워드 and/or vs. 연산자 &/| 사용하기
팬시 인덱싱
__팬시 인덱싱 알아보기
__결합 인덱싱
__예제: 임의의 점 선택하기
__팬시 인덱싱으로 값 변경하기
__예제: 데이터 구간화
배열 정렬
__NumPy의 빠른 정렬: np.sort와 np.argsort
__행이나 열 기준으로 정렬하기
__부분 정렬: 파티션 나누기
__예제: k-최근접 이웃 알고리즘
구조화된 데이터: NumPy의 구조화된 배열
__구조화된 배열 만들기
__고급 복합 타입
__레코드 배열: 트위스트를 가진 구조화된 배열
__Pandas로 넘어가며
▣ 3장: Pandas로 데이터 가공하기
Pandas 객체 소개
__Pandas Series 객체
__Pandas DataFrame 객체
__Pandas Index 객체
데이터 인덱싱과 선택
__Series에서 데이터 선택
__DataFrame에서 데이터 선택
Pandas에서 데이터 연산하기
__유니버설 함수: 인덱스 보존
__유니버설 함수: 인덱스 정렬
__유니버설 함수: DataFrame과 Series 간의 연산
누락된 데이터 처리하기
__누락된 데이터 처리 방식의 트레이드오프
__Pandas에서 누락된 데이터
__Pandas의 널러블(Nullable) 데이터 타입
__널 값 연산하기
계층적 인덱싱
__다중 인덱스된 Series
__MultiIndex 생성 메서드
__MultiIndex 인덱싱 및 슬라이싱
__다중 인덱스 재정렬하기
데이터세트 결합: Concat과 Append
__복습: NumPy 배열 연결
__pd.concat을 이용한 간단한 연결
데이터세트 결합하기: 병합과 조인
__관계 대수
__조인 작업의 분류
__병합 키 지정
__조인을 위한 집합 연산 지정하기
__열 이름이 겹치는 경우: suffixes 키워드
__예제: 미국 주 데이터
집계와 분류
__행성 데이터
__Pandas의 간단한 집계 연산
__GroupBy: 분할, 적용, 결합
피벗 테이블
__피벗 테이블 시작
__피벗 테이블 등장 배경
__피벗 테이블 구문
__예제: 출생률 데이터
벡터화된 문자열 연산
__Pandas 문자열 연산 소개
__Pandas 문자열 메서드 목록
__예제: 조리법 데이터베이스
시계열 다루기
__파이썬에서의 날짜와 시간
__Pandas 시계열: 시간으로 인덱싱하기
__Pandas 시계열 데이터 구조
__정규 시퀀스: pd.date_range()
__주기와 오프셋
__리샘플링, 시프팅, 윈도잉
__예제: 시애틀 자전거 수 시각화
고성능 Pandas: eval()과 query()
__query()와 eval()의 등장 배경: 복합 표현식
__효율적인 연산을 위한 pandas.eval()
__열 단위의 연산을 위한 DataFrame.eval()
__DataFrame.query() 메서드
__성능: 이 함수를 사용해야 하는 경우
__추가 자료
▣ 04장: Matplotlib을 활용한 시각화
일반적인 Matplotlib 사용법
__matplotlib 임포트하기
__스타일 설정하기
__show()를 사용할 것인가, 말 것인가 - 플롯 표현 방법
간단한 라인 플롯
__플롯 수정하기: 선 색상과 스타일
__플롯 조정하기: 축 경계
__플롯에 레이블 붙이기
__Matplotlib 주의사항
간단한 산점도
__plt.plot을 사용한 산점도
__plt.scatter를 활용한 산점도
__plot과 scatter의 차이: 효율성 측면에서 유의할 점
__오차 시각화하기
밀도 플롯과 등고선 플롯
__3차원 함수 시각화하기
__히스토그램, 구간화, 밀도
__2차원 히스토그램과 구간화
플롯 범례 맞춤 변경하기
__범례에 사용할 요소 선택하기
__점 크기에 대한 범례
__다중 범례
색상 막대 맞춤 변경하기
__색상 막대 맞춤 변경하기
__예제: 손으로 쓴 숫자
다중 서브플롯
__plt.axes: 직접 만든 서브플롯
__plt.subplot: 간단한 서브플롯의 그리드
__plt.subplots: 한 번에 전체 그리드 만들기
__plt.GridSpec: 복잡한 배치
텍스트와 주석
__예제: 미국 출생률에 휴일이 미치는 영향
__변환 및 텍스트 위치
__화살표와 주석
눈금 맞춤 변경하기
__주 눈금과 보조 눈금
__눈금 또는 레이블 숨기기
__눈금 개수 줄이기와 늘리기
__팬시 눈금 포맷
__위치 지시자와 서식 지시자 요약
Matplotlib 맞춤변경하기: 설정과 스타일시트
__직접 플롯 변경하기
__기본값 변경하기: rcParams
__스타일시트
Matplotlib에서 3차원 플로팅하기
__3차원 점과 선
__3차원 등고선 플롯
__와이어프레임과 표면도
__표면 삼각측량법
Seaborn을 활용한 시각화
__Seaborn 플롯 탐색하기
__예제: 마라톤 완주 시간 탐색
__추가 자료
__기타 파이썬 그래픽 라이브러리
▣ 5장: 머신러닝
머신러닝이란 무엇인가?
__머신러닝의 범주
__머신러닝 응용의 정성적 사례
__정리
Scikit-Learn 소개
__Scikit-Learn에서의 데이터 표현 방식
__Estimator API
__응용: 손으로 쓴 숫자 탐색
__정리
초모수와 모델 검증
__모델 검증에 대한 고려사항
__최적의 모델 선택하기
__학습 곡선
__실제 검증: 그리드 검색
__정리
특징 공학
__범주 특징
__텍스트 특징
__이미지 특징
__유도 특징
__누락 데이터의 대체
__특징 파이프라인
심화 학습: 나이브 베이즈 분류
__베이즈 분류
__가우스 나이브 베이즈
__다항분포 나이브 베이즈
__언제 나이브 베이즈 모델을 사용할 것인가
심화 학습: 선형 회귀
__단순 선형 회귀
__기저 함수 회귀
__정규화
__예제: 자전거 통행량 예측
심화 학습: 서포트 벡터 머신
__서포트 벡터 머신의 동기
__서포트 벡터 머신: 마진 최대화
__예제: 안면 인식
__정리
심화 학습: 의사결정 트리와 랜덤 포레스트
__랜덤 포레스트 등장 배경: 의사결정 트리
__추정 모델의 앙상블: 랜덤 포레스트
__랜덤 포레스트 회귀
__예제: 랜덤 포레스트를 사용한 숫자 분류
__정리
심화 학습: 주성분 분석
__주성분 분석 소개
__PCA 응용: 노이즈 필터링
__예제: 고유얼굴
__정리
심화 학습: 다양체 학습
__다양체 학습: ‘HELLO’
__다차원 척도법(MDS, Multidimensional Sacling)
__비선형 다양체 학습: 국소 선형 임베딩
__다양체 방식에 대한 몇 가지 생각
__예제: 얼굴 데이터에 아이소맵 적용
__예제: 숫자 데이터의 구조 시각화
심화 학습: k-평균 군집화
__k-평균 소개
__기댓값-최대화
__예제
심화 학습: 가우스 혼합 모델
__GMM 등장 배경: k-평균의 약점
__E-M 단계 일반화하기: 가우스 혼합 모델
__공분산 유형 선택하기
__밀도 추정에 GMM 사용하기
__예제: 새로운 데이터를 생성하는 GMM
심화 학습: 커널 밀도 추정
__KDE 등장 배경: 히스토그램
__커널 밀도 추정의 실제 적용
__교차 검증을 통한 대역폭 선택
__예제: 나이브하지 않은 베이즈(Not-So-Naïve Bayes)
응용: 안면 인식 파이프라인
__HOG 특징
__실제 HOG: 간단한 안면 인식기
__주의사항 및 개선사항
__머신러닝 관련 추가 자료