Coder-Yu / QRec

QRec: A Python Framework for quick implementation of recommender systems (TensorFlow Based)
1.58k stars 406 forks source link

如何配置evaluation.setup下的-predict参数 #272

Closed studycell closed 1 year ago

studycell commented 1 year ago

老师好,我在配置conf文件时遇到如下错误,希望老师给予帮助 我将UserKNN.conf配置如下所示:

ratings=./dataset/RSBD/training.txt
ratings.setup=-columns 0 1 2
model.name=UserKNN
evaluation.setup=-predict ./dataset/RSBD/test.txt
item.ranking=off -topN -10
similarity=pcc
num.neighbors=20
output.setup=on -dir ./results/

./dataset/RSBD/test.txt是课程作业中提供的test.txt,部分如下所示:

81
399
890
385
751
34
...

我期望生成测试集内的用户的 top-10 预测结果,但程序运行报错如下所示:

/Users/caizhen/opt/anaconda3/envs/qrec/bin/python /Users/caizhen/Downloads/QRec-master/main.py 
================================================================================
   QRec: An effective python-based recommendation model library.   
================================================================================
Generic Recommenders:
1. UserKNN        2. ItemKNN        3. BasicMF        4. SlopeOne        5. SVD
6. PMF            7. SVD++          8. EE             9. BPR             10. WRMF
11. ExpoMF
MF-based Social Recommenders:
s1. RSTE          s2. SoRec         s3. SoReg         s4. SocialMF       s5. SBPR
s6. SREE          s7. LOCABAL       s8. SocialFD      s9. TBPR           s10. SERec
Network Embedding based Recommenders:
a1. CoFactor      a2. CUNE-MF       a3. CUNE-BPR      a4. IF-BPR
DNNs-based Recommenders:
d1. APR           d2. CDAE          d3. DMF           d4. NeuMF           d5. CFGAN
d6. IRGAN         d7. RSGAN
GNNs-based Recommenders:
g1. NGCF          g2. LightGCN        g3. ESRF        g4. DHCF            g5. DiffNet
Self-Supervised Recommenders:
q1. SGL           q2. SEPT            q3. BUIR        q4. MHCN            q5. SimGCL
Basic Methods:
b1. UserMean      b2. ItemMean      b3. MostPopular   b4. Rand
================================================================================
please enter the number of the model you want to run:1
loading training data...
loading user List...
Reading data and preprocessing...
Model: UserKNN
Ratings dataset: /Users/caizhen/Downloads/QRec-master/dataset/RSBD/training.txt
Training set size: (user count: 942, item count 1412, record count: 44234)
Test set size: (user count: 926, item count 0, record count: 926)
================================================================================
Specified Arguments of UserKNN:
num.neighbors: 20
similarity: pcc
================================================================================
Initializing model [1]...
Computing user similarities...
progress: 0 / 926
progress: 100 / 926
progress: 200 / 926
progress: 300 / 926
progress: 400 / 926
progress: 500 / 926
progress: 600 / 926
progress: 700 / 926
progress: 800 / 926
progress: 900 / 926
The user similarities have been calculated.
Building Model [1]...
Predicting [1]...
Traceback (most recent call last):
  File "/Users/caizhen/Downloads/QRec-master/main.py", line 56, in <module>
    recSys.execute()
  File "/Users/caizhen/Downloads/QRec-master/QRec.py", line 114, in execute
    eval(recommender).execute()
  File "/Users/caizhen/Downloads/QRec-master/base/recommender.py", line 207, in execute
    self.evalRatings()
  File "/Users/caizhen/Downloads/QRec-master/base/recommender.py", line 101, in evalRatings
    user,item,rating = entry
ValueError: not enough values to unpack (expected 3, got 2)

Process finished with exit code 1
Coder-Yu commented 1 year ago

hi, 这个-predict选项是只有item ranking的算法才支持的,rating prediction的不支持。你可以试试bpr 如果提醒import tensorflow错误,你把这行注释掉 用cpu版的跑就行

studycell commented 1 year ago

感谢老师的回复,bpr等其他几个算法是能够成功运行-predict的