Я играл с save
и load
функциями pyspark.ml.classification
моделей. Я создал экземпляр RandomForestClassifier
, установил значения для пары параметров и вызвал метод save
классификатора. Сохраняет успешно. Там нет проблем.
from pyspark.ml.classification import RandomForestClassifier
# save
rf = RandomForestClassifier()
rf.setImpurity('entropy')
rf.setPredictionCol('predme')
rf.write().overwrite().save('rf_test')
Затем я попытался загрузить его обратно, но заметил, что его параметры не имеют значений, которые я установил перед сохранением. Ниже приведен код, который я пытался
# load
rf2 = RandomForestClassifier()
rf2.load('rf_test')
print(rf2.getImpurity()) # returns gini
print(rf2.getPredictionCol()) # returns prediction
Полагаю, в моем понимании того, как должен работать этот код и как он работает, есть разница.
Что я должен сделать, чтобы вернуть объект так, как я его сохранил?
EDIT
Я попробовал подход, упомянутый здесь. Но это не сработало. Это то, что я пытался
from pyspark.ml.classification import RandomForestClassifier
rf = RandomForestClassifier()
rf.setImpurity('entropy')
rf.setPredictionCol('predme')
rf.write().overwrite().save('rf_test')
rf2 = RandomForestClassifier
rf2.load('rf_test')
print(rf2.getImpurity())
который вернул следующее
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: getImpurity() missing 1 required positional argument: 'self'