我如何评估R中的多项式分类模型



我目前正在尝试构建一个uti级预测模型,以预测26个英语字母的字母。我目前已经使用ANN,SVM,Ensemble和NB构建了一些型号。但是我一直在评估这些模型的准确性。尽管混乱矩阵向我展示了字母表的真实和错误预测,但我只能获得每个模型的总体精度。是否有一种方法可以评估模型的准确性,类似于ROC和AUC值的二项式分类。注意:我当前正在使用H2O软件包运行该模型,因为它节省了我更多的时间。

一旦您在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)

最新更新