python 做推荐算法,遇到MemoryError错误,求破

时间:2022-12-07 17:24:08
[code=python]
def ItemSim(self,train = None):
        train = train or self.traindata()
        Item_count = dict()  #浏览过每种物品的人数#
        ItemSimcount = dict()  #既浏览过i,又浏览过j的某人的时间加权#
        for users,items in train.items():
            for i,tui in items.items():
                Item_count.setdefault(i,0)
                Item_count[i] += 1
                for j,tuj in items.items():
                    if i == j:
                        continue
                    ItemSimcount.setdefault(users,{})
                    ItemSimcount[users].setdefault(i,{})
                    ItemSimcount[users][i].setdefault(j,0)
                    ItemSimcount[users][i][j] += 1
        self.ItemSimlist = dict()
        for user,rec in ItemSimcount.items():
            self.ItemSimlist.setdefault(user,{})
            for i ,related_items in rec.items():
                self.ItemSimlist[user].setdefault(i,{})
                for j, cij in related_items.items(): #cij:计算出的分子,存放喜欢i和j的某用户的时间加权# 
                    self.ItemSimlist[user][i].setdefault(j,0)
                    self.ItemSimlist[user][i][j] = cij / math.sqrt(Item_count[i] * Item_count[j] * 1.0)
        [code]
报错:
    cf.ItemSim()
  File "F:\PPractice\ml-100k\log.py", line 97, in ItemSim
    self.ItemSimlist[user][i].setdefault(j,0)
MemoryError

怎么破,求助

1 个解决方案

#1


加载到内存的数据量太大导致的。

#1


加载到内存的数据量太大导致的。