我使用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)
答案 0 :(得分:3)
不幸的是,使用MLLIb,您无法获得分类模型的每个实例的概率,直到版本1.4.1。
JIRA问题(SPARK-4362和SPARK-6885)涉及这个确切的话题,因为我现在正在写答案。尽管如此,该问题似乎自2014年11月以来一直搁置
目前无法在预测期间使用Naive Baye模型获得预测的后验概率。这应该与标签一起提供。
以下是@ sean-owen在邮件列表上关于朴素贝叶斯分类算法的类似主题的说明:
最近在此邮件列表中对此进行了讨论。您现在无法直接获取概率,但您可以通过一些方法来获取NaiveBayesModel的内部数据结构并从那里进行计算。
参考:source。
MAJOR EDIT :此问题已通过Spark 1.5.0 已解决 。有关详细信息,请参阅JIRA issue。