Как записать каждую эпоху RMSE, используя ALS в pyspark - PullRequest
0 голосов
/ 19 апреля 2020

По материалам учебника от pyspark. Я пытаюсь создать систему рекомендаций, используя pyspark с RMSE в качестве показателя оценки c. Я хотел бы записать RMSE для каждой эпохи обучения. Тем не менее, номер эпохи вводится, когда я создаю объект ALS, и кажется, что я могу напечатать значение RMSE только после завершения обучения. Могу ли я спросить, как я могу распечатать RMSE каждой эпохи, используя ALS из pyspark?

https://spark.apache.org/docs/latest/ml-collaborative-filtering.html

1 Ответ

0 голосов
/ 19 апреля 2020

Без воспроизводимого примера или структуры данных трудно указать c. Таким образом, я могу предложить вам кое-что о RMSE оттуда , но может потребоваться более подробная информация:

import pyspark.sql.functions as psf

def compute_RMSE(expected_col, actual_col, group_col):

  rmse = old_df.withColumn("squarederror",
                           psf.pow(psf.col(actual_col) - psf.col(expected_col),
                                   psf.lit(2)
                           ))
  .groupby(group_col)
  .agg(psf.avg(psf.col("squarederror")).alias("mse"))
  .withColumn("rmse", psf.sqrt(psf.col("mse")))

  return(rmse)

И вы могли бы вызвать такую ​​функцию (здесь некоторые подробности могут помочь более конкретно определить) c)

compute_RMSE("expectedcol", "realizedcol","epoch")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...