Feature Selection with Caret (Auto)
자동 Feature Selection을 통해서 해당 Featrue가 Accurate Model을 생성하는데 필요한지 안한지를 결정할 수 있다.
기법들은 많이 있지만 인기있는 기술중 하나가Recursive Feature Elimination (RFE)
방법 이다. 그리고 이 방법을 Caret R package
에서 지원 한다.
Caret
에서는 rfeInter
와 rfe
가 존재 한다.
하지만 재귀적 방법을 사용하는 rfe
에 초점을 맞춘다.
rfe
함수의 필요 인자는 아래와 같다.
x
, a matrix or data frame의 예측에 사용되는 feature들y
, 결과 백터값sizes
, subset의 크기를 결정하는 integer vector이다. 지정하지 않으면ncol(x)
로 설정 된다.rfeControl
, option을 포함 한다.
rfeControl
설정시 중요한것이 모델링에 사용할 function
을 정하는 것이다.
control <- rfeControl(functions=nbFuncs, method="cv", number=10)
위경우 cross validation 방식으로 naive Baeys로 모델링 한다는 것이다.
그리고 cv
는 10개로 쪼개서 수행 한다. 기본값이 10이다. 따로 설정안해도 number=10
의 효과를 얻는다.
repeatedcv
를 수행하기 위해서는 아래와 같다.
ctrl <- rfeControl(functions = lmFuncs,
method = "repeatedcv",
repeats = 5,
verbose = FALSE)
그 외에는 아래와 같다.
- linear regression
lmFuncs
- random forests
rfFuncs
- naive Bayes
nbFuncs
- bagged tress treebagFuncs
참고문헌
'AI > Machine Learning with R' 카테고리의 다른 글
클래스 불균형을 다루는 방법 (Class Imbalance) (1) | 2017.07.20 |
---|---|
Caret의 이해 (0) | 2016.03.06 |
Cross Validation (0) | 2016.02.26 |
Ensemble method: Bagging (bootstrap aggregating) (0) | 2015.11.19 |
Bootstrapping (0) | 2015.11.19 |