Data Analysis/깨R지식
[R] 5-fold CV 코드 직접 생성 (숫자빼고 반복되는 코드일 경우, 깨알 팁)
[지현]
2020. 1. 5. 10:06
일반적으로 사용하는 caret에서 성능평가가 아닌,
즉, caret에 포함되지 않은 모델을 만들때 유용하다.
train/test set을 각각 5세트로 만들어서 confusion matrix를 직접만들어서 성능을 평가해야하는 경우 사용할 수 있다.
나의 경우 베이지안 네트워크 모델을 사용하기 위해 사용했다.
|
1
2
3
4
5
6
7
8
9
10
11
12
|
library(forecast)
flds=createFolds(data$target,k=5,list=T,returnTrain = F)
c=c(); f=c()
for(i in 1: 5){
want_assign = data[-flds[[i]],]
name = paste0('train', i, sep='', collapse = ',')
c = c(c, assign(b, a))
want_assign = data[flds[[i]],]
name = paste0('test', i, sep='', collapse = ',')
f = c(f, assign(e, d))}
|
cs |
위 코드에서 assign함수를 사용해줬다.
train1 = data[-flds[[1]],]
test1 = data[flds[[1]],]
train2 = data[-flds[[2]],]
test2 = data[flds[[2]],]
.
.
.
train5 = data[-flds[[5]],]
test5 = data[flds[[5]],]
이렇게 여러번 같은 코드 나열하기 싫어서 한번에 돌리려고 사용한 것이다.
(* 숫자빼고 비슷하게 동작되는 dataset을 계속 만들때 지치지않고 만드려면 아래코드가 유용하다:)
더보기
위의 코드를 이해한 후, 아래코드를 이해하면 조금 더 편리함이 커진다.
get함수를 이해해보자.
|