【问题标题】:Can I do multi class classification with apache spark Support Vector Machines?我可以使用 apache spark Support Vector Machines 进行多类分类吗?
【发布时间】:2017-04-16 23:00:42
【问题描述】:

当我尝试使用 Apache Spark SVM 解决多类分类问题时,出现以下错误。有人可以解释一下是否有办法使用 Apache Spark MLlib 进行 SVM 多类分类

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)

【问题讨论】:

    标签: machine-learning svm apache-spark-mllib


    【解决方案1】:

    并非每个 ML 算法都可以开箱即用地处理多类问题。如果是这种情况,您可以随时使用one vs. rest 策略。 Wiki 文章解释了哪些算法具有对多类的“自然”扩展。

    如果您检查Spark docs,您会注意到二进制文件下提到了 SVM。 SVM 算法需要扩展来处理多个类,显然它可能没有在 MLlib 中实现(从文档判断)。您可以使用上面提到的 OvR 策略来解决这个问题,但您的表现不会很出色。多层感知器是一个有趣的替代方案,因为它还可以提供属于给定类别的概率。

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 2015-09-23
      • 1970-01-01
      • 2014-02-09
      • 2019-02-22
      • 2015-09-12
      • 1970-01-01
      • 2021-05-27
      • 2015-01-16
      相关资源
      最近更新 更多