#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, и это сработало