随机森林-如何在spark.mllib中获得分类模型中每个实例的概率



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

在LogisticRegressionModel中,我们可以设置阈值。因此,我创建了一个函数,用于检查不同阈值上每个点的结果。但这对于RandomForest来说是无法做到的(请参阅如何在Spark中训练RandomForest中的数据时设置截止值(

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

关于这个确切的主题,存在JIRA问题(SPARK-4362和SPARK-6885(,我现在正在写答案。尽管如此,自2014年11月以来,该问题似乎一直处于搁置状态

在预测过程中,目前没有办法用Naive Baye模型来获得预测的后验概率。这应该与标签一起提供。

以下是@sean owen在邮件列表上关于Naive Bayes分类算法的类似主题的注释:

此邮件列表最近对此进行了讨论。你现在不能直接得到概率,但你可以破解一点,得到NaiveBayesModel的内部数据结构,并从那里计算它。

参考:来源。

主要编辑:此问题已通过Spark 1.5.0解决。有关更多详细信息,请参阅JIRA问题。

最新更新