AttributeError: у объекта 'str' нет атрибута 'fit' - Pyspark - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь запустить скрипт ниже в PySpark3 и получаю сообщение об ошибке, следующее.Я использую это как-то связано с форматированием, но я не уверен, как это сделать.Любая помощь приветствуется.

train,test = df.randomSplit([0.7,0.3])

models = ["LinearRegression()","DecisionTreeRegressor()","RandomForestRegressor()","GBTRegressor()"]

for model in models:

    # Fit our model
    M = model
    fitModel = M.fit(train)

    # Load the Summary
    trainingSummary = fitModel.summary

#     trainingSummary.residuals.show()
    print("Training RMSE: %f" % trainingSummary.rootMeanSquaredError)
    print("Training r2: %f" % trainingSummary.r2)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-15-d0b941a7170e> in <module>()
      8     # Fit our model
      9     M = model
---> 10     fitModel = M.fit(train)
     11 
     12     # Load the Summary

AttributeError: 'str' object has no attribute 'fit'

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Я думаю, что этот способ на самом деле более эффективен ....

Таким образом, вы все еще можете перебирать список.

def ClassTrainEval(model):

    fitModel = model.fit(train)

    # Load the Summary
    trainingSummary = fitModel.summary

    print("Training RMSE: %f" % trainingSummary.rootMeanSquaredError)
    print("Training r2: %f" % trainingSummary.r2)

models = [LogisticRegression(),NaiveBayes(),OneVsRest(),LinearSVC()] 

for model in models:
    ClassTrainEval(classifier)
0 голосов
/ 08 июля 2019

Вы должны изменить свои модели

models = [LinearRegression, DecisionTreeRegressor, RandomForestRegressor, GBTRegressor]

Потому что с вашим текущим определением они определенно являются строкой.Лучше всего добавить модули в список и создавать его в каждом цикле.

Чтобы быть точным models = ["LinearRegression()"] элемент внутри - String, а не объект, у которого нет метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...