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

참고문헌

[1] Recursive Feature Elimination

[2] Feature Slection with the Caret R Package


'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

+ Recent posts