在Spark的随机森林分类器中预测类别概率

4

我使用ml.classification.RandomForestClassifier构建了随机森林模型。我试图从模型中提取预测概率,但我只看到了预测类别而不是概率。根据这个问题链接,该问题已得到解决,并导致了这个GitHub拉取请求这个。但是,似乎它是在版本1.5中解决的。我正在使用提供Spark 1.4.1的AWS EMR,仍然不知道如何获取预测概率。如果有人知道如何做,请分享您的想法或解决方案。谢谢!

3个回答

3

我之前已经回答过类似的问题

不幸的是,在MLLIb 1.4.1之前,您无法获取分类模型每个实例的概率。

有两个JIRA问题(SPARK-4362SPARK-6885)涉及到这个问题,正在进行中,我写回答时这个问题似乎停滞了,已经有一段时间了。

目前没有办法在预测期间使用朴素贝叶斯模型获取预测的后验概率。这应该与标签一起提供。

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

最近在邮件列表上讨论了这个问题。现在不能直接获取概率,但是您可以稍微修改一下NaiveBayesModel的内部数据结构,然后从中计算出概率。

参考资料:来源

这个问题已经在Spark 1.5.0中得到了解决。有关更多详细信息,请参阅JIRA问题

关于AWS,目前您无法做太多事情。一种解决方案可能是,如果您可以fork适用于Spark的emr-bootstrap-actions并将其配置为符合您的需求,那么您将能够使用引导步骤在AWS上安装Spark。

然而,这可能看起来有点复杂。

您可能需要考虑以下事项:

  • update the spark/config.file to install you spark-1.5. Something like :

    +3  1.5.0   python  s3://support.elasticmapreduce/spark/install-spark-script.py s3://path.to.your.bucket.spark.installation/spark/1.5.0/spark-1.5.0.tgz
    
  • this file list above must be a proper build of spark located in an specified s3 bucket you own for the time being.

  • To build your spark, I advice you reading about it in the examples section about building-spark-for-emr and also the official documentation. That should be about it! (I hope I haven't forgotten anything)

编辑:Amazon EMR 4.1.0版本提供了Apache Spark的升级版(1.5.0)。您可以在此处查看更多细节


0

很遗憾,版本1.4.1无法实现此功能。如果您无法升级,请扩展随机森林类并复制我在该拉取请求中添加的一些代码 - 但请确保在能够升级后切换回常规版本。


-1

现在,Spark 1.5.0已经在EMR上通过emr-4.1.0版本得到了本地支持!不再需要使用emr-bootstrap-actions,顺便提一下,这些只适用于3.x AMI,而不是emr-4.x版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接