如何计算SparkR中用于分类的RoC和AUC

时间:2019-06-19 15:19:48

标签: apache-spark classification apache-zeppelin sparkr roc

我开始使用Apache Zeppelin及其livy2解释器来处理Spark,特别是sparkR版本2.3.2。由于公司的安全性和IT政策,我们暂时仍然使用该配置。我已经对数据进行了逻辑回归和其他分类算法。我能够相对简单地计算混淆矩阵和基于其的统计信息,例如总体准确性或敏感性。但是,我想计算RoC和AUC,尽管这些统计信息已内置在Scala和pySpark实现的模型返回中,但它们并未内置到SparkR实现中。更糟糕的是,我无法找到一种方法来简单地在sparkR中的Spark DataFrame(DF)上计算累积运行总和,因此可以手动构建RoC。

我可以将Spark DF转换为R数据帧(df),但这只能在我用来自学的这个小子集中起作用。完整的数据将耗尽内存,这就是为什么我们使用Spark。

虽然可以通过以下方式创建一个Spark数据帧的临时视图,然后使用唯一ID上某个版本的Window函数调用SQL以创建运行总和,然后将其重新导入Spark DF,这种方式看起来非常令人费解,可能对我所知的全部无效。

如果可能的话,我如何才能轻松地将在predictspark.logit的DataFrame上将spark.decisionTree应用于分类SparkR模型的结果,并计算RoC和AUC ,还是我辞职学习如何在Scala或pySpark中进行操作?谢谢。

0 个答案:

没有答案