Computer Science/etc

[빅데이터 분석기사] 실기 요약본 (5) - 작업형 함수 정리(with. R)

비소_ 2022. 6. 24.

데이터 전처리

default packages : base, stats, ...

  1. is.na(x) : 데이터의 각 행과 열이 결측값인지 보여줌
  2. na.omit(x) : 결측값이 하나라도 있는 행 제거, 완전 분석법
  3. scale(x, center, scale) : 기본은 z-score 정규화(표준화), 최대-최소는 center = min(), scale = max() - min()
  4. IQR(x, na.rm, ...) : 사분위수 범위
  5. quantile(x, na.rm, ...), fivenum(x, na.rm, ...) : 분위수
  6. sample(x, size, replace) : 무작위추출 // 예측 문제에서 주로 사용
  7. row_number(x) : 순위 지정(중복 x) / min_rank(x) : 공동 순위
  8. xtabs(formula, data, ...) : 이원 교차표 생성

dplyr 패키지

  1. %>% : 파이프라인
  2. select(선택할 변수, 제외할 변수) : 특정 열만 추출
  3. filter(조건) : 조건에 맞는 데이터 추출
  4. mutate(새로운 변수명 = 값) : 파생변수 생성
  5. group_by(그룹화할 기준 변수1, 변수2, ...) : 데이터 그룹화
  6. summarise(새로운 변수명 = 계산식) : 요약 통계치 산출
  7. arrange(변수) : 오름차순 정렬 / arrange(desc(변수)) : 내림차순 정렬
  8. inner_join(df1, df2, 컬럼키, ...) : 공통 열 병합
  9. left_join, right_join, full_join : DB랑 동일

caret 패키지

  1. createDataPartition(y, p, list) : y는 분할할 라벨, p는 훈련셋 비율, list는 결과를 리스트로 받을지에 대한 여부(FALSE면 행렬 반환)
    // 층화추출 : 분류 문제에서 주로 사용. y는 “라벨이 포함된 데이터셋$y” 임
  2. createFolds(y, k, list, returnTrain) : k-fold CV, returnTrain은 list 사용 시 가능

변수 선택

step(대상모델, direction, ...) : direction = “forward, backward, both”


모형 평가

  1. summary(모형)$r.squared : 결정계수
  2. summary(모형)$adj.r.squared : 수정된 결정 계수
  3. ModelMetrics::mse, rmse, auc(acutal, predicted, ...)

분석 모형 정형 데이터, 분류 모델

종속변수가 범주형(Factor)이면 caret::confusionMatrix() 확인, 수치형이면 ModelMetrics::rmse() 확인

1. 회귀 분석

: 독립변수, 종속변수 모두 수치형일때

1) lm(종속변수 ~ 독립변수1 + 독립변수2 + ..., data)으로 모델 생성

2) step()으로 변수 최적화

3) vif()로 다중공선성 확인, 10 이상이면 심각 -> 변수 제거

4) 재학습

5) predict() 수행 및 rmse() 확인

 

2. 로지스틱 회귀 분석

: 종속변수가 범주형, 독립변수가 수치형일때

1) glm(formula, family, data, ...) : family는 모델에서 사용할 분포, binomial 주로 사용

2) 이후 회귀 분석과 과정 동일

3) confusionMatrix()로 예측 확인

 

3. 의사결정나무

1) rpart::rpart(formula, data)

2) predict()

 

4. SVM

1) e1071::svm(formula, data)

2) predict()

 

5. KNN

1) class::knn(train, test, 종속변수, k) : k는 훈련데이터 수의 제곱근으로 초기설정

2) 적합한 k 찾은 후 재학습

3) predict()

 

6. ANN

1) class::nnet(formula, data, size, maxit, decay = 5e-04, ...)

// size는 은닉층 개수, maxit 반복할 학습횟수, decay는 가중치 감소의 모수

// 라이브러리 상 decay0이지만, 디폴트로 5e-04 사용

 

7. 나이브 베이즈

1) e1071::naiveBayes(formula, data, subset, laplace, ...)

subset은 훈련 데이터, laplace는 라플라스 추정기 사용 여부 기본값은 0

2) predict()

 

8. 랜덤 포레스트

1) randomForest::randomForest(formula, data, ntree, ...)

ntree 는 일반적으로 500이지만 시험장에서는 300내외로..

2) predict()


대표적인 함수 사용법 예제

  1. data %>% filter(!is.na(col)) : 해당 col 결측값 삭제
  2. df[is.na(df$Col), “Col”] <- mean(df$Col, na.rm = TRUE) : 평균값으로 결측값 대체
  3. result <- cbind(X_test$ID, pred_fit) : 열 합성
  4. colnames(result) <- c(“ID”, “prob”) : 열 이름 지정
  5. pred <- predict(model, newdata = X_v, probability = TRUE, type = “prob”) : 예측 확률
    //type = “response” 는 예측 값, “prob” 은 예측 확률
    //prob을 사용하려면 model 학습시 probability를 TRUE로 반드시 지정해야함!
  6. colSums(is.na(data)) : data에서 각 열의 결측값 개수를 저장
  7. scale_model <- preProcess(X_train, method = c(“range”)) : 스케일링
  8. attr(pred_fit, “probabilities”) : 예측 확률 확인

빅분기_실기_함수정리.hwp
0.10MB
[K-DATA] 빅데이터분석기사 실기시험 응시가이드.pdf
0.49MB

모두 합격하세요!! :D

댓글