누구든지 R을 사용하는 의사 결정 트리의 오류율을 계산하는 방법을 알고 있습니까? rpart()
기능을 사용하고 있습니다.의사 결정 트리에서 오류율을 계산하는 방법은 무엇입니까?
28
A
답변
47
모델에 맞는 샘플의 오류율을 계산한다고 가정하면 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 %)을 resubstitution 오류율 = -이 대략
012,351,641이고class.pred <- table(predict(fit, type="class"), kyphosis$Kyphosis) 1-sum(diag(class.pred))/sum(class.pred)
0.82353 0.20988 X = 0.1728425 (17.2 %)의 10 배를 사용하여 CV 교차 검증 에러 레이트 (인,
rpart.control()
에xval
참조; 이 측정 방법에 의존하는xpred.rpart()
및plotcp()
도 참조하십시오. 이 측정은 예측 정확도를보다 객관적으로 나타냅니다. 이tree
에서 분류 정확도 계약에 더 많거나 적은 것을
참고 : Misclassification error rate
이 훈련 샘플에서 계산
> 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
.