Как стандартизировать данные для ALS Implicit = true - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю исключение Spark при выполнении fit () в моем наборе обучающих данных.В этом исключении недостаточно информации для расшифровки вопроса.

Я последовал примеру, который нашел с помощью этой формулы (Вес - Вес означает) / Вес стандартного ввода.Значение помещается в столбец с именем weight_scaled.Вот часть моего учебного набора данных:

+ ------ + ------- + ------- + ----------------- + ----------------- + ------------------- + | UserId | VideoId |Вес |mean_weight |stddev_weight |weight_scaled |+ ------ + ------- + ------- + ----------------- + ----------------- + ------------------- + |0 |2 |163267 | +602429,5707184518 | 345923,7772489472 | -1,2695356595924439 ||0 |3 |794447 | 602429,5707184518 | 345923,7772489472 |0,5550859521962296 ||1 |1 |851589 | +602429,5707184518 | 345923,7772489472 |0,7202726313381991 ||2 |2 |986385 | +602429,5707184518 | +345923,7772489472 |1,1099422894114366 ||2 |3 |2461 | 602429,5707184518 | 345923,7772489472 |-1.734395292193745 |

Мой код: ALS als = new ALS () .setMaxIter (5) .setRegParam (0.01) .setUserCol ("UserId") .setItemCol ("VideoId") .setImplicitPrefs (true).setRatingCol ("weight_scaled");

ALSModel модель = als.fit (обучение);

Исключение составляет:

org.apache.spark.ml.optim.SingularMatrixException: LAPACK.dppsv вернул 7, потому что A не является положительно определенным.Получается ли A из единственной матрицы (например, значения коллинеарного столбца)?в org.apache.spark.mllib.linalg.CholeskyDecomposition $ .checkReturnValue (CholeskyDecomposition.scala: 65) ~ [spark-mllib_2.11-2.3.1.jar: 2.3.1]

...