답변함
빅데이터분석기사 2유형 recipe패키지, caret패키지에서 쓰는 data= 넣는 데이터셋 확인부탁드려요.
안녕하세요. 김계철 교수님, 덕분에 많이 배워가고 있습니다.
궁금한 점이 또 있는데요, 바쁘시지만 꼭 알려주십시오.
교재에서 recipe패키지에서는 data=full 합쳐진 전체 데이터셋을 써서 train, test 모두에 있는 변수 값이 center, scale로 수치가 조정되는데
preProcess까지 하는 caret패키지에서 쓰는 data= train을 쓰면 caret에서는 test데이터셋에는
center, scale이 안되어 있을 것이죠?
따라서 predict 할 때 recipe패키지만 쓴 test데이터는 center, scale로 수치가 조정 수치들이고
이와는 달리
preProcess까지 하는 caret패키지를 쓴 후 predict에 쓴 test데이터는 center, scale이 안 된 수치일 텐데
이렇게 하는 것이 맞지요? 즉 사용하는 패키지에 따라 data=에 들어갈 데이터셋이 다른거죠?
혹시 예측값에 뭐가 달라지는지요?
0
댓글
안녕하세요.
이패스비즈 ADsP / 빅데이터분석기사 강사 김계철 입니다.
답변 드립니다.
caret preProcess( ) 함수의 "center", "scale" 옵션은 train data의 평균과 표준편차를 이용해서 스케일링이됩니다(표준화). 이 스케일링을 그대로 test data에 적용하게 됩니다.
아래 코딩을 수행하시면 쉽게 이해가 됩니다.
library(caret)
df = data.frame(matrix(runif(2000),ncol=10))
train = df[1:100,]
test = df[101:200,]
preprocess_values_train = preProcess(train, method = c("center", "scale"))
train.st = predict(preprocess_values_train, train)
head(train.st)
test.st = predict(preprocess_values_train, test)
head(test.st)
caret 패키지의
preProcess()함수는 머신러닝을 할 때 학습(train) 데이터 세트의 규칙을 평가(test) 세트에 적용 가능한 특징을 가지고 있습니다.recipes 패키지는 caret 패키지 적용 기능이 없기 때문에 타켓 변수를 제외하고 train,test 모두 적용합니다. 따라서 빅분기 실기 시험의 특징을 고려한다면 caret 패키지가 코드의 간결성 측면에서 적합한 전처리 방법이라 생각합니다.감사합니다.
댓글을 남기려면 로그인하세요.