PySpark Model.transform, возвращающий NaN - PullRequest
0 голосов
/ 13 марта 2019

У меня есть рейтинг данных как

ratings.show(10)

+----+------+----+
|item|rating|user|
+----+------+----+
|   0| 290.0|   0|
|   1| 112.0|   1|
|   2|  87.8|   2|
|   3|  69.7|   3|
|   4|  65.7|   4|
|   5|  62.0|   5|
|   6|  61.6|   6|
|   7|  60.7|   7|
|   8|  57.7|   8|
|   9|  56.2|   9|
+----+------+----+
only showing top 10 rows

Обратите внимание, что рейтинг неявный .

Я применил ALS алгоритм для совместной фильтрации в порядкесоздать свою модель.

(training, test) = ratings.randomSplit([0.8, 0.2])
als = ALS(rank=5, maxIter=5, alpha = 1.0, 
      implicitPrefs=True, seed=0)
model = als.fit(training)

После обучения я хотел бы делать прогнозы, используя model.transform .

predicitons = model.transform(test)

Но прогнозирование - это NaN, как показано ниже:

+----+------+----+----------+
|item|rating|user|prediction|
+----+------+----+----------+
| 897|   6.8| 897|       NaN|
| 137|  18.6| 137|       NaN|
| 255|  14.0| 255|       NaN|
| 481|   9.6| 481|       NaN|
| 133|  18.7| 133|       NaN|
| 513|   9.3| 513|       NaN|
| 633|   8.3| 633|       NaN|
| 673|   8.0| 673|       NaN|
| 593|   8.6| 593|       NaN|
| 108|  20.7| 108|       NaN|
+----+------+----+----------+ 
...