pyspark gbtregressor对象在加载模型后没有属性“transform”

bis0qfac  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(527)

我收到了一个预先训练好的Pypark模型(gbtregressor),我无法在数据集上使用它来获得预测。我看过一些关于使用pipeline vs pipelinemodel的文章,但在本例中,它只是regressor对象,我不能用pipelinemodel加载它。
我能够成功地加载模型:

model = GTBRegressor.load(model_path)
type(model)
'pyspark.ml.regression.GBTRegressor'

但当我打电话的时候 model.transform(test_df) 我明白了

AttributeError: 'GBTRegressor' object has no attribute 'transform'

我尝试过将模型对象放入管道和管道模型中,但没有任何效果。我在源代码中也看到了这个类:

class GBTRegressionModel(TreeEnsembleModels):
    """
    Model fitted by GBTRegressor.

    .. versionadded:: 1.4.0
    """

但是我不能用 GBTRegressionModel.load(model_path) 如果有人能抽出时间帮我找出我做错了什么,我将不胜感激!跑了整整一周,我不想再跑了。如果需要我提供更多信息来诊断问题,请告诉我。

fnx2tebb

fnx2tebb1#

我发现答案是,由于代码中的一个bug,未经训练的gbtregressor对象被保存,而不是经过训练的对象,因此它没有transform属性。

相关问题