책소개
1. R 프로그래밍에 능숙해야 더 빠르고 효율적인 분석이 가능하다
데이터 분석 또는 모델링에서 데이터를 조작하고 처리하는 과정에 많은 시간과 노력이 소요되며, 간단한 프로그래밍 문제에 부딪쳐 진도가 나가지 않는 경우도 있다. 이 책은 효율적으로 데이터를 분석할 수 있는 능력을 키울 수 있게 프로그래밍에 중점을 두고 R을 능숙하게 사용하는 방법을 설명한다.
2. R 기본부터 실제 데이터 분석까지 실습으로 익힌다
쉽게 로딩해서 실행해 볼 수 있는 R의 기본 데이터 셋부터 실제 업무에 적용하기 위한 통계 분석, 데이터 마이닝, 기계 학습에 대한 분석 모델 및 알고리즘과 같은 더 실제적이고 실용적인 예까지 실습을 통해 학습할 수 있다.
3. 저자의 실무와 학습 경험을 통해서 데이터 분석 과정의 다양한 문제를 해결한다
저자가 R을 배우고 활용하면서 답답했던 문제를 해결하기 위해 노력했던 결과가 담겨 있다. 문법도 이해했고 책도 읽었는데 막상 데이터를 갖다놓으면 막막하고, 데이터를 분석하려고 할 때마다 방법을 몰라 구글 검색으로 찾아서 해결했던 바로 그 문제들에 대한 답들이 정리되어 있다.
목차
1장 R 프로그래밍을 위한 환경 준비하기
01 왜 R인가
02 R 설치하기
Windows에서 설치하기
리눅스에서 설치하기
맥 OS X에서 설치하기
03 R 시작하기
04 도움말 보기
05 IDE 살펴보기
06 배치 실행
07 패키지 사용하기
참고자료
2장 데이터 타입
01 변수
변수 이름 규칙
변숫값 할당
02 함수 호출 시 인자 지정
03 스칼라
숫자
NA
NULL
문자열
진릿값
팩터
04 벡터
벡터 생성
벡터 내 데이터 접근
벡터 연산
연속된 숫자로 구성된 벡터
반복된 값을 저장한 벡터
05 리스트
리스트의 생성
리스트 내 데이터 접근
06 행렬
행렬의 생성
행렬 내 데이터 접근
행렬의 연산
07 배열
배열 생성
배열 데이터 접근
08 데이터 프레임
데이터 프레임 생성
데이터 프레임 접근
유틸리티 함수
09 타입 판별
10 타입 변환
참고자료
3장 R 프로그래밍
01 R의 특징
02 흐름 제어(조건문과 반복문)
if
반복문
03 연산
수치 연산
벡터 연산
NA의 처리
04 함수의 정의
기본 정의
가변 길이 인자
중첩 함수
05 스코프
06 값에 의한 전달
07 객체의 불변성
08 모듈 패턴
큐
큐 모듈 작성하기
참고자료
4장 데이터 조작 I : 벡터 기반 처리와 외부 데이터 처리
01 아이리스 데이터
02 파일 입출력
CSV 파일 입출력
객체의 파일 입출력
03 데이터 프레임의 행과 컬럼 합치기
04 apply 계열 함수
apply( )
lapply( )
sapply( )
tapply( )
mapply( )
05 데이터를 그룹으로 묶은 후 함수 호출하기
summaryBy( )
orderBy( )
sampleBy( )
06 데이터 분리 및 병합
split( )
subset( )
데이터 병합
07 데이터 정렬
sort( )
order( )
08 데이터 프레임 컬럼 접근
with( )
within( )
attach( ), detach( )
09 조건에 맞는 데이터의 색인 찾기
10 그룹별 연산
11 편리한 처리를 위한 데이터의 재표현
12 MySQL 연동
MySQL 및 RMySQL 환경 설정
RMySQL을 사용한 MySQL 입출력
참고자료
5장 데이터 조작 II: 데이터 처리 및 가공
01 데이터 처리 및 가공 패키지
02 SQL을 사용한 데이터 처리
03 분할, 적용, 재조합을 통한 데이터 분석
adply( )
ddply( )
그룹마다 연산을 쉽게 수행하기
mdply( )
04 데이터 구조의 변형과 요약
melt( )
cast( )
데이터 요약
05 데이터 테이블: 더 빠르고 편리한 데이터 프레임
데이터 테이블 생성
데이터 접근과 그룹 연산
key를 사용한 빠른 데이터 접근
key를 사용한 데이터 테이블 병합
참조를 사용한 데이터 수정
리스트를 데이터 프레임으로 변환하기
06 더 나은 반복문
07 병렬 처리
프로세스의 수 설정
plyr의 병렬화
foreach의 병렬화
08 유닛 테스팅과 디버깅
testthat
test_that을 사용한 테스트 그룹화
테스트 파일 구조
디버깅
09 코드 수행 시간 측정
명령문 실행 시간의 측정
코드 프로파일링
참고자료
6장 그래프
01 산점도
02 그래프 옵션
축 이름(xlab, ylab)
그래프 제목(main)
점의 종류(pch)
점의 크기(cex)
색상(col)
좌표축 값의 범위(xlim, ylim)
그래프 유형(type)
선 유형(lty)
그래프의 배열
지터
03 기본 그래프
점(points)
꺾은선(lines)
직선(abline)
곡선(curve)
다각형(polygon)
04 문자열(text)
05 그래프에 그려진 데이터의 식별(identify)
06 범례(legend)
07 행렬에 저장된 데이터 그리기(matplot, matlines, matpoints)
08 응용 그래프
상자 그림(boxplot)
히스토그램(hist)
밀도 그림(density)
막대 그래프(barplot)
파이 그래프(pie)
모자이크 플롯(mosaicplot)
산점도 행렬(pairs)
투시도(persp), 등고선 그래프(contour)
참고자료
7장 통계 분석
01 난수 생성 및 분포 함수
02 기초 통계량
표본 평균, 표본 분산, 표본 표준 편차
다섯 수치 요약
최빈값
03 표본 추출
단순 임의 추출
가중치를 고려한 표본 추출
층화 임의 추출
계통 추출
04 분할표
분할표 작성
합, 비율의 계산
독립성 검정
피셔의 정확 검정
맥니마 검정
05 적합도 검정
카이 제곱 검정
샤피로 윌크 검정
콜모고로프 스미르노프 검정
Q-Q도
06 상관 분석
피어슨 상관 계수
스피어만 상관 계수
켄달의 순위 상관 계수
상관 계수 검정
07 추정 및 검정
일표본 평균
독립 이표본 평균
짝지은 이표본 평균
이표본 분산
일표본 비율
이표본 비율
참고자료
8장 선형 회귀
01 선형 회귀의 기본 가정
02 단순 선형 회귀
모델 생성
선형 회귀 결과 추출
예측과 신뢰 구간
모델 평가
분산 분석 및 모델 간의 비교
모델 진단 그래프
회귀 직선의 시각화
03 중선형 회귀
모델 생성 및 평가
범주형 변수
중선형 회귀 모델의 시각화
표현식을 위한 I( )의 사용
변수의 변환
상호 작용
04 이상치
05 변수 선택
변수 선택 방법
모든 경우에 대한 비교
참고자료
9장 분류 알고리즘 I: 데이터 탐색, 전처리, 모델 평가 방법 설정
01 데이터 탐색
기술 통계
데이터 시각화
02 전처리
데이터 변환
결측치의 처리
변수 선택
03 모델 평가 방법
평가 메트릭
ROC 커브
교차 검증
참고자료
10장 분류 알고리즘 II: 기계 학습 알고리즘
01 로지스틱 회귀 모델
02 다항 로지스틱 회귀 분석
03 의사 결정 나무
의사 결정 나무 모델
분류와 회귀 나무
조건부 추론 나무
랜덤 포레스트
04 신경망
신경망 모델
신경망 모델 학습
05 서포트 벡터 머신
서포트 벡터 머신 모델
서포트 벡터 머신 학습
06 클래스 불균형
업 샘플링, 다운 샘플링
SMOTE
07 문서 분류
코퍼스와 문서
문서 변환
문서의 행렬 표현
빈번한 단어
단어 간 상관관계
문서 분류
파일로부터 코퍼스 생성
메타 데이터
08 Caret 패키지
참고자료
11장 타이타닉 데이터를 사용한 기계 학습 실습
01 타이타닉 데이터 형식
02 데이터 불러오기
데이터 타입 지정
테스트 데이터의 분리
교차 검증 준비
03 데이터 탐색
04 평가 메트릭
05 의사 결정 나무 모델
rpart의 교차 검증
정확도 평가
조건부 추론 나무
06 또 다른 특징의 발견
ticket을 사용한 가족 식별
생존 확률 예측
가족 ID 부여
가족 구성원 생존 확률의 병합
가족 정보를 사용한 ctree( ) 모델링
성능 평가
07 교차 검증의 병렬화
10겹 교차 검증의 3회 반복 수행
foreach( )와 %dopar%를 사용한 병렬화
08 더 나은 알고리즘의 개발