好的,对于问题的第二部分,
How do I access the model weights? The lr optimizer and lr model internally has weights but it is unclear how to use them
在浏览了库的源代码(不存在 Scala 知识)之后,
LogisticRegressionModel(spark.ml)具有属性权重(向量类型)。
情况1
如果你有 LogisticRegressionModel (of spark.ml)
LogisticRegression lr = new LogisticRegression();
LogisticRegressionModel lr1 = lr.fit(df_train);
System.out.println("The weights are " + lr1.weights())
案例2
如果你有 Pipeline Model,首先使用 getModel 获取 LogisticRegressionModel (Transformer)
LogisticRegression lr = new LogisticRegression().setMaxIter(10).setRegParam(0.01);
Pipeline pipeline = new Pipeline().setStages(new PipelineStage[] { lr });
PipelineModel model = pipeline.fit(train_df);
LogisticRegressionModel lrModel =model.getModel(lr);
System.out.println("The model is {}", lrm.weights());
如果它不正确或有更好的方法,请告诉我。