저는 현재 26 개의 영문 알파벳 중 문자를 예측하기 위해 muti-class 예측 모델을 만들려고합니다. 현재 ANN, SVM, Ensemble 및 nB를 사용하여 몇 가지 모델을 만들었습니다. 그러나 나는이 모델들의 정확성을 평가하는데 집착하고있다. 혼란 행렬이 알파벳 적으로 참과 거짓 예측을 보여 주지만 각 모델의 전반적인 정확도 만 얻을 수 있습니다. Bomomial Classification의 ROC 및 AUC 값과 비슷한 모델의 정확성을 평가할 수있는 방법이 있습니까? 참고 : 현재 H2o 패키지를 사용하여 모델을 실행하고 있으므로 시간이 절약됩니다.R에서 다항 분류 모델을 어떻게 평가합니까?
1
A
답변
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)
빠른 시일 내에 에린에 감사드립니다. 나는 또한 내가 mean_per_class_error에 순전히 갈 수 있는지 또는 개인 모델이 AIC에 최선의 모델을 선택하는지 주시해야 하는지를 알 수 있습니다. – adimessi30
'mean_per_class_error'를 사용하여 가장 좋은 모델을 선택하는 것이 좋습니다. –
에린 다시, 모델과 그들의 비교를 완료하고 검토를 위해 여기에 게시 :) – adimessi30