使用h2o.randomForest
创建模型后,使用:
perf <- h2o.performance(model, test)
print(perf)
我收到以下信息(值H2OModelMetrics
对象)
H2OBinomialMetrics: drf
MSE: 0.1353948
RMSE: 0.3679604
LogLoss: 0.4639761
Mean Per-Class Error: 0.3733908
AUC: 0.6681437
Gini: 0.3362873
Confusion Matrix (vertical: actual; across: predicted)
for F1-optimal threshold:
0 1 Error Rate
0 2109 1008 0.323388 =1008/3117
1 257 350 0.423394 =257/607
Totals 2366 1358 0.339689 =1265/3724
Maximum Metrics: Maximum metrics at their respective thresholds
metric threshold value idx
1 max f1 0.080124 0.356234 248
2 max f2 0.038274 0.515566 330
3 max f0point5 0.173215 0.330006 131
4 max accuracy 0.288168 0.839957 64
5 max precision 0.941437 1.000000 0
6 max recall 0.002550 1.000000 397
7 max specificity 0.941437 1.000000 0
8 max absolute_mcc 0.113838 0.201161 195
9 max min_per_class_accuracy 0.071985 0.621087 262
10 max mean_per_class_accuracy 0.078341 0.626921 251
Gains/Lift Table: Extract with `h2o.gainsLift(<model>, <data>)`
or `h2o.gainsLift(<model>, valid=<T/F>, xval=<T/F>)`
我用来比较我的预测模型的质量比较灵敏度(召回)和特异性,但是根据提供的信息,我无法理解这些指标。根据以上信息,我如何评估预测质量?
如果我使用混淆矩阵计算此类指标,我会得到:sens=0.58
,spec=0.68
与提供的信息不同。
如果有任何方法可以获得我们使用confusionMatrix
包中的caret
这样的值?
对我来说,这个指标更直观:
比logLoss
指标。
答案 0 :(得分:6)
h2o中的二项分类模型返回预测的概率(p
)为&#34; 1&#34; (而且他们也会冗余地告诉你它是&#34; 0&#34;的概率,即1-p
)。
要使用此模型,您必须决定 cutoff 。例如。你可以把它分成中间,如果p > 0.5
为&#34; 1&#34;,那么它是&#34; 1&#34;,否则它是&#34; 0&#34;。但是你可以选择其他值,你在本报告中看到的是不同截止值下的模型质量:这就是你在&#34;阈值&#34;柱。极端值(请记住,基于您给出的test
数据)是这两个值:
5 max precision 0.941437 1.000000 0
6 max recall 0.002550 1.000000 397
即。如果您将截止值指定为0.94,则它具有完美的精度,如果您将截止值指定为0.00255,则它具有完美的调用。
它显示的默认混淆矩阵使用此行:
3 max f0point5 0.173215 0.330006 131
(this question的答案可以更详细地解释该指标。)
就个人而言,我发现最准确度最直观:
4 max accuracy 0.288168 0.839957 64
即。最大准确度是指具有最低误差的阈值。
无论您决定哪种指标最合适,您仍然需要为实际看不见的数据确定一个阈值。一种方法是根据您的测试数据使用表中的阈值(因此,如果我认为最大准确度最重要,我会在我的实时应用程序中使用0.288的阈值。)但我发现平均值来自测试数据和列车数据的阈值,以提供更可靠的结果。
P.S。在抵抗了一段时间之后,我成了logloss的粉丝。我发现调整最佳对数损失的模型(而非调整以获得最佳回忆,最佳精度,最佳精度,最低MSE等等)在转变为实际应用时往往更加强大。
答案 1 :(得分:2)
我喜欢以不同的方式阅读。你已经有了混淆矩阵,对于一些问题,你可以(当然!)直接计算准确度为(真阳性+真阴性)/总病例但是对于休息,有一种趋势是平衡准确性(取决于数量)预测因子必须对抗多重共线性,并从不同的响应案例样本中消除偏差。)
平衡准确度=((TP / P)+(TN / N))/ 2 TP正面积极 TN真阴性 P实际为正 N实际负数
这为您的特异性和敏感性案例提供了真实的图片