如何在spark.mllib中获取分类模型中每个实例的概率

时间:2015-07-05 14:43:00

标签: apache-spark random-forest logistic-regression apache-spark-mllib

我使用spark.mllib.classification。{LogisticRegressionModel,LogisticRegressionWithSGD}和spark.mllib.tree.RandomForest进行分类。使用这些包我生成分类模型。只有这些模型预测每个实例的特定类。在Weka中,我们可以得到每个类的每个实例的确切概率。我们怎样才能使用这些包呢?

在LogisticRegressionModel中,我们可以设置阈值。所以我创建了一个函数来检查不同阈值上每个点的结果。但是对于RandomForest无法做到这一点(参见How to set cutoff while training the data in Random Forest in Spark

1 个答案:

答案 0 :(得分:3)

不幸的是,使用MLLIb,您无法获得分类模型的每个实例的概率,直到版本1.4.1。

JIRA问题(SPARK-4362SPARK-6885)涉及这个确切的话题,因为我现在正在写答案。尽管如此,该问题似乎自2014年11月以来一直搁置

  

目前无法在预测期间使用Naive Baye模型获得预测的后验概率。这应该与标签一起提供。

以下是@ sean-owen在邮件列表上关于朴素贝叶斯分类算法的类似主题的说明:

  

最近在此邮件列表中对此进行了讨论。您现在无法直接获取概率,但您可以通过一些方法来获取NaiveBayesModel的内部数据结构并从那里进行计算。

参考:source

MAJOR EDIT :此问题已通过Spark 1.5.0 已解决 。有关详细信息,请参阅JIRA issue