ADP 실기 수험서(DataEdu) 도서 요약(1/3) - R기본, 전처리

해당 포스트는 데이터 분석 전문가(ADP) 실기 시험을 준비하면서 오픈북 시험을 위해 데이터 에듀(Data Edu) 도서를 요약한 내용을 공유합니다.

adp-test-summary


Lists
ADP 실기 수험서(DataEdu) 도서 요약(1/3)- R기본, 전처리
ADP 실기 수험서(DataEdu) 도서 요약(2/3) - 통계분석, 시각화
ADP 실기 수험서(DataEdu) 도서 요약(3/3) - 정형 데이터마이닝, 실기 모의고사


INTRO

데이터 분석 전문가(ADP) 실기 시험은 오픈북으로 진행이 됩니다. 개인 특성에 따라 다르겠지만, 저는 혹시 모를 상황에 대비하여 다수의 책을 들고가서 시험을 응시했었고, 검색 시간을 줄이기 위해 도서별 요약 정보를 출력해 가지고 갔었습니다.

아래는 데이터 에듀(Data Edu)에서 출간한 ADP 데이터 분석 전문가 수험서를 요약 및 정리한 내용으로 자주 사용하지 않거나, 출제 가능성이 있을 것 같은 부분들을 별도로 정리하였습니다.

ADP 실기 응시자 분들에게 도움이 되었으면 좋겠습니다.

1. 기본

p28 벡터 집합 연산

  • identical(x, y) : x와 y가 동일하면 TRUE
  • union(x,y) : x와 y의 합집합
  • intersect(x,y) : x와 y의 교집합
  • setdiff(x,y) : x와 y의 차집합
  • setequal(x,y) : x와 y가 같은 집합인지 판단

p40 문자열/날짜 데이터 다루기

  • 문자열 : nchar(), paste(), substr(), strsplit(), sub(), gsub(), grep() -> readr 패키지
  • 날짜 : Sys.Date(), as.Data(), format() -> lubridate 패키지

2. 데이터 전처리

p53 데이터 변환

  • transform(df, var1=data1, var2=data2, ...) : 새로운 변수 추가 -> dplyr 패키지
  • within(data, expression) : 재범주화 활용 가능

p55 주성분 분석

  • prcomp(data, center = T, scale=F, ...) : 자료 행렬을 특이값 분해(SVD)하는 방법 사용
  • princomp(data, cor=F, scores=T, ...) : 공분산행렬의 고유벡터를 구하는 방법 사용
  • pairs(data) : 산점도 출력 (변수간 상관관계 파악)

p62 요인 분석

  • factanal(data, factors=n, rotation="varimax", scores="regression", ...) : 요인추출법으로 공통요인분석

p67 표준화와 정규화

  • 표준화(standardization) : 평균에서 얼마나 떨어져 있는가?

  • Z-Score 표준화 : 각 요소 값에서 평균을 뺀 후 표준편차로 나누어줌 -> 평균 0, 표준편차 1 을 갖게 됨

    • ex) scale(데이터, center=TRUE, scale=TRUE)
    • center=T, scale=T : 데이터를 해당 벡터의 표준편차로 나눔
    • center=F, scale=T : 데이터를 해당 벡터의 제곱평균제곱근(RMS, Root Mean Square)로 나눔
    • scale=F : 데이터를 어떤 값으로도 나누지 않음
  • 정규화 (Normalization) : 데이터의 범위를 0과 1사이로 변환하여 데이터의 분포를 조정하는 방법

  • min-max 정규화 : (x - min)/(max - min) 의 공식을 이용함

    • ex) scale(데이터, center=Min, scale=(Max-Min))

p70 데이터 결합

  • 행 결합 : rbind() = dplyr::bind_rows()
  • 열 결합 : cbind() = dplyr::bind_cols()
  • 병합 : merge() -> sql의 join과 유사

p75 데이터 요약

  • aggregate() : 특정 column 기준 그룹 집계함수 적용 -> dplyr::group_by(), dplyr::summarise()
  • subset() : 특정 조건을 만족하는 값들만 추출 -> dplyr::filter(), dplyr::select()

