У меня есть файл CSV в следующем формате:Как создать рейтинг csr_matrix в scipy?
userId movieId rating timestamp
1 31 2.5 1260759144
2 10 4 835355493
3 1197 5 1298932770
4 10 4 949810645
Я хочу построить разреженную матрицу с рядами как USERID и столбцов, как movieID. Я сохранил все данные в качестве словаря с именем «column», где столбец ['user'] содержит идентификаторы пользователей, столбец ['movie'] имеет идентификаторы фильмов, а столбцы ['рейтинги'] имеют рейтинги следующим образом:
f = open('ratings.csv','rb')
reader = csv.reader(f)
headers = ['user','movie','rating','timestamp']
column = {}
for h in headers:
column[h] = []
for row in reader:
for h, v in zip(headers, row):
column[h].append(float(v))
Когда я называю разреженную матрицу-функцию, как:
mat = scipy.sparse.csr_matrix((column['rating'],(column['user'],column['movie'])))
Я получаю "TypeError: недопустимую форму"
Пожалуйста, помогите
Это не создает разреженную матрицу для строки, как пользователей, столбцов в качестве фильмов и [строки, столбца] в качестве оценки? Как мы можем создать разреженную матрицу с пользователем в виде строк, фильмов в виде столбца и рейтинга в качестве значения в [строке, столбце]? – shane
Исходная команда «mat = scipy.sparse.csr_matrix ((столбец ['rating'], (столбец ['user'], column ['movie'])))" был правильным, за исключением столбца ['user'], столбец ['rating'] и столбец ['movie'] должны были быть преобразованы в массив перед использованием функции. – Alice