私は python の初心者ですが、ガイドブックで提供されている例を繰り返そうとすると、いくつかの問題があります。この例は、推奨アルゴリズムに関するものです。この例では、特定のアイテムを評価したユーザーを格納するアイテム リストを実装しようとしています。これはコードです(python 2.7)
def UserSimilarity(train):
#build inverse table for item_users
item_users=dict()
for u,items in train.items():
for i in items.keys():
if i not in item_users:
item_users[i]=set()
item_users[i].add(u)
#calculate co-rated items between users
C=dict()
N=dict()
for i, users in item_users.items():
print i,users
#print N[u]
for u in users:
N[u]=N[u]+1
print N[u]
for v in users:
print C[u][v]
if u==v:
continue
C[u][v]=C[u][v]+1
#calculate finial similarity matrix W
W=dict()
for u, related_users in C.items():
for v, cuv in related_users.items():
W[u][v]=cuv/math.sqrt(N[u]*N[v])
return W
ps: 「train」のデータ形式は辞書などです{UserId1:{ItemId1:Ratings1,ItemId2,Rating2,...},...}
私が出会った問題は、
Traceback (most recent call last):
File "D:\Users\Administrator\workspace\GroupLens\src\test3.py", line 82, in <module>
UserSimilarity(train_dic)
File "D:\Users\Administrator\workspace\GroupLens\src\test3.py", line 66, in UserSimilarity
N[u]=N[u]+1
KeyError: '3'
私はそれを改善する方法がわからないので、誰かが私を助けてくれることを願っています! どうもありがとう!!