다양한 전처리 방법

R의 caret로 배우는 Machine Learning

Zach Mayer

Data Scientist at DataRobot and co-author of caret

preProcess의 넓은 세계

  • 중앙값 또는 KNN 대치보다 더 많은 것을 할 수 있습니다!
  • 여러 전처리 단계를 연결할 수 있습니다
  • 선형 모델의 일반적 "레시피"(순서 중요)
    • 중앙값 대치 ⇒ 중심화 ⇒ 스케일링 ⇒ glm 적합
  • 자세한 내용은 ?preProcess 참고
R의 caret로 배우는 Machine Learning

예시: mtcars 전처리

# 결측값이 있는 데이터 생성
data(mtcars)
set.seed(42)
mtcars[sample(1:nrow(mtcars), 10), "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[,2:4] # <- 무작위로 결측
# 선형 모델 "레시피" 사용
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute")
)
print(min(model$results$RMSE))
3.612713
R의 caret로 배우는 Machine Learning

예시: mtcars 전처리

# 모델링 전에 PCA
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute", "pca")
)
min(model$results$RMSE)
3.402557
R의 caret로 배우는 Machine Learning

예시: mtcars 전처리

# Spatial sign 변환
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute", "spatialSign")
)
min(model$results$RMSE)
4.284904
R의 caret로 배우는 Machine Learning

전처리 치트시트

  • 중앙값 대치부터 시작합니다
  • 결측이 무작위가 아니면 KNN 대치를 시도합니다
  • 선형 모델의 경우 ...
    • 중심화와 스케일링
    • PCA와 spatial sign 시도
  • 트리 기반 모델은 전처리가 거의 필요 없습니다
R의 caret로 배우는 Machine Learning

연습해 봅시다!

R의 caret로 배우는 Machine Learning

Preparing Video For Download...