Как вычислить частоту ошибок из дерева решений? - PullRequest
32 голосов
/ 12 марта 2012

Кто-нибудь знает, как рассчитать коэффициент ошибок для дерева решений с R?Я использую функцию rpart().

1 Ответ

52 голосов
/ 12 марта 2012

Предполагая, что вы имеете в виду вычисление частоты ошибок в выборке, используемой для соответствия модели, вы можете использовать printcp().Например, используя онлайн-пример,

> library(rpart)
> fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)
> printcp(fit)

Classification tree:
rpart(formula = Kyphosis ~ Age + Number + Start, data = kyphosis)

Variables actually used in tree construction:
[1] Age   Start

Root node error: 17/81 = 0.20988

n= 81 

        CP nsplit rel error  xerror    xstd
1 0.176471      0   1.00000 1.00000 0.21559
2 0.019608      1   0.82353 0.82353 0.20018
3 0.010000      4   0.76471 0.82353 0.20018

Root node error используется для вычисления двух показателей прогнозирующей эффективности при рассмотрении значений, отображаемых в столбцах rel error и xerror, и в зависимости отдля параметра сложности (первый столбец):

  • 0,76471 x 0,20988 = 0,1604973 (16,0%) - это коэффициент ошибок повторного замещения (т. е. коэффициент ошибок, рассчитанный на тренингеобразец) - это примерно

    class.pred <- table(predict(fit, type="class"), kyphosis$Kyphosis)
    1-sum(diag(class.pred))/sum(class.pred)
    
  • 0,82353 x 0,20988 = 0,1728425 (17,2%) - это коэффициент перекрестной проверки (с использованием 10-кратного CV)см. xval в rpart.control(); но см. также xpred.rpart() и plotcp(), которые основаны на таких мерах).Эта мера является более объективным показателем точности прогнозирования.

Обратите внимание, что она более или менее согласуется с точностью классификации от tree:

> library(tree)
> summary(tree(Kyphosis ~ Age + Number + Start, data=kyphosis))

Classification tree:
tree(formula = Kyphosis ~ Age + Number + Start, data = kyphosis)
Number of terminal nodes:  10 
Residual mean deviance:  0.5809 = 41.24 / 71 
Misclassification error rate: 0.1235 = 10 / 81 

, гдеMisclassification error rate вычисляется по обучающему образцу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...