데이터 전처리
default packages : base, stats, ...
- is.na(x) : 데이터의 각 행과 열이 결측값인지 보여줌
- na.omit(x) : 결측값이 하나라도 있는 행 제거, 완전 분석법
- scale(x, center, scale) : 기본은 z-score 정규화(표준화), 최대-최소는 center = min(), scale = max() - min()
- IQR(x, na.rm, ...) : 사분위수 범위
- quantile(x, na.rm, ...), fivenum(x, na.rm, ...) : 분위수
- sample(x, size, replace) : 무작위추출 // 예측 문제에서 주로 사용
- row_number(x) : 순위 지정(중복 x) / min_rank(x) : 공동 순위
- xtabs(formula, data, ...) : 이원 교차표 생성
dplyr 패키지
- %>% : 파이프라인
- select(선택할 변수, 제외할 변수) : 특정 열만 추출
- filter(조건) : 조건에 맞는 데이터 추출
- mutate(새로운 변수명 = 값) : 파생변수 생성
- group_by(그룹화할 기준 변수1, 변수2, ...) : 데이터 그룹화
- summarise(새로운 변수명 = 계산식) : 요약 통계치 산출
- arrange(변수) : 오름차순 정렬 / arrange(desc(변수)) : 내림차순 정렬
- inner_join(df1, df2, 컬럼키, ...) : 공통 열 병합
- left_join, right_join, full_join : DB랑 동일
caret 패키지
- createDataPartition(y, p, list) : y는 분할할 라벨, p는 훈련셋 비율, list는 결과를 리스트로 받을지에 대한 여부(FALSE면 행렬 반환)
// 층화추출 : 분류 문제에서 주로 사용. y는 “라벨이 포함된 데이터셋$y” 임 - createFolds(y, k, list, returnTrain) : k-fold CV, returnTrain은 list 사용 시 가능
변수 선택
step(대상모델, direction, ...) : direction = “forward, backward, both”
모형 평가
- summary(모형)$r.squared : 결정계수
- summary(모형)$adj.r.squared : 수정된 결정 계수
- 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는 가중치 감소의 모수
// 라이브러리 상 decay는 0이지만, 디폴트로 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()
대표적인 함수 사용법 예제
- data %>% filter(!is.na(col)) : 해당 col 결측값 삭제
- df[is.na(df$Col), “Col”] <- mean(df$Col, na.rm = TRUE) : 평균값으로 결측값 대체
- result <- cbind(X_test$ID, pred_fit) : 열 합성
- colnames(result) <- c(“ID”, “prob”) : 열 이름 지정
- pred <- predict(model, newdata = X_v, probability = TRUE, type = “prob”) : 예측 확률
//type = “response” 는 예측 값, “prob” 은 예측 확률
//prob을 사용하려면 model 학습시 probability를 TRUE로 반드시 지정해야함! - colSums(is.na(data)) : data에서 각 열의 결측값 개수를 저장
- scale_model <- preProcess(X_train, method = c(“range”)) : 스케일링
- attr(pred_fit, “probabilities”) : 예측 확률 확인
모두 합격하세요!! :D
'Computer Science > etc' 카테고리의 다른 글
[Docker] 서버 가상화 및 도커 기본 사용법 (1) | 2023.01.19 |
---|---|
[정보처리기사] 실기 핵심 내용 요약 (0) | 2022.07.23 |
[빅데이터 분석기사] 실기 요약본 (4) - 빅데이터 결과 해석 (0) | 2022.06.24 |
[빅데이터 분석기사] 실기 요약본 (3) - 빅데이터 모델링 (0) | 2022.06.24 |
[빅데이터 분석기사] 실기 요약본 (2) - 빅데이터 탐색 (0) | 2022.06.24 |
댓글