【问题标题】:Spark MultilayerPerceptronClassifier Class ProbabilitiesSpark MultilayerPerceptronClassifier 类概率
【发布时间】:2019-06-29 22:26:07
【问题描述】:

我是一位经验丰富的 Python 程序员,试图将一些 Python 代码转换为 Spark 以完成分类任务。这是我第一次在 Spark/Scala 工作。

在 Python 中,Keras/tensorflow 和 sci-kit Learn 神经网络在多类分类方面做得很好,我能够轻松返回前 3 个最可能的类以及对这个项目至关重要的概率.

我通常成功地将代码移动到 Spark (Scala),并且能够生成正确的预测,但我无法找到一种方法来从 MLlib 中的 MultilayerPerceptronClassifier 返回最高预测类的概率.

我找到的最接近的解决方案是在这篇文章中:How to get classification probabilities from MultilayerPerceptronClassifier? 但是,我无法让帖子中的解决方案正常工作,因为它缺少关键代码,或者我对 Scala 太陌生(可能是后者),无法进行必要的调整。

有人解决了这个问题吗?

这些是我环境中的当前版本。 火花版本:2.1.1 Scala 版本:2.11.8

感谢您的帮助,

RKB

【问题讨论】:

    标签: scala apache-spark probability mlp


    【解决方案1】:

    如果你仔细看看MultilayerPerceptronClassificationModel.transform的结果(modeltest定义为in the example pipeline in the official documentation

    val result = model.transform(test)
    
    result.printSchema
    
    root
     |-- label: double (nullable = true)
     |-- features: vector (nullable = true)
     |-- rawPrediction: vector (nullable = true)
     |-- probability: vector (nullable = true)
     |-- prediction: double (nullable = false)
    

    您会看到它们包含probability 列。

    存储为o.a.s.ml.linalg.Vector 列:

    result.select($"probability").show(3, false)
    
    +---------------------------------------------------+
    |probability                                        |
    +---------------------------------------------------+
    |[2.630203838780848E-29,1.7323171642231641E-19,1.0] |
    |[1.0,1.448487547623119E-121,4.530084532282489E-44] |
    |[1.0,5.157808976162274E-122,2.5702890543589884E-44]|
    +---------------------------------------------------+
    only showing top 3 rows
    

    并且可以使用standard methods访问。

    此功能从 Spark 2.3 (SPARK-12664 Expose probability, rawPrediction in MultilayerPerceptronClassificationModel) 开始可用。

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2015-10-28
      • 2016-07-09
      • 2016-01-28
      • 2017-08-13
      相关资源
      最近更新 更多