本文主要是介绍surprise库协同过滤做音乐推荐实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://surprise.readthedocs.io/en/stable/index.html
推荐系统Python实现库
https://github.com/NicolasHug/Surprise
文档
https://surprise.readthedocs.io/en/stable/index.html
加载数据集合
from __future__ import (absolute_import, division, print_function, unicode_literals)
import os
import iofrom surprise import KNNBaseline, Reader
from surprise import Datasetimport pickle as pickle
# 重建歌单id到歌单名的映射字典
id_name_dic = pickle.load(open("./recommend/playlist.pkl","rb"))
print("加载歌单id到歌单名的映射字典完成...")
# 重建歌单名到歌单id的映射字典
name_id_dic = {}
for playlist_id in id_name_dic:name_id_dic[id_name_dic[playlist_id]] = playlist_id
print("加载歌单名到歌单id的映射字典完成...")file_path = os.path.expanduser('./recommend/163_music_suprise_format.txt')
# 指定文件格式
reader = Reader(line_format='user item rating timestamp', sep=',')
# 从文件读取数据
music_data = Dataset.load_from_file(file_path, reader=reader)
# 计算歌曲和歌曲之间的相似度
print("构建数据集...")
trainset = music_data.build_full_trainset()
#sim_options = {'name': 'pearson_baseline', 'user_based': False}
开始训练 找出用户最近邻居
"""
模板之查找最近的user(在这里是歌单)
根据用户的协同过滤算法
找到用户最相近的一些函数
选取KNNBaseline算法训练
找到最近的User 歌单https://surprise.readthedocs.io/en/stable/index.html
推荐系统Python实现库
https://github.com/NicolasHug/Surprise
文档
https://surprise.readthedocs.io/en/stable/index.html
"""
print("开始训练模型...")
#sim_options = {'user_based': False}
#algo = KNNBaseline(sim_options=sim_options)
algo = KNNBaseline()
algo.fit(trainset)current_playlis
这篇关于surprise库协同过滤做音乐推荐实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!