더북(TheBook)

모델을 사용한 변수 중요도 평가

caret의 varImp( )는 모델로부터 변수 중요도를 계산한다. 이 함수가 변수의 중요도를 평가하는 자세한 방법은 인자에 주어진 모델에 따라 다르다. 모델별 중요도 계산 방식은 도움말 ?varImp에 설명되어 있으니 참고하기 바란다.

표 9-10 변수 중요도 계산

caret::varImp : 회귀, 분류 모델을 위한 변수 중요도를 계산한다.

caret::varImp(
  object  # 회귀 또는 분류 모델
)

반환 값은 변수 중요도를 저장한 객체다.

rpart 패키지(‘10.3 의사 결정 나무’ 절 참고)를 사용해 mlbench의 유방암 데이터 BreastCancer에 대한 의사 결정 나무를 만든 다음, 그로부터 변수의 중요성을 계산하는 예를 보자. varImp는 의사 결정 나무의 노드에서 가지가 나뉠 때의 손실 함수loss function 감소량을 각 변수에 더하는 방법으로 변수 중요도를 평가한다.

> library(mlbench)
> library(rpart)
> library(caret)
> data(BreastCancer)
> m <- rpart(Class ~., data=BreastCancer)
> varImp(m)
                Overall
Bare.nuclei    203.7284
Bl.cromatin    197.9057
Cell.shape     216.3834
Cell.size      222.9401
Id             307.8953
Cl.thickness     0.0000
Marg.adhesion    0.0000
Epith.c.size     0.0000
Normal.nucleoli  0.0000
Mitoses          0.0000

실행 결과 Bare.Nuclei, Bl.cromatin 등의 순으로 변수의 중요도가 높게 평가되었다.

이제 변수 선택을 하는 방법들이 어떻게 사용되는지 감을 잡았으리라 생각한다. 추가적인 부분은 caret의 변수 선택 매뉴얼[10]과 FSelector 패키지의 참조 매뉴얼[11] 등을 참고하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.