【发布时间】:2015-11-28 10:47:25
【问题描述】:
最近我一直在尝试利用 Spark 进行二进制分类。我用 Python 编写代码,为了使用 Spark SVM,我使用了以下包:
from pyspark.mllib.classification import SVMWithSGD
看着this link,我意识到 SVM.predict 的 Scala 版本返回一个分数,而它的 python 版本返回一个标签。由于我想使用以下方法计算 AUROC:
from pyspark.mllib.evaluation import BinaryClassificationMetrics
我确实需要分数而不是测试样本的标签。阅读 spark 官方文档,不幸的是,前面提到的 python 版本只返回标签。如果我错了,请纠正我或帮助我解决此问题(如果您知道任何其他软件包或其他内容)。
谢谢
【问题讨论】:
-
没错,但问题是什么?
-
@eliasah python spark svm 中返回分数而不是标签的任何方法?
-
不。你必须自己调整它。您还可以编写自己的评估类。这就是我所做的,因为即使在 Scala 中它们仍然不是全部可用。
-
不。他们现在不应该是,但最终他们会是。在标准化 API 方面有很多工作。尽管如此,Python 并不在 JVM 中运行,而且它使用的 numpy 与 Scala 或 Java 中的结构定义不同。因此,API之间的不一致。但是 Apache Spark 团队正在研究它。该项目非常复杂且庞大,需要维护所有库以及管道中的 Tungsten 项目。因此,您只需要耐心并同时围绕它调整自己的解决方案。我就是这么做的。
-
有道理。无论如何感谢您的帮助。
标签: python scala apache-spark svm