如何解决加载模型后,pyspark GBTRegressor对象没有属性“变换”
我已经收到了预先训练的pyspark模型(GBTRegressor),但无法在数据集上使用它来获取预测。我已经看到了一些有关使用Pipeline vs PipelineModel的帖子,但是在这种情况下,它只是回归对象,我无法使用PipelineModel加载它。
我能够成功加载以下模型:
model = GTBRegressor.load(model_path)
type(model)
'pyspark.ml.regression.GBTRegressor'
但是当我打电话给model.transform(test_df)
时,我会得到
AttributeError: 'GBTRegressor' object has no attribute 'transform'
我尝试将模型对象放入Pipeline和PipelineModel中,但是没有任何效果。我还在源代码中看到了该类:
class GBTRegressionModel(TreeEnsembleModels):
"""
Model fitted by GBTRegressor.
.. versionadded:: 1.4.0
"""
但是我无法使用GBTRegressionModel.load(model_path)
如果有人可以花时间帮助我弄清楚我在这里做错了什么,将不胜感激!花了整整一周的时间,我想避免再次这样做。让我知道是否需要我提供更多信息来诊断问题。
解决方法
我发现答案是由于代码中的错误,未训练的GBTRegressor对象被保存,而不是经过训练的对象,因此它没有转换属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。