RankingMetrics в Pyspark не работает должным образомPython

Программы на Python
Anonymous
RankingMetrics в Pyspark не работает должным образом

Сообщение Anonymous »

Привет, у меня есть такой pyspark df.

Код: Выделить всё

 ('recs', 'array'),
('model_pred_score', 'array'),
('ground_truth_score', 'array'),
('model_ranked_items', 'array'),
('actual_ranked_items', 'array')]
Где в списке есть список товаров размера n, рекомендуемых клиенту,, там будут как релевантные, так и нерелевантные товары, рекомендованные покупателю.< /p>

Код: Выделить всё

model_pred_score
— это прогнозируемая оценка по модели, которая имеет тип int, а ground_truth_score — это число с плавающей запятой, которое рассчитывается на основе взаимодействия; оно также может иметь 0, если cust вообще не взаимодействовал с элементом.
Теперь я отсортировал записи, в результате чего мы получили model_ranked_items и fact_ranked_items, которые представляют собой элементы, ранжированные на основе их оценок. Все они будут иметь одинаковый размер столбца массива Recs
Теперь я хочу вычислить NDCG и точность для этих элементов, поэтому я использую библиотеку RankingMetrics в такой питон.

Код: Выделить всё

predictions_and_labels_rdd = df_grp.rdd.map(lambda row: (row["model_ranked_items"], row["actual_ranked_items"]))
ranking_metrics = RankingMetrics(predictions_and_labels_rdd)

ranking_metrics.ndcgAt(10)
ranking_metrics.precisionAt(10)
Я не знаю, чего мне здесь не хватает, но я всегда получаю 1 по всем показателям. Позже я также добавил столбец релевантности для ndcg, но все равно получаю 1 по всем показателям.
Не следует ли мне добавлять нерелевантные элементы в ground_truth_set?

Подробнее здесь: https://stackoverflow.com/questions/786 ... s-expected

Вернуться в «Python»