h2o Flow UI:构建模型,但没有用于多类的ROC曲线或AUC?

时间:2019-07-08 07:16:03

标签: machine-learning enums random-forest h2o roc

引用https://dzone.com/articles/machine-learning-with-h2o-hands-on-guide-for-data

我能够按照示例进行操作,并绘制了ROC和AUC曲线,但是当我对数据进行相同的操作时,我将显示“ SCORING HISTORY-DEVIANCE”,而不是“ SCORING HISTORY-LOGLOSS”和“ ROC CURVE-培训指标”没有出现。

我的数据集有2个类,分别是0、1,而不是yes和no。决定ROC曲线是否可移植的是什么?

于2019年7月10日更新了对Maurever答复的引用: 我已经将“标签”转换为“转换为枚举”,并将分布更改为“ bernoulli”,但仍无法绘制ROC。 enter image description here

更新:针对与我有相同遭遇的未来用户。似乎h2o不能使用class为“ 0”和“ 1”的响应,即使您转换为枚举也是如此。我的问题通过将0和1重新标记为“正常”和“恶意”来解决,并且将绘制ROC曲线。

2 个答案:

答案 0 :(得分:1)

  

我的数据集有2个类,分别是0、1,而不是yes和no。

将会发生的事情是H2O决定这是一个数字列,而不是一个类别(又称因子)列。解决方法是仅在该列上使用as.factor()。只是在导入数据之后,但要在使用它来构建模型之前执行此操作。

然后,它将知道构建分类模型,而不是回归模型,您将获得期望看到的指标。

这里是一个示例:https://stackoverflow.com/a/41441578/841830(或在H2O文档中搜索as.factor,您将在其中找到更多负载)

在流中,您首先上传文件,然后单击解析文件,它会显示列列表。类别/因子列在此处称为“枚举”(是的,这很令人困惑)。您的列大概显示为数字,因此请转到下拉框并将其更改为枚举。然后开始解析。然后,在那之后,建立您的模型。

答案 1 :(得分:1)

您必须将响应列的类型更改为“枚举”,

enter image description here

或将模型参数设置中的分布更改为“ bernoulli”(二项式分类)。

enter image description here

在图像中,您共享“ Enum(3)”,因此结果是多项式分类而不是二项式。因此,您应该看到混淆矩阵,而不是ROC曲线。 ROC曲线仅能显示2类分类(有关ROC的更多信息,请点击https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5)。

您应该会看到类似的信息(如果将分布设置为“多项式”):

enter image description here