我可以使用 apache spark 支持向量机进行多 class class 化吗?
Can I do multi class classification with apache spark Support Vector Machines?
当我尝试使用 Apache Spark SVM 解决多 class class 化问题时,出现以下错误。有人可以解释一下是否有办法使用 Apache Spark MLlib
进行 SVM 多 class class 化
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)
并非每个 ML 算法都能开箱即用地处理多class 问题。如果是这种情况,您始终可以使用 one vs. rest 策略。 Wiki 文章解释了哪些算法具有 "natural" 对 multiclass 的扩展。
如果您检查 Spark docs,您会注意到二进制下提到了 SVM。 SVM 算法需要扩展来处理多个 classes 并且显然它可能没有在 MLlib 中实现(从文档判断)。您可以使用提到的 OvR 策略解决这个问题,但您的表现不会很好。多层感知器是一个有趣的替代方案,因为它还可以提供属于给定 class.
的概率
当我尝试使用 Apache Spark SVM 解决多 class class 化问题时,出现以下错误。有人可以解释一下是否有办法使用 Apache Spark MLlib
进行 SVM 多 class class 化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)
并非每个 ML 算法都能开箱即用地处理多class 问题。如果是这种情况,您始终可以使用 one vs. rest 策略。 Wiki 文章解释了哪些算法具有 "natural" 对 multiclass 的扩展。
如果您检查 Spark docs,您会注意到二进制下提到了 SVM。 SVM 算法需要扩展来处理多个 classes 并且显然它可能没有在 MLlib 中实现(从文档判断)。您可以使用提到的 OvR 策略解决这个问题,但您的表现不会很好。多层感知器是一个有趣的替代方案,因为它还可以提供属于给定 class.
的概率