我正在使用Spark版本2.1.2在pyspark中运行逻辑回归
我知道可以如下保存回归模型:
# 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)
问题是保存的模型无法保存摘要:
from pyspark.ml.classification import LogisticRegressionModel
model2 = LogisticRegressionModel.load(save_path)
model2.hasSummary ##### Returns FALSE
我可以按以下方式提取摘要,但没有附加保存方法: #获取模型摘要 摘要= model.stages [-1]。摘要
是否有保存摘要对象的快速方法?对于多元回归?
当前,我读取了对象的所有属性,并将其另存为pandas df。
答案 0 :(得分:0)
很遗憾,您的观察是正确的。我在Spark 2.4.3中遇到了相同的问题,并且发现this comment确认了该问题:
对于 LinearRegressionModel ,它当前不保存训练摘要。将来可能会添加用于保存摘要的选项。
对于Spark 3.0.0-rc1(其存储库中的最后一个可用标记),仍然存在相同的注释。
如果我们要保留摘要,我们需要自己对它进行序列化。在提取模型所需的统计信息并将其保存在JSON文档中之后,我就完成了此操作。