item-cf改进

来源:互联网 发布:专业网络公关 编辑:程序博客网 时间:2024/06/06 12:54

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

代码如下

from pandas import Series,DataFrameimport pandas as pdimport numpy as npimport pymysqlimport codecsdb=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就是一个各书籍间的相关系数列表。

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