Я не понимаю выход классификатора SVM из алгоритма Spark MLLib. Я хочу преобразовать оценку в вероятность, так что я получаю вероятность для точки данных, принадлежащей определенному классу (на котором обучается SVM, проблема с несколькими классами a.k.a.) (see also this thread). Неясно, что означает оценка. Это расстояние до гиперплоскости? Как мне получить из этого вероятность?Что означает результат Spark MLLib SVM?
ответ
Значение - это маржа - расстояние до разделительной гиперплоскости. Это не вероятность, и SVM вообще не дают вам вероятности. Однако в качестве комментариев примечания @cfh вы можете попытаться узнать вероятности на основе этого поля. Но это отдельно от SVM.
Поскольку вы являетесь автором: Соавтором Advanced Analytics на Spark, вы наверняка знаете наверняка, если Spark MLLib включает в себя функциональность изучения вероятностей. Я не мог найти его. Если я так позволю себе спросить: как вы думаете, LVQ имеет смысл в многоклассовой классификации и извлечения вероятности? Я думаю, что это происходит потому, что распределение точек в кластерах может быть моделями гауссовой функцией, и эта функция может быть использована для вычисления вероятностей. Надеюсь, вы можете дать мне несколько советов :) – blpasd
Да, это я. Если вам нужно узнать вероятности, используйте модель, которая делает это прямо как простой LR. Тем не менее, вам не нужны пробки для мультикласса. Я действительно не знаю LVQ, но дает ли это вероятности? Я не думаю, что вы соответствуете гауссианам в любом из них. –
Хорошо, да, я согласен, однако, логистическая регрессия (LR) не такая мощная, как SVM с ядром RBF (в большинстве случаев) в задачах классификации с несколькими классами. Поэтому я хотел бы знать, как я могу вычислить эти вероятности. Из вашего ответа я могу заключить, что MLLib Spark не включает в себя функциональность изучения вероятностей? В этом случае я думаю, что более разумно использовать LVQ: https: //onlinecourses.science.psu.edu/stat557/node/79 В этой ссылке можно найти облака точек с цветом, эти облака могут быть приспособлены к функции Гаусса и, таким образом, дают вероятности? – blpasd
import org.apache.spark.mllib.classification.{SVMModel, SVMWithSGD}
import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
import org.apache.spark.mllib.util.MLUtils
// Load training data in LIBSVM format.
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
// Split data into training (60%) and test (40%).
val splits = data.randomSplit(Array(0.6, 0.4), seed = 11L)
val training = splits(0).cache()
val test = splits(1)
// Run training algorithm to build the model
val numIterations = 100
val model = SVMWithSGD.train(training, numIterations)
// Clear the default threshold.
model.clearThreshold()
// Compute raw scores on the test set.
val scoreAndLabels = test.map { point =>
val score = model.predict(point.features)
(score, point.label)
}
// Get evaluation metrics.
val metrics = new BinaryClassificationMetrics(scoreAndLabels)
val auROC = metrics.areaUnderROC()
println("Area under ROC = " + auROC)
// Save and load model
model.save(sc, "myModelPath")
val sameModel = SVMModel.load(sc, "myModelPath")
Если вы используете модуль SVM в MLLib, они дают вам АУК, которое площадь под кривой ROC, и это эквивалентно «Точность». Надеюсь, поможет.
- 1. Spark MLLib Crossvalidation SVM
- 2. что заданоNumClasses в LogisticRegressionWithLBFGS Spark-Mllib
- 3. Spark mllib перетасовывание данных
- 4. RowMatrix, MLlib, Java Spark
- 5. Объединение Spark Streaming + MLlib
- 6. Spark mllib LinearRegression weird result
- 7. Что такое параметр initializationSteps в Kmeans ++ в Spark MLLib?
- 8. Установка Spark MLLib на Mac OS X
- 9. Что означает кешированный результат?
- 10. Что означает «результат Java»?
- 11. PCA в Spark MLlib и Spark ML
- 12. Что означает «локальное решение» в svm?
- 13. Что такое colour 'rawPrediction' и 'вероятность' DataFrame в Spark MLlib?
- 14. Apache Spark - MLlib - Матричное умножение
- 15. Интерпретация результатов Spark MLLib LDA
- 16. Spark MLlib/K-Means интуиция
- 17. Spark MLlib: Включает категориальные функции
- 18. Как обслуживать модель Spark MLlib?
- 19. Настройка алгоритмов Apache Spark MLlib
- 20. Spark MLlib рекомендуемые методы двигателя
- 21. Spark MLLIB параллелизм нескольких узлов
- 22. Понимание Spark MLlib ALS.trainImplicit формат ввода
- 23. Понимать роль UID в Spark MLLib Transformer
- 24. . Правила доверия Spark MLlib больше 1.0
- 25. MLLib spark -ALStrainImplicit значение более 1
- 26. Scala Spark - используя RDD с mllib
- 27. Что означает результат «списка (контура)»?
- 28. SQLiteDB - что означает результат excute?
- 29. Что означает результат функции time()?
- 30. Spark Mllib .toBlockMatrix приводит к матрице 0.0
SVM являются детерминированными и не имеют дело с вероятностями, они подходят только к границе решения. Вероятно, вы могли бы предположить вероятность, основанную на расстоянии до границы принятия решения, но вряд ли она будет работать. – cfh
LibSVM действительно поддерживает его, а также научную литературу: www.citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.1639 Таким образом, я думаю, что вычисление апостериорной вероятности возможно, но оно недоступно в Spark MLLib. Поскольку у меня нет ответа от сообщества относительно того, что такая функциональность уже доступна, я заключаю, что я должен сам ее реализовать. – blpasd
Эта ссылка не работает. – cfh