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

pcat2015 2015-04-09 10:24:26
[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

怎么破,求助
...全文
336 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomashtq 2015-04-14
  • 打赏
  • 举报
回复
加载到内存的数据量太大导致的。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