Если вы внимательно посмотрите на результаты MultilayerPerceptronClassificationModel.transform
(model
и test
, как определено в примере конвейера в официальной документации )
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
и может быть доступен с использованием стандарта методы .
Эта функция доступна с версии Spark 2.3 ( SPARK-12664 Вероятность выставления, rawPrediction в MultilayerPerceptronClassificationModel ).