"데이터 분석을 위한 줄리아"는 데이터 과학 분야에서 줄리아 언어의 강력한 기능을 탐구하고자 하는 독자들에게 완벽한 가이드입니다. 이 책은 줄리아의 기초부터 시작해 데이터 변환, 시각화, 예측 모델, 파이프라인 구축까지 데이터 분석의 모든 과정을 다룹니다. 특히, 줄리아의 빠른 속도와 효율성을 통해 대량의 데이터를 처리하는 방법을 배울 수 있습니다.
저자인 보구밀 카민스키는 줄리아의 핵심 데이터 패키지인 DataFrames.jl의 리드 개발자로서, 이 책을 통해 줄리아의 데이터 조작 능력을 깊이 있게 설명합니다. 책은 실세계 데이터셋을 활용하여 독자들이 실제 데이터 분석에 필요한 스킬을 익힐 수 있도록 돕습니다. 예를 들어, 체스 퍼즐 데이터나 환율 시계열 데이터 등을 통해 다양한 분석 기법을 실습할 수 있습니다.
또한, 30여 개의 연습 문제와 풀이를 제공하여 독자들이 실습을 통해 학습 내용을 확고히 할 수 있도록 지원합니다. 데이터프레임의 가공법, 시계열 데이터 분석, 결측값 처리 등 실무에서 자주 접하는 문제들을 줄리아로 해결하는 방법을 상세히 설명하고 있습니다. 특히, 파이썬이나 R과 비교하여 설명하는 부분은 데이터 과학 실무자들에게 큰 도움이 될 것입니다.
마지막으로, 이 책은 줄리아를 활용한 웹 서비스 구축 방법까지 다루어, 데이터 분석의 결과를 효과적으로 공유할 수 있는 방법을 제시합니다. 줄리아의 멀티스레딩 능력을 활용하여 복잡한 금융 옵션 가격을 근사치로 계산하고 이를 웹 서비스로 구현하는 과정을 통해 독자들은 고성능 줄리아 코드를 작성하는 방법을 익힐 수 있습니다.
"데이터 분석을 위한 줄리아"는 데이터 과학의 넥스트 레벨을 경험하고자 하는 모든 이들에게 필독서가 될 것입니다. 줄리아의 강력한 기능을 통해 데이터 분석의 모든 과정을 마스터하고 싶다면, 이 책을 통해 그 첫걸음을 내디뎌보세요
목차
옮긴이 머리말 xii
베타리더 후기 xiv
추천 서문 xvi
시작하며 xviii
감사의 글 xviii
이 책에 대하여 xxii
표지에 대하여 xxvii
CHAPTER 1 소개 1
1.1 줄리아란 무엇이며 왜 유용한가 2
1.2 데이터 과학자 관점에서 본 줄리아의 주요 특징 6
__1.2.1 줄리아는 컴파일 언어이기에 빠르다 7
__1.2.2 줄리아는 대화형 워크플로를 완벽하게 지원한다 8
__1.2.3 줄리아 프로그램은 재사용성이 높고 서로 조합하기 쉽다 9
__1.2.4 줄리아는 최첨단 패키지 관리자를 내장한다 10
__1.2.5 줄리아는 기존 코드와 통합하기 쉽다 11
1.3 이 책에서 다루는 도구들의 사용 시나리오 11
1.4 줄리아의 단점 13
1.5 어떤 데이터 분석 기술을 배우는가 15
1.6 데이터 분석에 줄리아를 어떻게 사용하는가 16
요약 18
P A R T I 줄리아 필수 기술
CHAPTER 2 줄리아 시작하기 21
2.1 값 표현하기 22
2.2 변수 정의하기 26
2.3 가장 중요한 제어 흐름 구조 사용하기 28
__2.3.1 불리언 조건에 따른 계산 29 / 2.3.2 루프 36 / 2.3.3 복합 표현식 38
__2.3.4 윈저화 평균을 계산하는 첫 번째 방법 40
2.4 함수 정의하기 42
__2.4.1 function 키워드를 사용하여 함수 정의하기 42
__2.4.2 함수의 위치 인수와 키워드 인수 43 / 2.4.3 함수에 인수를 전달하는 규칙 45
__2.4.4 함수 정의를 위한 단축 구문 46 / 2.4.5 익명 함수 47
__2.4.6 do 블록 48 / 2.4.7 줄리아의 함수 명명 규칙 49
__2.4.8 윈저화 평균을 계산하는 함수를 간단하게 정의하기 50
2.5 변수 범위 규칙 이해하기 51
요약 56
CHAPTER 3 프로젝트 확장을 위한 줄리아의 지원 57
3.1 타입 시스템 이해하기 58
__3.1.1 줄리아에서 함수는 여러 메서드를 가질 수 있다 58
__3.1.2 줄리아의 타입은 계층구조로 정렬된다 59 / 3.1.3 타입의 모든 슈퍼타입 찾기 60
__3.1.4 타입의 모든 서브타입 찾기 62 / 3.1.5 타입들의 유니언 63
__3.1.6 메서드 시그니처에 넣을 타입 제한 결정하기 64
3.2 줄리아에서 다중 디스패치 사용하기 65
__3.2.1 함수의 메서드 정의 규칙 65 / 3.2.2 메서드 모호성 문제 66
__3.2.3 윈저화 평균 구현 개선하기 68
3.3 패키지 및 모듈로 작업하기 70
__3.3.1 줄리아에서 모듈이란 무엇인가 70
__3.3.2 줄리아에서 패키지는 어떻게 사용되는가 72
__3.3.3 StatsBase.jl을 사용하여 윈저화 평균 계산하기 75
3.4 매크로 사용하기 77
요약 82
CHAPTER 4 줄리아에서 컬렉션 작업하기 83
4.1 배열로 작업하기 83
__4.1.1 데이터를 행렬로 가져오기 85
__4.1.2 행렬에 저장된 데이터의 기초통계량 계산하기 90
__4.1.3 배열 인덱싱하기 92 / 4.1.4 복사 vs. 뷰 생성의 성능 고려 사항 96
__4.1.5 변수 간의 상관관계 계산하기 97 / 4.1.6 선형회귀 피팅하기 98
__4.1.7 앤스컴 콰르텟 데이터 시각화하기 102
4.2 딕셔너리로 키-값 쌍 매핑하기 104
__4.2.1 시커먼 주사위 퍼즐 104 / 4.2.2 딕셔너리 생성하기 105
__4.2.3 시커먼 주사위 퍼즐 풀기 107
4.3 네임드튜플을 사용하여 데이터 구조화하기 110
__4.3.1 네임드튜플 정의하고 요소 접근하기 110
__4.3.2 네임드튜플에 저장된 앤스컴 콰르텟 데이터 분석하기 112
__4.3.3 줄리아의 복합 타입과 값의 가변성 이해하기 114
요약 117
CHAPTER 5 컬렉션 작업에 대한 고급 주제 119
5.1 브로드캐스팅을 사용하여 코드 벡터화하기 120
__5.1.1 줄리아에서 브로드캐스팅의 구문과 의미 이해하기 120
__5.1.2 브로드캐스팅에서 길이가 1인 차원 확장하기 123
__5.1.3 컬렉션이 브로드캐스트되지 않도록 보호하기 127
__5.1.4 브로드캐스팅을 사용하여 앤스컴 콰르텟 데이터 분석하기 130
5.2 파라메트릭 타입으로 메서드 정의하기 133
__5.2.1 줄리아의 컬렉션 타입 대부분은 파라메트릭이다 134
__5.2.2 파라메트릭 타입의 서브타이핑 규칙 136
__5.2.3 서브타이핑 규칙을 사용하여 공분산 함수 정의하기 138
5.3 파이썬과 통합하기 140
__5.3.1 t-SNE를 사용하여 차원 축소를 위한 데이터 준비하기 140
__5.3.2 줄리아에서 파이썬 호출하기 142 / 5.3.3 t-SNE 알고리즘의 결과 시각화하기 144
요약 145
CHAPTER 6 문자열로 작업하기 147
6.1 데이터 가져오고 검사하기 148
__6.1.1 웹에서 파일 다운로드하기 149 / 6.1.2 일반적인 문자열 구성 기법 사용하기 150
__6.1.3 파일의 내용 읽기 152
6.2 문자열 분할하기 153
6.3 정규 표현식을 사용하여 문자열 작업하기 155
__6.3.1 정규 표현식으로 작업하기 155 / 6.3.2 movies.dat 파일의 한 줄 파서 작성하기 157
6.4 인덱싱을 사용하여 문자열에서 부분집합 추출하기 158
__6.4.1 줄리아에서 문자열의 UTF-8 인코딩 158
__6.4.2 문자 인덱싱 vs. 바이트 인덱싱 159 / 6.4.3 ASCII 문자열 161
__6.4.3 Char 타입 162
6.5 movies.dat에서 장르 빈도 분석하기 162
__6.5.1 일반적인 영화 장르 찾기 162 / 6.5.3 수년간의 장르 인기도 변화 이해하기 165
6.6 심벌 167
__6.6.1 심벌 만들기 168 / 6.6.2 심벌 사용하기 169
6.7 고정 너비 문자열 타입을 사용하여 성능 개선하기 171
__6.7.1 사용 가능한 고정 너비 문자열 172 / 6.7.2 고정 너비 문자열의 성능 173
6.8 PooledArrays.jl을 사용하여 문자열 벡터 압축하기 175
__6.8.1 꽃 이름이 포함된 파일 만들기 176 / 6.8.2 데이터를 벡터로 읽고 압축하기 177
__6.8.3 PooledArray 내부 설계 이해하기 178
6.9 문자열 컬렉션에 적합한 저장소 선택하기 181
요약 182
CHAPTER 7 시계열 데이터 및 결측값 처리하기 185
7.1 NBP 웹 API 이해하기 186
__7.1.1 웹브라우저를 통해 데이터 가져오기 187
__7.1.2 줄리아를 사용하여 데이터 가져오기 188
__7.1.3 NBP 웹 API 쿼리 실패 시 처리하기 192
7.2 줄리아에서 결측값으로 작업하기 195
__7.2.1 결측값 정의하기 196 / 7.2.2 결측값으로 작업하기 197
7.3 NBP 웹 API에서 시계열 데이터 가져오기 204
__7.3.1 날짜로 작업하기 204
__7.3.2 다양한 날짜에 대해 NBP 웹 API에서 데이터 가져오기 207
7.4 NBP 웹 API에서 가져온 데이터 분석하기 209
__7.4.1 요약통계량 계산하기 210 / 7.4.2 결측값이 가장 많은 요일 찾기 210
__7.4.3 PLN/USD 환율 플로팅하기 212
요약 217
P A R T II 데이터 분석을 위한 도구들
CHAPTER 8 데이터프레임 첫걸음 221
8.1 데이터 가져오기, 압축 풀기, 검사하기 223
__8.1.1 웹에서 파일 다운로드하기 224 / 8.1.2 bzip2 아카이브로 작업하기 224
__8.1.3 CSV 파일 검사하기 226
8.2 데이터프레임에 데이터 로드하기 227
__8.2.1 CSV 파일을 데이터프레임으로 읽기 227 / 8.2.2 데이터프레임의 내용 검사하기 229
__8.2.3 데이터프레임을 CSV 파일로 저장하기 233
8.3 데이터프레임에서 열 가져오기 234
__8.3.1 데이터프레임의 저장 모델 이해하기 234
__8.3.2 데이터프레임 열을 프로퍼티로 처리하기 235
__8.3.3 데이터프레임 인덱싱을 사용하여 열 가져오기 239
__8.3.4 데이터프레임 열에 저장된 데이터 시각화하기 242
8.4 다양한 형식을 사용하여 데이터프레임 읽기 및 쓰기 244
__8.4.1 Apache Arrow 244 / 8.4.2 SQLite 246
요약 249
CHAPTER 9 데이터프레임에서 데이터 가져오기 251
9.1 고급 데이터프레임 인덱싱 252
__9.1.1 축소된 퍼즐 데이터프레임 만들기 254 / 9.1.2 허용되는 열 선택자에 대한 개요 257
__9.1.3 허용되는 행 선택자에 대한 개요 264 / 9.1.4 데이터프레임 객체의 뷰 만들기 268
9.2 퍼즐 난이도와 인기도 사이의 관계 분석하기 270
__9.2.1 난이도를 기준으로 퍼즐 인기도의 평균 계산하기 270
__9.2.2 LOESS 모델 피팅하기 274
요약 278
CHAPTER 10 데이터프레임 객체 만들기 280
10.1 데이터프레임을 만드는 가장 중요한 방법들 살펴보기 281
__10.1.1 행렬에서 데이터프레임 만들기 282
__10.1.2 벡터에서 데이터프레임 만들기 285
__10.1.3 Tables.jl 인터페이스를 사용하여 데이터프레임 만들기 294
__10.1.4 데이터프레임에 저장된 데이터의 상관관계 행렬 플로팅하기 297
10.2 데이터프레임 증분 생성 299
__10.2.1 데이터프레임 수직 연결하기 300 / 10.2.2 데이터프레임에 테이블 추가하기 305
__10.2.3 기존 데이터프레임에 새 행 추가하기 308
__10.2.4 시뮬레이션 결과를 데이터프레임에 저장하기 310
요약 317
CHAPTER 11 데이터프레임 변환 및 그룹화하기 320
11.1 데이터프레임을 다른 값 타입으로 변환하기 322
__11.1.1 행렬로의 변환 323 / 11.1.2 네임드튜플 벡터로의 변환 325
__11.1.3 기타 일반적인 변환 333
11.2 데이터프레임 객체 그룹화하기 338
__11.2.1 원본 데이터프레임 준비하기 338 / 11.2.2 데이터프레임 그룹화하기 339
__11.2.3 그룹화된 데이터프레임의 그룹 키 가져오기 341
__11.2.4 단일값으로 그룹화된 데이터프레임 인덱싱하기 342
__11.2.5 인덱싱 방법의 성능 비교하기 344
__11.2.6 여러 값으로 그룹화된 데이터프레임 인덱싱하기 345
__11.2.7 그룹화된 데이터프레임 순회하기 347
요약 349
CHAPTER 12 데이터프레임 변형 및 변환하기 351
12.1 깃허브 개발자 데이터셋 가져오기 및 로드하기 352
__12.1.1 그래프 이해하기 353 / 12.1.2 웹에서 깃허브 개발자 데이터 가져오기 354
__12.1.3 ZIP 파일에서 데이터를 추출하는 함수 구현하기 356
__12.1.4 깃허브 개발자 데이터를 데이터프레임으로 읽기 359
12.2 추가적인 노드 특징 계산하기 365
__12.2.1 SimpleGraph 객체 생성하기 366
__12.2.2 Graphs.jl 패키지를 사용하여 노드의 특징 계산하기 367
__12.2.3 노드의 웹 이웃과 머신러닝 이웃 수 계산하기 369
12.3 분할-적용-결합을 사용하여 개발자 유형 예측하기 375
__12.3.1 웹 및 머신러닝 개발자 특징에 대해 요약통계량 계산하기 375
__12.3.2 웹 및 머신러닝 이웃 수 간의 관계 시각화하기 379
__12.3.3 개발자 유형을 예측하는 로지스틱 회귀모형 피팅하기 385
12.4 데이터프레임 변형 작업 복습하기 386
__12.4.1 저수준 API 작업 수행하기 387
__12.4.2 insertcols! 함수를 사용하여 데이터프레임 변형하기 390
요약 392
CHAPTER 13 데이터프레임 고급 변환 394
13.1 경찰 정차 데이터셋을 가져오고 전처리하기 395
__13.1.1 필요한 패키지 로드하기 396 / 13.1.2 @chain 매크로 소개하기 396
__13.1.3 경찰의 정차 데이터셋 가져오기 398
__13.1.4 열에 연산을 수행하는 함수 비교하기 401
__13.1.5 짧은 형식의 연산 지정 구문 사용하기 405
13.2 violation 열 조사하기 406
__13.2.1 가장 빈번한 위반 사항 찾기 406
__13.2.2 ByRow 래퍼를 사용하여 함수 벡터화하기 409
__13.2.3 데이터프레임 평탄화하기 410
__13.2.4 편의 구문을 사용하여 데이터프레임 행 수 가져오기 411
__13.2.5 데이터프레임 정렬하기 411
__13.2.6 DataFramesMeta.jl의 고급 기능 사용하기 412
13.3 예측을 위한 데이터 준비하기 415
__13.3.1 데이터의 초기 변환 수행하기 415 / 13.3.2 범주형 데이터로 작업하기 417
__13.3.3 데이터프레임 조인하기 420 / 13.3.4 데이터프레임 재구성하기 421
__13.3.5 결측값이 있는 데이터프레임 행 삭제하기 423
13.4 체포 확률 예측 모델 구축하기 425
__13.4.1 데이터를 훈련 및 테스트 데이터셋으로 분할하기 425
__13.4.2 로지스틱 회귀모형 피팅하기 427 / 13.4.3 모델 예측 품질 평가하기 428
13.5 DataFrames.jl에서 제공하는 기능 복습하기 433
요약 435
CHAPTER 14 데이터 분석 결과를 공유하는 웹 서비스 만들기 437
14.1 몬테카를로 시뮬레이션을 이용한 금융 옵션 가격 책정하기 438
__14.1.1 아시아 옵션 정의의 수익률 계산하기 439
__14.1.2 아시아 옵션의 가치 계산하기 440 / 14.1.3 GBM 이해하기 441
__14.1.4 수치 접근 방식을 사용하여 아시아 옵션값 계산하기 443
14.2 옵션 가격 책정 시뮬레이터 구현하기 444
__14.2.1 줄리아로 멀티스레딩 시작하기 445
__14.2.2 단일 주식가격 샘플에 대한 옵션 수익률 계산하기 446
__14.2.3 옵션값 계산하기 449
14.3 아시아 옵션 평가를 제공하는 웹 서비스 만들기 453
__14.3.1 웹 서비스 구축에 대한 일반적인 접근 방식 454
__14.3.2 Genie.jl을 사용하여 웹 서비스 만들기 455 / 14.3.3 웹 서비스 실행하기 458
14.4 아시아 옵션 가격 책정 웹 서비스 사용하기 458
__14.4.1 웹 서비스에 단일 요청 보내기 459
__14.4.2 웹 서비스의 여러 요청에 대한 응답을 데이터프레임으로 수집하기 461
__14.4.3 데이터프레임의 열 중첩 해제하기 463
__14.4.4 아시아 옵션 가격 책정 결과 플로팅하기 466
요약 467
APPENDIX A 줄리아 첫걸음 469
A.1 줄리아 설치 및 설정하기 469
A.2 줄리아에 대한 도움말 얻기 470
A.3 줄리아에서 패키지 관리하기 472
__A.3.1 프로젝트 환경 472 / A.3.2 프로젝트 환경 활성화하기 473
__A.3.3 패키지 설치 시 발생할 수 있는 문제 476 / A.3.4 패키지 관리하기 477
__A.3.5 파이썬과 통합 설정하기 480 / A.3.6 R과의 통합 설정하기 481
A.4 줄리아로 작업하는 표준 방법 482
__A.4.1 터미널 사용하기 482 / __A.4.2 Visual Studio Code 사용하기 483
__A.4.3 Jupyter Notebook 사용하기 483 / __A.4.4 Pluto 노트북 사용하기 483
APPENDIX B 연습 문제 풀이 484
APPENDIX C 데이터 과학을 위한 줄리아 패키지 512
C.1 줄리아의 플로팅 생태계 513
C.2 줄리아에서 컴퓨팅 확장하기 514
C.3 데이터베이스 및 데이터 저장 형식 작업하기 514
C.4 데이터 과학 기법들 사용하기 515
요약 516
찾아보기 518
- 교보문고: https://bitl.bz/w0Pi31
- Yes24: https://bitl.bz/vXCGKy
'데이터 과학 > 데이터 과학을 위한 코딩' 카테고리의 다른 글
김철민, Do it! 공공데이터로 배우는 R 데이터 분석 with 샤이니, 이지스퍼블리싱 (2) | 2025.02.09 |
---|---|
김영우, Do it! 쉽게 배우는 R 텍스트 마이닝, 이지스퍼블리싱 (2) | 2025.02.08 |
김영우, Do it! 쉽게 배우는 파이썬 데이터 분석, 이지스퍼블리싱 (2) | 2025.02.07 |
김영우, Do it! 쉽게 배우는 R 데이터 분석, 이지스퍼블리싱 (2) | 2025.02.06 |
마이클 크롤리, The R Book - 2nd Edition, 에이콘출판 (2) | 2025.01.26 |