Kolumny 1
i 2
na wyjściu daje błąd klasyfikacji dla każdej klasy. Wartość OOB
jest średnią ważoną błędów klas (ważoną przez ułamek obserwacji w każdej klasie).
Przykładem (dostosowanie losowy przykład las od strony Pomoc):
# 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%
Średnia ważona błędów klasy na 100. drzewo daje współczynnik błędu OOB o 6,0%, dokładnie tak, jak podano w prześledzić powyżej. (prop.table
zwraca część obserwacji w każdej kategorii (każdej klasie) gatunków). Mnożymy ten element przez błędy klasy dla 100 drzewa, podane w powyższych wartościach śledzenia, a następnie sumujemy, aby uzyskać błąd średniej ważonej dla wszystkich klas (błąd OOB).
sum(prop.table(table(iris$Species)) * c(0, 0.08, 0.10))
[,1]
[1,] 0.06
można uniknąć konieczności użycia sumę jeśli używasz mnożenia macierzy, która tutaj jest równoznaczne z kropka/skalarnego/produktu wewnętrzna:
prop.table(table(iris$Species)) %*% c(0, 0.08, 0.10)