保存火花模型摘要

ham*_*miq 8 python logistic-regression apache-spark pyspark

我正在使用 spark 版本在 pyspark 中运行逻辑回归:2.1.2

我知道可以按如下方式保存回归模型:

# Initialise the logistic regression
model = LogisticRegression(featuresCol='features', labelCol='is_clickout',regParam=0, fitIntercept=False, family="binomial")

model = pipeline.fit(data)

# save model for future use
save_path = "model_0"
model.save(save_path)
Run Code Online (Sandbox Code Playgroud)

问题是保存的模型没有保存摘要:

from pyspark.ml.classification import LogisticRegressionModel
model2 = LogisticRegressionModel.load(save_path)
model2.hasSummary ##### Returns FALSE
Run Code Online (Sandbox Code Playgroud)

我可以按如下方式提取摘要,但它没有附加保存方法: # Get the model summary summary = model.stages[-1].summary

有没有一种快速的方法来保存摘要对象?对于多元回归?

目前我读取了对象的所有属性并将其保存为pandas df。

boe*_*107 1

不幸的是,你的观察是正确的。我在 Spark 2.4.3 中遇到了同样的问题,我发现这个评论证实了这个问题:

对于LinearRegressionModel,当前不保存训练摘要。将来可能会添加保存摘要的选项。

Spark 3.0.0-rc1(其存储库中最后一个可用标签)仍然存在相同的注释。

如果我们想保留摘要,我们需要自己以某种方式将其序列化。我之前曾通过提取所需的统计信息并将其在训练模型后保存在 JSON 文档中来完成此操作。