Я пытаюсь выполнить бинарную классификацию с настройкой 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 '