У меня есть такой фрейм данных:
user_id anime_id user_rating
0 1 20 7.808497
1 3 20 8.000000
2 5 20 6.000000
3 6 20 7.808497
4 10 20 7.808497
это похоже на базовый фрейм данных для игры с системой рекомендаций.
у меня было ~ 7 миллионов строк, я немного уменьшил кадр данных так:
df = df[df["user_id"] < 2000]
давайте напишем n_users, n_items, у меня было 1999 пользователей, конечно, и ~ 6000items
У меня 2 проблемы.
если я хочу построить свой тренировочный набор данных так:
ratings = np.zeros((n_users, n_items))
for row in df.itertuples():
ratings[row[1]-1, row[2]-1] = row[3]
У меня есть ошибка IndexE:
index 950 is out of bounds for axis 0 with size 949`
Я пробовал новые вещи со строкой [0] после комментария, это не работает:
X = urm[["user_id", "anime_id"]].as_matrix()
y = urm["user_rating"].values
n_u = len(urm["user_id"].unique())
n_m = len(urm["anime_id"].unique())
R = np.zeros((n_u, n_m))
for idx, row in enumerate(X):
R[row[0]-1, row[1]-1] = y[idx]
все та же ошибка IndexError.
если я передаю строку с строкой if в R.index: код возвращает только матрицу np.zeros