Я получаю следующую ошибку при расчете сходства косинусов с учетом разреженных данных матрицы. Не могли бы вы помочь мне исправить это?
Traceback (последний вызов был последним): Файл "C: \ Users \ visha\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ nose \ case.py ", строка 197, в файле runTest self.test (* self.arg), файл" C: \ Users \ visha \ introds \ test3.py", строка 70, в test_pairwise_item_sim S = pairwise_item_sim (R) Файл" C: \ Users \ visha \ introds \ problem3.py ", строка 60, в pairwise_item_simдля *: 'NoneType' и 'NoneType'
Ввод: R: матрица рейтинга, матрица с плавающей запятой формы m на n.Здесь m - количество фильмов (предметов), n - количество пользователей.R [i, j] представляет рейтинг j-го пользователя в i-ом фильме, и рейтинг может быть 1,2,3,4 или 5, если R [i, j] отсутствует (еще не оценено), тогда R [i, j] = Нет
Вывод: S: матрица попарного сходства между элементами, матрица с обтеканием формы m на m S [i, j] представляет косинусное сходство между элементом i и элементом j на основена их пользовательских рейтингах.
[код]
def pairwise_item_sim(R):
similarity = R.dot(R.T)
square_mag = np.diag(similarity)
inv_square_mag = 1 / square_mag
inv_square_mag[np.isinf(inv_square_mag)] = 0
inv_mag = np.sqrt(inv_square_mag)
cosine = similarity * inv_mag
S = cosine.T * inv_mag