item-cf改进

接之前的item-cf算法,又了解了一下numpy,pandas等内容后,有了更简单方便的求item-cf的思路,但是有个问题,由于数据量的关系,速度非常慢,下面这个方法虽然代码很简单,但在实际运行过程中非常慢。。。。

代码如下

from pandas import Series,DataFrame
import pandas as pd
import numpy as np
import pymysql
import codecs

db=pymysql.connect("localhost","root","","douban")
cursor=db.cursor()
sql="select distinct bookID,uri,rating from comments;"
cursor.execute(sql)
data=cursor.fetchall()
db.close()
frame=DataFrame()
for item in data:
    frame.loc[item[1],item[0]]=item[2]
	print(item)
print('all data in')
__=frame.fillna(0,inplace=True)
corr=frame.corr()
print('finished counting')
corr.to_csv('testDemo.csv')
print('finished saving')
主要变化是依靠DataFrame动态扩张的特性,直接从数据库读取数据写入frame

然后使用DataFrame的corr()函数直接求相关系数。
就是这样,最后输出testDemo.csv就是一个各书籍间的相关系数列表。

但是由于非常慢,所以目前还未得到结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值