Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从多层感知器分类器中获得分类概率?_Java_Scala_Apache Spark_Apache Spark Ml - Fatal编程技术网

Java 如何从多层感知器分类器中获得分类概率?

Java 如何从多层感知器分类器中获得分类概率?,java,scala,apache-spark,apache-spark-ml,Java,Scala,Apache Spark,Apache Spark Ml,这似乎与: 我正在用spark ml做一个分类任务,构建一个多层感知器分类器。一旦我建立了一个模型,我可以得到一个给定输入向量的预测类,但是我不能得到每个输出类的概率。上面的清单表明NaiveBayesModel从Spark 1.5.0开始支持此功能。我想了解一下MLPC的这个功能。有没有办法让我去破解它,得到我的概率?它会包含在1.6.2中吗?我认为简短的答案是否定的 多层感知器分类器不是概率的。当训练后设置权重(以及任何偏差)时,给定输入的分类将始终相同 我想,你真正想问的是“如果我通过给定

这似乎与:


我正在用spark ml做一个分类任务,构建一个多层感知器分类器。一旦我建立了一个模型,我可以得到一个给定输入向量的预测类,但是我不能得到每个输出类的概率。上面的清单表明NaiveBayesModel从Spark 1.5.0开始支持此功能。我想了解一下MLPC的这个功能。有没有办法让我去破解它,得到我的概率?它会包含在1.6.2中吗?

我认为简短的答案是否定的

多层感知器分类器不是概率的。当训练后设置权重(以及任何偏差)时,给定输入的分类将始终相同

我想,你真正想问的是“如果我通过给定数量级的随机扰动来调整权重,那么分类与没有调整的分类有多大可能相同?”

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

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

如果你看一下,你可以看到MLPC是从一个底层的
拓扑模型
工作的,它提供了我正在寻找的
.predict
方法。MLPC将生成的
矢量
解码为单个标签

我能够使用经过训练的MLPC模型,使用其权重创建新的
地形模型

MultilayerPerceptronClassifier trainer = new MultilayerPerceptronClassifier()...;
MultilayerPerceptronClassificationModel model = trainer.fit(trainingData);
TopologyModel topoModel = FeedForwardTopology.multiLayerPerceptron(model.layers(), true).getInstance(model.weights());

不完全是我想说的,但也许我对“概率”这个词的选择是错误的。也许我想要的是更像“自信”的东西。分类器对于每个输出类都有
n
输出节点。来自上一层节点的权重将在输出节点中相加为某个值。值最高的输出节点是预测的输出类。通过直接访问这些值,我可以分辨出一个具有非常高置信度的选定类与两个可能的类之间非常接近的类之间的差异。这个问题似乎非常简单。在训练分类器之后,您希望得到一个模型,该模型应该为您提供所有支持,以便在Spark ML中进行进一步分类-