R을 이용한 데이터 처리 & 분석 실무
효율적인 데이터 처리와 분석을 위한 R 프로그래밍 실습서!
R 프로그래밍에 능숙해야 더 빠르고 효율적인 분석이 가능하다데이터 분석 또는 모델링에서 데이터를 조작하고 처리하는 과정에 많은 시간과 노력이 소요되며, 간단한 프로그래밍 문제에 부딪쳐 진도가 나가지 않는 경우도 있다. 이 책은 효율적으로 데이터를 분석할 수 있는 능력을 키울 수 있게 프로그래밍에 중점을 두고 R을 능숙하게 사용하는 방법을 설명한다.
R 기본부터 실제 데이터 분석까지 실습으로 익힌다쉽게 로딩해서 실행해 볼 수 있는 R의 기본 데이터 셋부터 실제 업무에 적용하기 위한 통계 분석, 데이터 마이닝, 기계 학습에 대한 분석 모델 및 알고리즘과 같은 더 실제적이고 실용적인 예까지 실습을 통해 학습할 수 있다.
저자의 실무와 학습 경험을 통해서 데이터 분석 과정의 다양한 문제를 해결한다저자가 R을 배우고 활용하면서 답답했던 문제를 해결하기 위해 노력했던 결과가 담겨 있다. 문법도 이해했고 책도 읽었는데 막상 데이터를 갖다놓으면 막막하고, 데이터를 분석하려고 할 때마다 방법을 몰라 구글 검색으로 찾아서 해결했던 바로 그 문제들에 대한 답들이 정리되어 있다.
목차
- 1장. R 프로그래밍을 위한 환경 준비하기
- 01 | 왜 R인가
- 02 | R 설치하기
- 윈도우에서 설치하기
- 리눅스에서 설치하기
- 맥 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 | 더 나은 알고리즘의 개발
- 참고자료