Как получить вероятности классификации из MultilayerPerceptronClassifier?
Похоже, это в наибольшей степени связано с тем, как получить вероятности для каждого случая в моделях классификаций в spark.mllib
Я делаю задачу классификации с помощью spark ml, строю MultilayerPerceptronClassifier. После того, как я построю модель, я могу получить прогнозируемый класс по заданному входному вектору, но не могу получить вероятность для каждого выходного класса. Вышеприведенный листинг указывает, что NaiveBayesModel поддерживает эту функциональность начиная с Spark 1.5.0 (с использованием метода предсказания вероятностей). Я хотел бы получить эту функциональность для MLPC. Есть ли способ, которым я могу взломать его, чтобы получить мои вероятности? Будет ли он включен в 1.6.2?
2 ответа
Если вы посмотрите на эту строку в исходном коде MLPC, то увидите, что MLPC работает из TopologyModel
который обеспечивает .predict
метод, который я ищу. MLPC декодирует полученный Vector
в один ярлык.
Я могу использовать обученную модель MLPC, чтобы создать новую TopologyModel
используя его вес:
MultilayerPerceptronClassifier trainer = new MultilayerPerceptronClassifier()...;
MultilayerPerceptronClassificationModel model = trainer.fit(trainingData);
TopologyModel topoModel = FeedForwardTopology.multiLayerPerceptron(model.layers(), true).getInstance(model.weights());
Я думаю, что короткий ответ - нет.
MultilayerPerceptronClassifier не является вероятностным. Когда веса (и любые отклонения) устанавливаются после обучения, классификация для данного входа всегда будет одинаковой.
Я думаю, что вы на самом деле спрашиваете: "Если бы я настроил веса с помощью определенных случайных возмущений заданной величины, насколько вероятно, что классификация будет такой же, как и без изменений?"
Вы можете выполнить специальный расчет вероятности, повторно обучив персептрон (с различными, случайно выбранными начальными условиями) и получить некоторое представление о вероятности различных классификаций.
Но я не думаю, что это действительно часть ожидаемого поведения MLPC.