用MovieLens数据集做推荐(Python推荐系统二)
2016-11-29 21:16
369 查看
思路:下载MovieLens的数据集,对数据集进行函数定义,定义各数据列的名称,根据上一篇Python写出简单的推荐系统(一) 文中的recommendations.py
的用户相似度进行推荐。
下载MovieLens的地址:http://grouplens.org/datasets/movielens/
(选择ml-100k.zip), 下载后的路径可以是和recommendations.py相同,也可是任意Python下面的其他地方,后面会针对两种情况做相关说明。
将下列Python 代码添加到之前recommendations.py 里面:
[python] view
plain copy
def loadMovieLensTrain(filename='u1.base'):
str1 ='./ml-100k/'
#加载数据
prefs={}
for line in open(str1+filename,'r'):
(user,movieid,rating,ts)=line.split('\t')
prefs.setdefault(user,{})
prefs[user][movieid]=float(rating)
return prefs
def loadMovieLensTest(filename='u1.test'):
str1 ='./ml-100k/'
#加载数据
prefs={}
for line in open(str1+filename,'r'):
(user,movieid,rating,ts)=line.split('\t')
prefs.setdefault(user,{})
prefs[user][movieid]=float(rating)
return prefs
if __name__=="__main__":
print ("""这个部分可以进行上面2个函数测试""")
trainDict= loadMovieLensTrain()
testDict = loadMovieLensTest()
print (len(trainDict))
print (len(testDict))
print ("""测试通过""")
这里的str1=’./ml-100k/’ 表明的是相对路径,此时的ml-100文件夹必须是和recommendations.py 文件一个路径。如果不在一个路径,因为运行的最终是recommendations.py文件,所以用的是ml-100k 全路径名,例如:
str1:’E:/Python/ml-100k’
先运行进行了更新的recommendations.py 文件,得到测试的结果:
>>>
这个部分可以进行上面2个函数测试
943
459
测试通过
表明函数式正确的,如果出现提示说’u1.base’ 或’u1.test’的格式不能读取,则可用Notepad++ 修改格式。(具体见Notepad++修改文件编码格式)
查看loadMovieLensTrain里的列表
>>> import recommendations
>>> prefs =recommendations.loadMovieLensTrain()
>>> prefs['1']
返回所有对应的评分数据列表
对id号为1的用户推荐三个物品:
>>>recommendations.getRecommendations(prefs,'1')[0:3]
[(5.000000000000001, '1293'), (5.0,'1653'), (5.0, '1599')]
参考资料:http://blog.csdn.net/database_zbye/article/details/8664516
的用户相似度进行推荐。
下载MovieLens的地址:http://grouplens.org/datasets/movielens/
(选择ml-100k.zip), 下载后的路径可以是和recommendations.py相同,也可是任意Python下面的其他地方,后面会针对两种情况做相关说明。
将下列Python 代码添加到之前recommendations.py 里面:
[python] view
plain copy
def loadMovieLensTrain(filename='u1.base'):
str1 ='./ml-100k/'
#加载数据
prefs={}
for line in open(str1+filename,'r'):
(user,movieid,rating,ts)=line.split('\t')
prefs.setdefault(user,{})
prefs[user][movieid]=float(rating)
return prefs
def loadMovieLensTest(filename='u1.test'):
str1 ='./ml-100k/'
#加载数据
prefs={}
for line in open(str1+filename,'r'):
(user,movieid,rating,ts)=line.split('\t')
prefs.setdefault(user,{})
prefs[user][movieid]=float(rating)
return prefs
if __name__=="__main__":
print ("""这个部分可以进行上面2个函数测试""")
trainDict= loadMovieLensTrain()
testDict = loadMovieLensTest()
print (len(trainDict))
print (len(testDict))
print ("""测试通过""")
这里的str1=’./ml-100k/’ 表明的是相对路径,此时的ml-100文件夹必须是和recommendations.py 文件一个路径。如果不在一个路径,因为运行的最终是recommendations.py文件,所以用的是ml-100k 全路径名,例如:
str1:’E:/Python/ml-100k’
先运行进行了更新的recommendations.py 文件,得到测试的结果:
>>>
这个部分可以进行上面2个函数测试
943
459
测试通过
表明函数式正确的,如果出现提示说’u1.base’ 或’u1.test’的格式不能读取,则可用Notepad++ 修改格式。(具体见Notepad++修改文件编码格式)
查看loadMovieLensTrain里的列表
>>> import recommendations
>>> prefs =recommendations.loadMovieLensTrain()
>>> prefs['1']
返回所有对应的评分数据列表
对id号为1的用户推荐三个物品:
>>>recommendations.getRecommendations(prefs,'1')[0:3]
[(5.000000000000001, '1293'), (5.0,'1653'), (5.0, '1599')]
参考资料:http://blog.csdn.net/database_zbye/article/details/8664516
相关文章推荐
- 用MovieLens数据集做推荐(Python推荐系统二)
- 推荐系统-基于用户的最近邻协同过滤算法(MovieLens数据集)
- 数据挖掘-matlab实现基于MovieLens数据集的协同过滤电影推荐系统
- 推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较
- 推荐系统-基于用户的最近邻协同过滤算法(MovieLens数据集)
- 推荐系统Cr 4000 ab for Python2.7的搭建
- ubuntu14.04下python2.7推荐系统Crab搭建
- Python的系统管理_09_python_email处理 推荐
- 使用Python MrJob的MapReduce实现电影推荐系统
- 用python写一个简单的推荐系统
- Python 系统时间与Mysql时间对比 推荐
- 通过Python脚本理解系统进程间通信 推荐
- 用python写一个简单的推荐系统
- 【Shell/Python】CentOS 6.X 系统初始化生产脚本 推荐
- 利用Python进行数据分析---ch02《MovieLens 1M数据集(下)》读书笔记
- User Base协同过滤的推荐系统,python实现
- <数据挖掘><python><一个小的推荐系统示例>
- 通过Python脚本理解系统线程 推荐
- GPFS通用并行文件系统之python自动部署gpfs集群 推荐
- 基于用户协同过滤的推荐系统算法,python 实现