java - LogisticRegressionModel.predict 中的要求失败

标签 java apache-spark apache-spark-mllib

我想在 JavaApplication 中测试我的模型 (SparkMLlib)

 LogisticRegressionModel sameModel = LogisticRegressionModel.load(sc,"/home/storm/Desktotp/LogisticRegressionModel");
        Vector meu = Vectors.dense(1.0, 26.0, 0.4872, 2.0, 3.0, 1.0, 0.4925, 0.6182, 0.2762, 0.5468, 0.12, 9.0, 1.0, 2.0, 0.12, 1.0, 2.0, 3.0, 3.0, 1.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 1.0, 2.0, 3.0, 0.4507, 0.0, 132.0, 2.0, 1.0, 1.0, 3.0, 2.0, 2.0, 2.0, 141.0, 3.0, 2.0, 3.0, 3.0, 1.0, 3.0, 1.0, 1.0, 2.0, 1.0, 2.0, 3.0, 2.0, 2.0, 3.0, 1.0, 1.0, 2.0, 3.0, 3.0, 3.0, 1.0, 3.0, 2.0, 1.0, 3.0, 3.0);
        Double prediction = sameModel.predict(meu);

运行时出现此错误:

Exception in thread "main" java.lang.IllegalArgumentException: requirement failed
    at scala.Predef$.require(Predef.scala:221)
    at org.apache.spark.mllib.classification.LogisticRegressionModel.predictPoint(LogisticRegression.scala:117)
    at org.apache.spark.mllib.regression.GeneralizedLinearModel.predict(GeneralizedLinearAlgorithm.scala:84)

最佳答案

由于 predictPoint 中检查的唯一要求是输入 vector 大小,因此它很可能与用于训练模型的数据形状不匹配。

检查是否属于这种情况的一个简单方法是检查 model.numFeatures 并将其与输入 vector 的大小进行比较。

关于java - LogisticRegressionModel.predict 中的要求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205134/

相关文章:

java - 为什么我们在另一个类中引用它之前不必编译该类

java - 条件条款未按预期发挥作用

hadoop - 如何使用 Spark Map Reduce 将一堆 Parquet 文件联合在一起?

java - spark提交抛出错误java.lang.ClassNotFoundException : scala. runtime.java8.JFunction2$mcIII$sp

machine-learning - 处理 apache Spark MLLib 中 SVM 中的缺失值

apache-spark - Spark数据类型猜测器UDAF

java - 如何重新排列wordcount hadoop输出结果并按值排序

apache-spark - 将数据写入Hive Spark SQL时发生ArrayIndexOutOfBoundsException异常

apache-spark - 如何在 Spark MLlib 中为 K-means 初始化聚类中心?

java - 启用安全管理器时 URLClassLoader 发出的 ClassNotFoundException