ユーザー間の類似度を計算したいが空の辞書に値を追加することはできない。ここでPythonの反復で空のネストされた辞書に値を追加する方法
は私のコードです:
data={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,
'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5},
'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5,
'Just My Luck': 1.5, 'The Night Listener': 3.0},
'Michael Phillips': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.0,
'Superman Returns': 3.5, 'The Night Listener': 4.0},
'Claudia Puig': {'Snakes on a Plane': 3.5, 'Just My Luck': 3.0,
'The Night Listener': 4.5, 'You, Me and Dupree': 2.5},
'Mick LaSalle': {'Just My Luck': 2.0, 'Lady in the Water': 3.0,'Superman
Returns': 3.0, 'The Night Listener': 3.0, 'You, Me and Dupree': 2.0},
'Jack Matthews': {'Snakes on a Plane': 4.0, 'The Night Listener': 3.0,
'Superman Returns': 5.0, 'You, Me and Dupree': 3.5},
'Toby': {'Snakes on a Plane':4.5,'You, Me and Dupree':1.0,'Superman
Returns':4.0}}
df = pd.DataFrame(data)`
def usersimilarity(df):
w = dict()
for u in df.keys():
for v in df.keys():
if u == v:
continue
w[u][v] =
len(set(df[u])&set(df[v]))/math.sqrt(len(df[u])*len(df[v])*1.0)
return w
コードの結果は何ですか?また、何を期待していますか?ところで、貼り付けるコードにいくつかのエラーがあります。 「列車」とは何ですか? –
私のせいです、すでに編集済みです。 – amy