
224
10
章 制限付きボルツマンマシンを用いた推薦システム
# Generate ratings matrix for train
ratings_train = np.zeros((n_users, n_movies))
for row in X_train.itertuples():
ratings_train[row[6]-1, row[5]-1] = row[3]
# Calculate sparsity of the train ratings matrix
sparsity = float(len(ratings_train.nonzero()[0]))
sparsity /= (ratings_train.shape[0] * ratings_train.shape[1])
sparsity *= 100
print('Sparsity: {:4.2f}%'.format(sparsity))
同様の行列を、検証セットとテストセットに対しても作る。これらは、当然だがさらにスパースにな
る。
# Generate ratings matrix for validation
ratings_validation = np.zeros((n_users, n_movies))
for row in X_validation.itertuples():
ratings_validation[row[6]-1, row[5]-1] = row[3]
# Generate ratings matrix ...