p79 apply 계열 함수

  • apply() : 데이터의 행 또는 열 방향으로 주어진 함수를 적용한 뒤 결과 반환함
    • ex) apply(x, margin, fun) -> margin=1 행방향, =2 열방향
  • lapply() : apply 적용 후 결과를 list로 반환
    • ex) lapply(x, fun, ...)
  • sapply() : apply 적용 후 결과를 벡터 혹은 행렬로 반환
    • ex) sapply(x, fun, simplify=T, ...) -> simplify=F 이면 list로 반환됨

p94 dplyr

  • select() : 지정한 열 추출
  • filter() : 조건에 맞는 행 추출
  • mutate() : 변수 추가
  • group_by() : 데이터 그룹화
  • summarise() : 요약 통계량 계산
  • arrange() : 데이터 정렬
  • {left, right, inner, ful}_join() : 데이터 병합
  • bind_{rows, cols}() : 행과 열 방향으로 데이터 결합

p104 reshape2

  • melt() : id(식별작), variable(측정변수), value(측정값) 세 칼럼으로만 이루어진 데이터로 변환
    • ex) melt_tmp <- melt(data, id.vars=c("col1", "col2"), na.rm=F)
  • dcast() : melt 함수로 녹여진 형태의 데이터를 다시 여러 칼럼을 가진 형태로 변환
    • ex) dcast(melt_tmp, col1 + col2 ~ ...)

p116 결측치 인식

  • is.na() : 데이터의 각 행에 대해 변수별로 na값 존재 여부 반환
    • ex) colSums(is.na(data)) # column별 na 개수 확인
  • complete.cases() : 여러 변수들 중 na값이 하나라도 존재하는 행은 FALSE 반환
    • ex) data[!complete.cases(data),] # na행 제거

p119 결측치 처리 : DMwR 패키지

  • centralImputation() : na를 중앙값 및 최빈값으로 대치
    • ex) centralImputation(data)
  • centralValue() : 숫자 데이터는 중앙값으로 대치, 팩터 데이터는 최빈값으로 대치
    • ex) apply(data, 2, function(x) ifelse(is.na(x), DMwR::centralValue(x), x))
  • knnImputation() : k 최근접 이웃 알고리즘 이용하여 na값 대치
    • ex) knnImputation(data, k)

p122 이상치 인식

  • boxplot 함수를 이용해 IQR 및 outlier 확인
    • ex) ex_data <- boxplot(data$col_name); ex_data$stat; ex_data$out; fivenum(data$col_name)[c(2,4)];

(추가) 이상치 인식 및 처리

  • dplyr 패키지 이용하여 확인 가능
    • ex) airquality %>% filter(Ozone < (fivenum(Ozone)[2]-IQR*1.5) | Ozone > (fivenum(Ozone)[4]+IQR*1.5))
  • factor 형 : 이상값 NA 처리
    • ex) table(outlier$sex); outlier$sex <- ifelse(outlier$sex == 3, NA, outlier$sex)
  • numeric 형 : boxplot으로 극단치 기준 찾기
    • ex) boxplot(mpg$hwy)$stats; mpg$hwy <- ifelse(mpg$hwy < boxplot(mpg$cty)$stats[1] | mpg$hwy > boxplot(mpg$cty)$stats[5], NA, mpg$hwy)

p128 날짜데이터 처리

참고 링크

[1] 데이터분석전문가(ADP) 실기시험 기출문제 조사 - 1. 통계 분석
[2] 데이터분석전문가(ADP) 실기시험 기출문제 조사 - 2. 데이터 마이닝 & 기계 학습
[3] 데이터분석전문가(ADP) 실기시험 기출문제 조사 - 3. 텍스트 마이닝
[4] 데이터분석전문가(ADP) 14회 실기 후기
[5] 데이터분석전문가(ADP) 15회 실기 후기
[6] 데이터분석전문가(ADP) 17회 실기 후기
[7] 데이터분석전문가(ADP) 19회 실기시험 후기
[8] 데이터분석전문가(ADP) 20회 실기시험 후기
[9] 데이터분석전문가(ADP) 21회 실기시험 후기
[10] 데이터 분석 전문가(ADP) 실기 도서 비교(후기 포함)