Я хочу запустить spark.ml.recommendation als на spark 2.1.0 с pyspark, используя данные о посещении веб-страницы. У меня есть данные википедии, содержащие идентификатор пользователя, идентификатор страницы и счетчики. Данные состоят из 100000 строк. Вот характеристики моих данных:
+-------+------------------+
|summary| user-id|
+-------+------------------+
| count| 100000|
| mean| 24542.75736|
| stddev|21848.264794583836|
| min| 0|
| max| 68488|
+-------+------------------+
+-------+------------------+
|summary| page-id|
+-------+------------------+
| count| 100000|
| mean| 257.55426|
| stddev|265.56649346534084|
| min| 0|
| max| 1317|
+-------+------------------+
+-------+------------------+
|summary| cnt|
+-------+------------------+
| count| 100000|
| mean| 412.4471|
| stddev|4269.7557065972205|
| min| 11.0|
| max| 309268.0|
+-------+------------------+
Я разделил свои данные 80/20 для обучения и тестирования соответственно и попытался запустить als на своих данных, но результат оказался с NaN. Затем я нашел обходной путь и заставил его работать. После этого я попытался вычислить rmse по своим данным, результат был около 3000–4000 с некоторой комбинацией параметров.
Я прочитал несколько книг, статей и просмотрел несколько видеоуроков по этому поводу, но многие из них связаны с набором данных для кинообъективов, которые, как я вижу, основаны на рейтингах и не предлагают многого для моей проблемы. Я узнал, что мой случай называется неявная обратная связь и единственный пример, с которым я столкнулся с last.fm в книге. Однако я не мог получить от этого особую помощь.
Итак, мои вопросы:
1) Как обработать рекомендацию als по набору данных, в котором столбец рейтинга имеет гораздо более широкий диапазон, чем столбец в фильмах, который находится в диапазоне от 1 до 5?
Вот мой - от 11 до 309628.
2) Является ли rmse важным показателем в неявной обратной связи при принятии решения о правильности модели или нет?
3) Есть ли другие рекомендации по работе с такими данными при попытке запустить на них Spark-ML als?