2017-04-22 12 views
1

저는 현재 26 개의 영문 알파벳 중 문자를 예측하기 위해 muti-class 예측 모델을 만들려고합니다. 현재 ANN, SVM, Ensemble 및 nB를 사용하여 몇 가지 모델을 만들었습니다. 그러나 나는이 모델들의 정확성을 평가하는데 집착하고있다. 혼란 행렬이 알파벳 적으로 참과 거짓 예측을 보여 주지만 각 모델의 전반적인 정확도 만 얻을 수 있습니다. Bomomial Classification의 ROC 및 AUC 값과 비슷한 모델의 정확성을 평가할 수있는 방법이 있습니까? 참고 : 현재 H2o 패키지를 사용하여 모델을 실행하고 있으므로 시간이 절약됩니다.R에서 다항 분류 모델을 어떻게 평가합니까?

답변

2

모델을 H2O로 교육하면 다음을 수행하면됩니다. print(fit) 해당 모델 유형에 대해 사용 가능한 모든 측정 항목이 표시됩니다. 멀티 클래스의 경우 h2o.mean_per_class_error()을 권하고 싶습니다. 홍채 데이터 세트에

R 코드 예제 : 당신이 모델이 있으면

library(h2o) 
h2o.init(nthreads = -1) 

data(iris) 
fit <- h2o.naiveBayes(x = 1:4, 
         y = 5, 
         training_frame = as.h2o(iris), 
         nfolds = 5) 

, 우리는 모든 메트릭 볼 수 h2o.performance() 기능을 사용하여 모델의 성능을 평가할 수 :

> h2o.performance(fit, xval = TRUE) 
H2OMultinomialMetrics: naivebayes 
** Reported on cross-validation data. ** 
** 5-fold cross-validation on training data (Metrics computed for combined holdout predictions) ** 

Cross-Validation Set Metrics: 
===================== 

Extract cross-validation frame with `h2o.getFrame("iris")` 
MSE: (Extract with `h2o.mse`) 0.03582724 
RMSE: (Extract with `h2o.rmse`) 0.1892808 
Logloss: (Extract with `h2o.logloss`) 0.1321609 
Mean Per-Class Error: 0.04666667 
Hit Ratio Table: Extract with `h2o.hit_ratio_table(<model>,xval = TRUE)` 
======================================================================= 
Top-3 Hit Ratios: 
    k hit_ratio 
1 1 0.953333 
2 2 1.000000 
3 3 1.000000 

을 또는 당신이 할 수있는 mean_per_class_error과 같은 특정 측정 항목을 살펴보십시오.

> h2o.mean_per_class_error(fit, xval = TRUE) 
[1] 0.04666667 

테스트 세트의 성능을 보려면 다음을 수행하십시오.

perf <- h2o.performance(fit, test) 
h2o.mean_per_class_error(perf) 
+0

빠른 시일 내에 에린에 감사드립니다. 나는 또한 내가 mean_per_class_error에 순전히 갈 수 있는지 또는 개인 모델이 AIC에 최선의 모델을 선택하는지 주시해야 하는지를 알 수 있습니다. – adimessi30

+0

'mean_per_class_error'를 사용하여 가장 좋은 모델을 선택하는 것이 좋습니다. –

+0

에린 다시, 모델과 그들의 비교를 완료하고 검토를 위해 여기에 게시 :) – adimessi30