2016-12-02 6 views
0

Когда я попробовал Apache Spark SVM для задачи классификации нескольких классов, я получил следующую ошибку. Может кто-нибудь объяснить мне, есть ли способ сделать SVM классификацию нескольких классов с помощью Apache Спарк MLlibМогу ли я выполнять классификацию нескольких классов с помощью apache spark Support Vector Machines?

Exception in thread "main" org.apache.spark.SparkException: Input validation failed. 
    at org.apache.spark.mllib.regression.GeneralizedLinearAlgorithm.run(GeneralizedLinearAlgorithm.scala:251) 
    at org.apache.spark.mllib.regression.GeneralizedLinearAlgorithm.run(GeneralizedLinearAlgorithm.scala:229) 
    at org.apache.spark.mllib.classification.SVMWithSGD$.train(SVM.scala:219) 
    at org.apache.spark.mllib.classification.SVMWithSGD$.train(SVM.scala:255) 
    at org.apache.spark.mllib.classification.SVMWithSGD.train(SVM.scala) 
    at SVMClass.main(SVMClass.java:31) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

ответ

2

Не каждый алгоритм ML может обрабатывать MultiClass проблемы из коробки. Если это так, вы всегда можете использовать стратегию one vs. rest. В статье Wiki объясняется, какие алгоритмы имеют «естественное» расширение для многоклассов.

Если вы отметите Spark docs, вы заметите, что SVM указаны в двоичном формате. Алгоритм SVM требует расширения для обработки нескольких классов и, по-видимому, он может быть не реализован (судя по документам) в MLlib. Вы можете обойти это с указанной стратегией OvR, но ваша производительность не будет звездной. Многослойный персептрон является интересной альтернативой, так как он также может обеспечить вероятность принадлежности к данному классу.

 Смежные вопросы

  • Нет связанных вопросов^_^