我使用ml.classification.RandomForestClassifier构建了随机森林模型。我试图从模型中提取预测概率,但我只看到预测类而不是概率。根据此issue link,问题已得到解决,并导致此github pull request和this。但是,它似乎已在版本1.5中得到解决。我使用提供Spark 1.4.1的AWS EMR,并且不知道如何获得预测概率。如果有人知道该怎么做,请分享您的想法或解决方案。谢谢!
答案 0 :(得分:3)
我之前已经回答了类似的question。
不幸的是,使用MLLIb,您无法获得分类模型的每个实例的概率,直到版本1.4.1。
JIRA问题(SPARK-4362和SPARK-6885)涉及这个确切的话题,因为我现在正在写答案。尽管如此,该问题似乎自2014年11月以来一直搁置
目前无法在预测期间使用Naive Baye模型获得预测的后验概率。这应该与标签一起提供。
以下是@ sean-owen在邮件列表上关于朴素贝叶斯分类算法的类似主题的说明:
最近在此邮件列表中对此进行了讨论。您现在无法直接获取概率,但您可以通过一些方法来获取NaiveBayesModel的内部数据结构并从那里进行计算。
参考:source。
此问题已使用Spark 1.5.0 已解决 。有关详细信息,请参阅JIRA issue。
关于AWS ,您现在无法做到这一点。解决方案可能是您可以分叉emr-bootstrap-actions for spark并根据需要进行配置,然后您就可以使用引导步骤在AWS上安装Spark。
然而,这似乎有点复杂。
您可能需要考虑一些事情:
更新spark/config.file
以安装spark-1.5。类似的东西:
+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
上面的这个文件列表必须是您目前拥有的指定s3存储桶中正确构建的spark。
为了建立你的火花,我建议你在例子section about building-spark-for-emr和official documentation中阅读它。这应该是关于它! (我希望我没有忘记任何事情)
编辑:Amazon EMR 4.1.0版提供了Apache Spark(1.5.0)的升级版本。您可以查看here了解详情。
答案 1 :(得分:0)
不幸的是,版本1.4.1不可能,你可以扩展随机林类并复制我在该拉取请求中添加的一些代码,如果你不能升级 - 但一定要切换一旦你能够升级就回到常规版本。
答案 2 :(得分:-1)
现在,在emr-4.1.0版本的EMR上本机支持Spark 1.5.0!不再需要使用emr-bootstrap-actions,它只适用于3.x AMI,而不适用于emr-4.x版本。