如何加载逻辑回归模型?

san*_*aya 4 apache-spark apache-spark-ml

我想使用 Java 中的 Apache Spark 训练逻辑回归模型。作为第一步,我想仅训练模型一次并保存模型参数(截距和系数)。随后使用保存的模型参数在稍后的时间点进行评分。我可以使用以下代码将模型保存在镶木地板文件中

LogisticRegressionModel trainedLRModel = logReg.fit(data);
trainedLRModel.write().overwrite().save("mypath");
Run Code Online (Sandbox Code Playgroud)

当我加载模型进行评分时,出现以下错误。

LogisticRegression lr = new LogisticRegression();
lr.load("//saved_model_path");

Exception in thread "main" java.lang.NoSuchMethodException: org.apache.spark.ml.classification.LogisticRegressionModel.<init>(java.lang.String)
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.getConstructor(Class.java:1825)
    at org.apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:325)
    at org.apache.spark.ml.util.MLReadable$class.load(ReadWrite.scala:215)
    at org.apache.spark.ml.classification.LogisticRegression$.load(LogisticRegression.scala:672)
    at org.apache.spark.ml.classification.LogisticRegression.load(LogisticRegression.scala)
Run Code Online (Sandbox Code Playgroud)

有没有办法训练和保存模型,然后评估(评分)?我在 Java 中使用 Spark ML 2.1.0。

Fel*_*xHo 6

我在 pyspark 2.1.1 中面临同样的问题,当我从 LogisticRegression 更改为 LogisticRegressionModel 时,一切正常。

LogisticRegression.load("/model/path") # not works 

LogisticRegressionModel.load("/model/path") # works well
Run Code Online (Sandbox Code Playgroud)