# 전용준 : : 리비 젼 컨설팅 : : 02 - 415 - 7650 : : revision . co . kr : : xyxonxyxon @ empal . com # = = = = = = = = = = = = = = = = = = = = = = = = = ========================= Computational PredictionSkip to contentHomeSample PageRandom Forest in RRandom Forest is an ensemble classifier of decision trees . 랜덤 포리스트 는 디시 젼 트리 앙상블 분류기 이 다 . Wikipedia has a nice explanation on the learning algorithm . 위키 에 이 학습 알고리즘 에 대한 좋 은 설명 이 있 다 . The key idea is to use bagging which uses m models where each of which is fit from n ’ samples picked from data of size n . 일 정수 의 샘플 을 사용 해서 일련 의 모델 을 만드 는 배 깅 방법 이 핵심 이 다 . Plus , when choosing criteria for decision tree node splits , one feature is chosen from random subset of features . 그리고 , 트리 노드 의 분기 를 위해서 필요 한 기준 설정 을 할 때 무작위 추출 된 데이터 부분 집합 이 사용 되 는 것 이 하나 의 특성 이 다 . Each decision tree is fully grown ( no pruning ) . 각각 의 트리 는 가지치기 없이 가능 한 최대 로 만들 어 진다 . When making a prediction , mode of predictions of all tress or average of them are used . R has a randomForest package for it . 예측 실행 시 모든 트리 를 사용 한 예측 이나 트리 들 의 예측 의 평균 이 사용 되 며 , R 은 randomForest 라는 패키지 를 가지 고 있 다 . Here , we ’ ll use iris . 아 이리스 데이터 를 사용 할 것 이 다 . view sourceprint ? > head ( iris ) Sepal . Length Sepal . Width Petal . Length Petal . Width Species 1 5 . 1 3 . 5 1 . 4 0 . 2 setosa 2 4 . 9 3 . 0 1 . 4 0 . 2 setosa 3 4 . 7 3 . 2 1 . 3 0 . 2 setosa 4 4 . 6 3 . 1 1 . 5 0 . 2 setosa 5 5 . 0 3 . 6 1 . 4 0 . 2 setosa 6 5 . 4 3 . 9 1 . 7 0 . 4 setosaPrepare training and test set . 데이터 셋 을 먼저 준비 함 view sourceprint ? > test = iris [ c ( 1 : 10 , 51 : 60 , 101 : 110 ) , ] > train = iris [ c ( 11 : 50 , 61 : 100 , 111 : 150 ) , ] Build a random forest using randomForest ( ) . 랜덤 포리스트 함수 를 사용 해서 랜덤 포리스트 를 생성 한다 . view sourceprint ? > r = randomForest ( Species ~., data = train , importance = TRUE , do . trace = 100 ) ntree OOB 1 2 3 100 : 5 . 83 % 0 . 00 % 7 . 50 % 10 . 00 % 200 : 5 . 83 % 0 . 00 % 10 . 00 % 7 . 50 % 300 : 5 . 83 % 0 . 00 % 10 . 00 % 7 . 50 % 400 : 5 . 00 % 0 . 00 % 10 . 00 % 5 . 00 % 500 : 5 . 83 % 0 . 00 % 10 . 00 % 7 . 50 % *** 주석 : 함수 를 사용 한다면 일반 적 인 트리 생 성 에서 와 차이 나 는 부분 은 trace 에 대해 조건 을 주 는 부분 만 다르 다 . > print ( r ) Call : randomForest ( formula = Species ~ . , data = train , importance = TRUE , do . trace = 100 ) Type of random forest : classification Number of trees : 500 No . of variables tried at each split : 2 OOB estimate of error rate : 5 . 83 % Confusion matrix : setosa versicolor virginica class . error setosa 40 0 0 0 . 000 versicolor 0 36 4 0 . 100 virginica 0 3 37 0 . 075 We see that predicting setosa works great . Let ’ s see how it works with test set . setosa 가 제대로 예측 되 고 있 음 을 볼 수 있 다 . 테스트 셋 을 사용 해서 얼마나 잘 되 었 는지 를 살펴보 자 . view sourceprint ? > iris . predict = predict ( r , test ) > iris . predict 1 2 3 4 5 6 7 setosa setosa setosa setosa setosa setosa setosa 8 9 10 51 52 53 54 setosa setosa setosa versicolor versicolor versicolor versicolor 55 56 57 58 59 60 101 versicolor versicolor versicolor versicolor versicolor versicolor virginica 102 103 104 105 106 107 108 virginica virginica virginica virginica virginica versicolor virginica 109 110 virginica virginica Levels : setosa versicolor virginica > t = table ( observed = test [ , ' Species '], predict = iris . predict ) > t predict observed setosa versicolor virginica setosa 10 0 0 versicolor 0 10 0 virginica 0 1 9 > prop . table ( t , 1 ) predict observed setosa versicolor virginica setosa 1 . 0 0 . 0 0 . 0 versicolor 0 . 0 1 . 0 0 . 0 virginica 0 . 0 0 . 1 0 . 9 > As you can see , 10 % of virginica was predicted as versicolor . References ) 보 시 다시피 , virginica 10 % 가 versicolr 로 예측 되 었 다 . Package ‘ randomForest ’, Briedman and Cutler ’ s random forests for classification and regression . : reference manual . Andy Liaw and Matthew Wiener , Classification and Regression by randomForest , R News , pp . 18 - 22 . : good examples on classification , regression and clustering ( really ! ) , and some practical advice . Similar Posts : Naive Bayes in RCross Validation in R using cvToolsDecision tree for iris in RPartition plot of decision treeCluster analysis of iris in R *** 주석 : http : / / mkseo . pe . kr / stats / ? p = 220 에서 퍼 와서 번역 만 했 네요 . 랜덤 포리스트 가 데이터 사이언스 에서 는 인기 가 많 으니까요 . 많 은 분 들 이 편하 게 사용 하 는 데 약간 의 수고 가 도움 되 면 좋 겠 군요 . 번역 하 느라 퍼 온 것 에 대해서 는 저자 분 이 양해 하 실 것 으로 생각 하 구요 . 다음 포스팅 에서 는 KBO 데이터 셋 에 대해 적용 한 예제 를 만들 어 볼까 생각 중 입니다