【问题标题】:Calculate AUC for test set (keras model in R)计算测试集的 AUC(R 中的 keras 模型)
【发布时间】:2019-07-22 05:36:37
【问题描述】:

有没有办法(函数)在测试集上计算 R 中 keras 模型的 AUC 值? 我在谷歌上搜索过,但没有任何显示。 从 Keras 模型中,我们可以将预测值提取为类或概率,如下所示: 概率:

 [1,] 9.913518e-01 1.087829e-02
  [2,] 9.990101e-01 1.216531e-03
  [3,] 9.445553e-01 6.256607e-02
  [4,] 9.928864e-01 6.808311e-03
  [5,] 9.993126e-01 1.028240e-03
  [6,] 6.075442e-01 3.926141e-01

类:

1                                   0
2                                   0
3                                   0
4                                   0
5                                   0
6                                   0
7                                   0
8                                   0

非常感谢, 何

【问题讨论】:

    标签: r keras


    【解决方案1】:

    一般来说,预测是什么 calssifier(keras 与否)并不重要。估计 AUC 所需的只是两件事:来自某个分类器的预测概率和实际类别(例如,死“是”与“否”)。使用此数据,您可以计算真阳性率和假阳性率,因此您还可以制作 ROC 图并使用此数据估计 AUC。你可以使用

    library(pROC)
    roc_obj <- roc(category, prediction)
    auc(roc_obj)
    

    更多解释请参见here

    【讨论】:

      【解决方案2】:

      我不确定这是否能满足您的需求,因为它取决于您的数据结构和 keras 输出格式,但请查看 Dismo 包的函数 evaluate。你需要设置类似的东西:

      library(dismo)
      predictors <- stack of explaining variables
      pres_test <- a subset of data used to model ##that you not use in your model for this testing purpose
      backg_test <- true or random (background) absence data
      model <- output of your model
      AUC <- evaluate(pres_test, backg_test, model, predictors) ## you may bootstrap this step x time by randomly selecting 'pres_test' and 'backg_test' x time.
      

      【讨论】:

      • 我编辑了我的问题以包括我可以从 keras 模型中获得的输出,请你看看。我现在也在尝试查看dismo包,看看是否可以使用。谢谢
      • 看看你的输出(概率)似乎是的,你可以使用 dismo 评估函数来计算 AUC。
      猜你喜欢
      • 2021-03-23
      • 2011-06-21
      • 2021-04-26
      • 2013-05-08
      • 2011-12-10
      • 2020-10-31
      • 1970-01-01
      • 2015-11-24
      • 2018-01-22
      相关资源
      最近更新 更多