Перекрестная проверка | Ошибка Pyspark: «llegalArgumentException:« Поле не существует » - PullRequest
1 голос
/ 21 февраля 2020

Я пытаюсь выполнить бинарную классификацию с настройкой pyspark и модели:

tokenizer = Tokenizer(inputCol='parole', outputCol='parole_tokened')
ngram = NGram(inputCol=tokenizer.getOutputCol(), outputCol='ngrams', n=2)
hashing_TF = HashingTF(inputCol=ngram.getOutputCol(), outputCol='tf')
idf = IDF(inputCol=hashing_TF.getOutputCol(), outputCol='idf')

reg_log = LogisticRegression(
    featuresCol=idf.getOutputCol(), 
    labelCol='explicite', 
    predictionCol='prediction')

pipeline = Pipeline(stages=[tokenizer, ngram, hashing_TF, idf, reg_log])

evaluator = BinaryClassificationEvaluator(
    labelCol='prediction', 
    metricName='areaUnderROC')

paramGrid = (ParamGridBuilder()
             .addGrid(reg_log.maxIter, [10, 20])
             .addGrid(reg_log.regParam, [.1, .3, 1,2])
             .addGrid(reg_log.elasticNetParam, [.5,.8,2])
             .build())

cv = CrossValidator(estimator=reg_log, estimatorParamMaps=paramGrid, evaluator=evaluator, numFolds=5)

cvModel = cv.fit(df_lyrics_train)
predictions = cvModel.transform(df_lyrics_test)
evaluator.evaluate(predictions)

Я получаю сообщение об ошибке при попытке выполнить строку cvmodel . В сообщении об ошибке указывается, что:

Поле "idf" не существует. \ NДоступные поля: id, явный, пароль, CrossValidator_aa33e6f2913a_rand '

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