引用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。
更新:针对与我有相同遭遇的未来用户。似乎h2o不能使用class为“ 0”和“ 1”的响应,即使您转换为枚举也是如此。我的问题通过将0和1重新标记为“正常”和“恶意”来解决,并且将绘制ROC曲线。
答案 0 :(得分:1)
我的数据集有2个类,分别是0、1,而不是yes和no。
将会发生的事情是H2O决定这是一个数字列,而不是一个类别(又称因子)列。解决方法是仅在该列上使用as.factor()
。只是在导入数据之后,但要在使用它来构建模型之前执行此操作。
然后,它将知道构建分类模型,而不是回归模型,您将获得期望看到的指标。
这里是一个示例:https://stackoverflow.com/a/41441578/841830(或在H2O文档中搜索as.factor,您将在其中找到更多负载)
在流中,您首先上传文件,然后单击解析文件,它会显示列列表。类别/因子列在此处称为“枚举”(是的,这很令人困惑)。您的列大概显示为数字,因此请转到下拉框并将其更改为枚举。然后开始解析。然后,在那之后,建立您的模型。
答案 1 :(得分:1)
您必须将响应列的类型更改为“枚举”,
或将模型参数设置中的分布更改为“ bernoulli”(二项式分类)。
在图像中,您共享“ Enum(3)”,因此结果是多项式分类而不是二项式。因此,您应该看到混淆矩阵,而不是ROC曲线。 ROC曲线仅能显示2类分类(有关ROC的更多信息,请点击https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5)。
您应该会看到类似的信息(如果将分布设置为“多项式”):