R - Random forest 예제





랜덤 포레스트(random forest) 기법은 앙상블 학습 기법을 사용한 모델로서, 앙상블 기법은 2개 이상의 여러개의 모델을 학습한 다음 예측시 여러개의 예측결과를 종합해서 종합해서 좀 더 정확성을 높이는 기법입니다. 일반인들에게 가장 익숙한 사용 예시는 태풍 예측을 들 수가 있겠습니다. 태풍 예측 때 주로 앙상블 모델로 추측하여 경로는 예측합니다.


코드

# 분류분석 중 Random Forest
install.packages("randomForest")
library(randomForest)

model<-randomForest(Species ~., data=iris)
model
#트리 500개 OOB오차범위는 4.67%

#계산하면
(50 +47 +45)/nrow(iris) #0.9466667

#랜덤 포레스트 파라미터 값 조정 ()
model2<-randomForest(Species ~., data=iris, ntree=300, mtry=4, na.action = na.omit) #결측치 제거na.action = na.omit()
model2 #err 는 4%
(50 + 47 + 46) /nrow(iris) #0.9533333 살짝 오름

#중요 변수 확인
model3<-randomForest(Species ~., data=iris, importance=T, ntree=300, mtry=4, na.action = na.omit) #결측치 제거na.action = na.omit()
importance(model3) # petal.width가 중요도가 높다. #gini가 클수록 중요도가 높다.

varImpPlot(model3)

#최적의 파라미터값 구하기 (ntree, mtry)
ntree <- c(400,500,600)
mtry <-c(2:4)
param<-data.frame(n=ntree,m=mtry)
param

#for문으로 돌림
for (i in param$n) {
  cat('ntree = ' ,i,'\n')
  for (j in param$m) {
    cat('mtry = ' ,j,'\n')
    model_iris <- randomForest(Species~.,data = iris,ntree=i,mtry=j,na.action = na.omit)
    print(model_iris)
  }
}






샘플 데이터




본 포스팅은 KIC 캠퍼스에서 박영권 강사의 지도하에 공부하며 작성한 리포트입니다.
혹시 잘못된 내용이 있거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.





'스터디 > ML·AL' 카테고리의 다른 글

R - KNN 예제 #1  (0) 2018.05.13
R - SVM 예제  (0) 2018.05.09
라즈베리파이에 Mariadb 설치하기 #1  (0) 2018.05.08
R - Random forest 예제  (0) 2018.05.08
R - SVM 예제  (0) 2018.05.08
R - rpart 예제  (0) 2018.05.08
R - ctree#2  (0) 2018.05.08

댓글(0)

Designed by JB FACTORY