4

これは、spark.mllib の分類モデルでインスタンスごとの確率を取得する方法に最も関連しているようです。

Spark ml で分類タスクを実行し、MultilayerPerceptronClassifier を構築しています。モデルを構築すると、入力ベクトルを指定して予測クラスを取得できますが、各出力クラスの確率を取得できません。上記のリストは、NaiveBayesModel が Spark 1.5.0 の時点でこの機能をサポートしていることを示しています(predictProbabilities メソッドを使用)。MLPC のこの機能を取得したいと思います。ハッキングして確率を得る方法はありますか?1.6.2 に含まれますか?

4

2 に答える 2

1

MLPC ソース コードのこの行を見ると、探しているメソッドをTopologyModel提供する基盤から MLPC が動作していることがわかります。.predictMLPC は結果Vectorを単一のラベルにデコードします。

TopologyModelトレーニング済みの MLPC モデルを使用して、その重みを使用して新しいモデルを作成できます。

MultilayerPerceptronClassifier trainer = new MultilayerPerceptronClassifier()...;
MultilayerPerceptronClassificationModel model = trainer.fit(trainingData);
TopologyModel topoModel = FeedForwardTopology.multiLayerPerceptron(model.layers(), true).getInstance(model.weights());
于 2016-03-17T15:02:16.577 に答える
0

短い答えはノーだと思います。

MultilayerPerceptronClassifier は確率的ではありません。トレーニング後に重み (およびバイアス) が設定されると、特定の入力の分類は常に同じになります。

あなたが本当に求めているのは、「与えられた大きさの特定のランダムな乱れによって重みを微調整した場合、分類が微調整なしの場合と同じになる可能性はどれくらいですか?」ということです。

パーセプトロンを (ランダムに選択された異なる開始条件で) 再トレーニングすることにより、アドホックな確率計算を実行し、さまざまな分類の確率についてある程度のアイデアを得ることができます。

しかし、これは実際には MLPC の期待される動作の一部ではないと思います。

于 2016-03-15T20:23:26.940 に答える