将 SQL 和权重与 spark ML LogisticRegressionModel 一起使用

Using SQL and weights with the spark ML LogisticRegressionModel

我正在试验 spark.ml 库和管道功能。将 SQL 与拆分一起使用似乎存在限制(例如,对于训练和测试):

关于生成的模型:

好的,对于问题的第二部分,

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)具有属性权重(向量类型)。

案例一

如果您有 LogisticRegressionModel(spark.ml)

LogisticRegression lr = new LogisticRegression();
LogisticRegressionModel lr1 = lr.fit(df_train);
System.out.println("The weights are  " + lr1.weights())

案例二

如果您有管道模型,请先使用 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());

如果不正确或有更好的方法,请告诉我。