Перекрестная проверка с использованием Pyspark

#apache-spark #pyspark

#apache-spark #pyspark

Вопрос:

Я пытаюсь использовать перекрестную проверку при использовании spark, но она выдает ошибку:

 gbtClassifier = GBTClassifier(featuresCol= "features", labelCol="is_goal")
lr = LogisticRegression(featuresCol= "features" ,labelCol="is_goal")
pipelineStages = stringIndexers   encoders   [featureAssembler]
pipeline = Pipeline(stages=pipelineStages)

param_grid_lr = ParamGridBuilder().addGrid(lr.regParam, [0.1,0.01]).addGrid(lr.elasticNetParam, [0,0.5,1]).build()

crossval = CrossValidator(estimator=lr, estimatorParamMaps=param_grid_lr ,evaluator=BinaryClassificationEvaluator(), numFolds=3)

cross_model = crossval.fit(df_tr)
 

Исключение IllegalArgumentException: метка не существует. Доступно: event_type_str, event_team, shot_place_str, location_str, assist_method_str, situation_str, country_code, is_goal, event_type_str_idx, event_team_idx, shot_place_str_idx, location_str_idx, assist_method_str_idx, situation_str_idx, country_code_idx, event_type_str_vec, event_team_vec, shot_place_str_vec, location_str_vec, assist_method_str_vec, situation_str_vec, country_code_vec, функции, перекрестный идентификатор 2fc516202d9d_rand, необработанный прогноз, вероятность, прогнозирование

[вот на кого похожи мои функции 1

Ответ №1:

BinaryClassificationEvaluator По умолчанию ожидается, что вызывается столбец label label , как вы можете видеть из документации https://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.evaluation .BinaryClassificationEvaluator . Вам нужно будет указать rawPredictionCol и labelCol в соответствии со столбцами, указанными в вашем фрейме данных

Комментарии:

1. Спасибо! это сработало, я переименовал столбец ‘is_goal’ в label, и это сработало