2015-01-24 4 views
5

R에서 verbose 모드 (do.trace), 으로 randomForest를 실행하고 있는데 메시지의 열의 의미가 무엇인지 궁금합니다. ntree은 나무의 수이고 OOB은 가방 밖의 샘플의 %이지만 "1"과 "2"는 무엇입니까?R에서 randomForest를 실행하는 동안 자세한 정보 표시 모드에 대한 설명

> rf.m <- randomForest(x = X.train, y=as.factor(y.train), do.trace=10) 
ntree  OOB  1  2 
    10: 32.03% 15.60% 82.47% 
    20: 29.18% 10.51% 86.31% 
    30: 27.44% 7.47% 88.57% 
    40: 26.48% 5.29% 91.33% 
    50: 25.92% 4.35% 91.96% 
    .... 

답변

9

1 및 출력 2 각 클래스 분류 오차를 제공한다. OOB 값은 클래스 오류의 가중치 평균입니다 (각 클래스의 관측 값의 비율로 가중).

예 (도움말 페이지에서 임의의 숲 예를 적응) :

# Keep every 100th tree in the trace 
set.seed(71) 
iris.rf <- randomForest(Species ~ ., data=iris, importance=TRUE, 
         proximity=TRUE, do.trace=100) 

ntree  OOB  1  2  3 
    100: 6.00% 0.00% 8.00% 10.00% 
    200: 5.33% 0.00% 6.00% 10.00% 
    300: 6.00% 0.00% 8.00% 10.00% 
    400: 4.67% 0.00% 8.00% 6.00% 
    500: 5.33% 0.00% 8.00% 8.00% 

100 나무의 클래스 오류의 가중 평균은보고 그대로, 6.0 %의 OOB 오류율을 제공합니다 위의 추적. (prop.table은 종의 각 카테고리 (각 클래스)에서 관측치의 비율을 반환합니다. 위의 추적 값에 주어진대로 100 번째 트리의 클래스 오류로 요소별로 늘린 다음 모든 클래스에 대해 가중 평균 오류 (OOB 오류)를 합산합니다.

sum(prop.table(table(iris$Species)) * c(0, 0.08, 0.10)) 
[,1] 
[1,] 0.06 

당신은 여기에 점/스칼라/내부 제품에 해당 행렬 곱셈, 사용하는 경우 합계를 사용할 필요 피할 수 있습니다 :

prop.table(table(iris$Species)) %*% c(0, 0.08, 0.10) 
관련 문제