LogisticRegressionModel.predict

时间:2016-03-24 16:23:58

标签: 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)

1 个答案:

答案 0 :(得分:6)

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

检查是否是这种情况的简单方法是检查model.numFeatures并将其与输入向量的size进行比较。

相关问题