如何从MultilayerPerceptronClassifier获得分类概率?

时间:2016-03-12 20:32:56

标签: java scala apache-spark apache-spark-ml

这似乎与:How to get the probability per instance in classifications models in spark.mllib

最相关

我正在使用spark ml进行分类任务,构建一个MultilayerPerceptronClassifier。一旦我构建了一个模型,我可以得到一个给定输入向量的预测类,但是我不能得到每个输出类的概率。上面的清单表明NaiveBayesModel从Spark 1.5.0 (using a predictProbabilities method)开始支持此功能。我想为MLPC获得此功能。有没有办法可以破解它来获取我的概率?它会包含在1.6.2中吗?

2 个答案:

答案 0 :(得分:1)

如果您查看this line in the MLPC source code,您可以看到MLPC正在使用提供我正在寻找的np.arange(1,5) array([ 1, 2, 3, 4]) 方法的基础TopologyModel。 MLPC将生成的.predict解码为单个标签。

我可以使用经过训练的MLPC模型使用其权重创建新的Vector

TopologyModel

答案 1 :(得分:0)

我认为简短的回答是否。

MultilayerPerceptronClassifier不具有概率性。在训练后设置权重(和任何偏差)时,给定输入的分类将始终相同。

我认为,你真正要问的是“如果我通过给定幅度的某些随机干扰来调整权重,那么分类与没有调整的分类有多大可能相同?”

您可以通过重新训练感知器(使用不同的,随机选择的起始条件)进行 ad hoc 概率计算,并了解各种分类的概率。

但我认为这不是MLPC预期行为的一部分。