python - 我想创建一个简单的电影推荐系统,其中 Y(i,j)=第 j 个用户评分的电影,如果电影已评分,则 R(i,j)=1,否则 r(i,j)=0

标签 python numpy machine-learning tensorflow tensor

import tensorflow as tf
import pymatlab as mat
import numpy as np
import matplotlib.pyplot as plt
import scipy.io


mat=scipy.io.loadmat('ex8_movies.mat')
Y=mat['Y']
R=mat['R']
plt.interactive(False)
#plt.plot(Y)
#plt.show()

print(Y[R==1])
#print(Y[R==0])

r=tf.constant(R,dtype=tf.float32)
params=scipy.io.loadmat('ex8_movieParams.mat')
num_users = params['num_users']
num_movies =params['num_movies']
num_features=params['num_features']

print("shape of Y:",np.shape(Y))
print(num_users)
print(num_movies)
x=np.random.rand(1682,2)

X=tf.placeholder(tf.float32,([1682 ,2]))
#X=tf.Variable(tf.zeros([1682,943]),dtype=tf.float32)
thetas=tf.Variable(tf.zeros([943,2]),dtype=tf.float32)
y=tf.placeholder(tf.float32,[1682 ,943])
sess=tf.InteractiveSession()
init = tf.global_variables_initializer()
sess.run(init)
#print((np.transpose(thetas)))
j_temp=tf.square(tf.matmul(X,tf.transpose(thetas))- y)
j_temp=j_temp([R==1])
cost=tf.reduce_mean(tf.reduce_sum(j_temp))

optimizer=tf.train.GradientDescentOptimizer(0.09).minimize(cost)
sess.run(j_temp,{X:x,y:Y})
#sess.run(j_tmp)
sess.run(cost)

print("slodvhbdfh\n\n")
print(Y[R==0])

我想创建一个简单的电影推荐系统,其中 Y(i,j)=第 j 个用户评价的第 i 个电影,如果电影已被评级,则 R(i,j)=1,否则 r(i,j)= 0 我收到错误:

"C:\Python\python interpreter\pythonw.exe" C:/Python/Projects/recommend.py

[5 4 4 ..., 2 3 3]
shape of Y: (1682, 943)
[[943]]
[[1682]]

File "C:/Python/Projects/recommend.py", line 38, in <module>
j_temp=j_temp([R==1])
TypeError: 'Tensor' object is not callable

Process finished with exit code 1

最佳答案

identifier(arguments) 是调用函数的 Python 语法。您尝试使用张量来执行此操作,但张量不是函数 - 您无法调用它。你想做什么?我无法判断,因为您没有在文本、注释甚至有用的变量名称中提供任何描述。

此外,构造“[R==1]”不是合法的 Python。如果您尝试获取该用户的所有评分电影,则需要查看将过滤器应用于张量的语法。这些关键字应该会引导您找到答案。

关于python - 我想创建一个简单的电影推荐系统,其中 Y(i,j)=第 j 个用户评分的电影,如果电影已评分,则 R(i,j)=1,否则 r(i,j)=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45016766/

相关文章:

python - 在 Pandas/Python 中合并从一个点开始的所有列

Python Struct 模块行为异常

python - 了解 scikit CountVectorizer 中的 min_df 和 max_df

Python打印函数多次输出

Python打印保持在同一行

python - 提高 kNN 分类器的性能(速度)

python - 用另一个索引多维数组的多个维度 - NumPy/Python

python - 无法重置轴

python - 如何为分类值列表的列创建嵌入

python - PyTorch - 自定义 ReLU 平方实现