더북(TheBook)

랜덤 포레스트를 사용한 모델링

아이리스 데이터에 랜덤 포레스트 모델을 만들어보자.

> install.packages("randomForest")
> library(randomForest)
> m <- randomForest(Species ~., data=iris)

랜덤 포레스트는 여러 개의 의사 결정 나무로 구현되고, 각 의사 결정 나무는 데이터의 일부만 사용함을 앞에서 설명했다. 랜덤 포레스트 모델을 출력하면 모델 훈련에 사용되지 않은 데이터를 사용한 에러 추정치가 ‘OOBOut of Bag estimate of error rate’ 항목으로 출력된다. 아이리스에 대한 모델에서는 OOB 에러가 4%였으며 versicolor가 virginica로 예측된 경우가 3개, virginica가 versicolor로 예측된 경우가 3개 있었다.

> m
Call:
 randomForest(x = iris[, 1:4], y = iris[, 5])
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 2

        OOB estimate of error rate: 4%
Confusion matrix:
           setosa versicolor virginica class.error
setosa         50          0         0        0.00
versicolor      0         47         3        0.06
virginica       0          3        47        0.06

예측에는 predict( ) 함수를 사용한다.

> head(predict(m, newdata=iris))
     1      2      3      4      5      6
setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.