Как правильно использовать функции оценки mllib на фрейме данных? - PullRequest
0 голосов
/ 18 января 2020

Это может быть глупый вопрос, но как правильно использовать библиотеку оценки mllib с фреймами данных? Глядя на документы, кажется, только будет модулем оценки для API на основе СДР . Пытаясь следовать документам , чтобы использовать модуль оценки СДР с кадрами данных, я имею ...

# preds = <some dataframe with predictions, labels, and some other metadata fields>
predictionsAndLablels = preds.rdd.map(lambda row: (row[model.predictionCol], row[model.labelCol]))
print(type(predictionsAndLablels))
metrics = MulticlassMetrics(predictionsAndLablels)
print(metrics.confusionMatrix())
print(metrics)

и вижу ...

<class 'pyspark.rdd.PipelinedRDD'>
Traceback (most recent call last):
....
packages/py4j/protocol.py", line 332, in get_return_value
    format(target_id, ".", name, value))
py4j.protocol.Py4JError: An error occurred while calling o1540.__getstate__. Trace:
py4j.Py4JException: Method __getstate__([]) does not exist
....

Новое в pyspark, так что эти ошибки на самом деле ничего не сообщают мне.

Кто-нибудь с большим опытом здесь знает, как я могу заставить это работать? В чем именно заключается проблема (для меня, я думаю, все, что мне нужно для ввода, это СДР и я не могу точно сказать, на что жалуются ошибки)? Есть ли лучший способ сделать это (единственное, что я видел, что, кажется, использует фреймы данных Evaluators, и количество метрик, которые они могут предоставить, кажется намного более ограниченным (например, не может использовать, чтобы получить f2 балл))?

...