首页 > 编程语言 >基于协同过滤的音乐推荐算法实现

基于协同过滤的音乐推荐算法实现

时间:2024-01-19 15:01:21浏览次数:27  
标签:subset 协同 sub triplet song dataset 算法 过滤 user

基于协同过滤的音乐推荐算法实现

导入相关模块

import pandas as pd
import numpy as np
# import time
import sqlite3

读取、清洗数据

# 读取数据
triplet_dataset = pd.read_csv(filepath_or_buffer=data_home+'train_triplets.txt', 
                              sep='\t', header=None, 
                              names=['user','song','play_count'], nrows=50000)
#读取原始数据集
triplet_dataset = pd.read_csv(filepath_or_buffer=data_home+'train_triplets.txt',sep='\t', 
                              header=None, names=['user','song','play_count'])
# 只保留10W名用户的数据,其余过滤掉 排序后 前面的用户重要性远高于后面的用户的重要性
triplet_dataset_sub = triplet_dataset[triplet_dataset.user.isin(user_subset) ]
del(triplet_dataset)
# 只保留3W首歌曲的数据,其余也过滤掉
triplet_dataset_sub_song = triplet_dataset_sub[triplet_dataset_sub.song.isin(song_subset)]
del(triplet_dataset_sub)

基于歌曲相似度的推荐

算法实现如下:

# 为防止内存溢出,加快程序运行速度,只选取其中一些数据进行训练
song_count_subset = song_count_df.head(n=3000)
user_subset = list(play_count_subset.user)
song_subset = list(song_count_subset.song)
triplet_dataset_sub_song_merged_sub = triplet_dataset_sub_song_merged[triplet_dataset_sub_song_merged.song.isin(song_subset)]

# 查看一下数据
triplet_dataset_sub_song_merged_sub.head()

# 计算相似度得到推荐结果
train_data, test_data = train_test_split(triplet_dataset_sub_song_merged_sub, test_size = 0.30, random_state=0)
is_model = Recommenders.item_similarity_recommender_py()
is_model.create(train_data, 'user', 'title')
user_id = list(train_data.user)[7]
user_items = is_model.get_user_items(user_id)

得到的推荐结果如下:
image

结语

好了,今天的代码分享就到这了,明天见。

标签:subset,协同,sub,triplet,song,dataset,算法,过滤,user
From: https://www.cnblogs.com/wephiles/p/17974568

相关文章

  • 【计算机算法设计与分析】罗密欧与朱丽叶的迷宫问题(C++_回溯法)
    文章目录题目描述测试样例算法原理算法实现参考资料题目描述罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个mxn的迷宫中,如图所示。每一个方恪表示迷宫中的一个房间。这mxn个房间中有一些房间是封闭的。不允任何人进入。在迷宫中任何位置均可沿8个方向进入未封闭的房间。罗密......
  • RSA加密算法实现
    一、实验目的深度理解RSA算法的工作原理,查阅欧几里得扩展算法计算模运算的逆元,并编程序实现。学会生成不同大小的素数,体会模指数运算的困难性和模指数运算的快速算法。二、实验器材pycharm+python3.11三、实验内容1.实验要求:自己配置python环境,编写RSA算法实现程序,运行RSA程......
  • TSP 的遗传算法
    省流:不如模拟退火打OI的时候一直对乱搞很感兴趣,只是没时间学,现在算是弥补一下吧旅行商问题(TravelingSalesmanProblem,TSP):求无向图边权和最小的哈密顿回路#include<bits/stdc++.h>usingnamespacestd;constdoubleeps=1e-8;mt19937mt(20050827);intrnd(in......
  • DES加密算法实现
    实验要求:编写DES算法实现程序,运行DES程序,演示DES加密与解密的过程。在加密时显示明文和密钥,在加密过程中在每一轮执行完毕后显示该轮的输出。(话不多说,直接上代码!!!)实验代码:点击查看代码importbinascii****<details><summary>点击查看代码</summary></details>****class......
  • 基于矩阵分解的协同过滤算法
    引言随着互联网、大数据等新技术的迅速发展,人们的生活变得更加便捷,但同时也导致网络数据爆炸式增长。为了快速帮助用户找到感兴趣的内容,越来越多的研究者致力于推荐算法的研究,以提高推荐质量,向用户推荐更符合其喜好的内容。然而,目前的推荐算法仍存在数据稀疏性、隐私保护和冷启动......
  • java相似度算法计算
     publicclassCompareStrSimUtil{privatestaticintcompare(Stringstr,Stringtarget,booleanisIgnore){intd[][];//矩阵intn=str.length();intm=target.length();inti;//遍历str的intj;//遍历......
  • 文心一言 VS 讯飞星火 VS chatgpt (182)-- 算法导论13.4 6题
    六、用go语言,Skelton和Baron教授担心在RB-DELETE-FIXUP的情况1开始时,结点x.p可能不是黑色的。如果这两位教授是对的,则第5~6行就是错的。证明:x.p在情况1开始时必是黑色的,从而说明这两位教授没有担心的必要。文心一言:首先,我们需要理解RB-DELETE-FIXUP的情况1开始时,节点x.p......
  • 安防监控平台LntonAIServer视频汇聚平台明烟明火识别 烟火算法检测告警
    LntonAIServer视频汇聚平台是一款基于人工智能技术的安防监控平台。它能够实时监控和分析视频数据,通过烟火算法检测告警,为我们提供及时、准确的安全信息。无论是在家庭、办公室,还是在公共场所,都能使用LntonAIServer。明烟明火识别是LntonAIServer视频汇聚平台的一大亮......
  • 安防监控平台LntonAIServer视频汇聚平台烟火算法检测
    在这个科技日新月异的时代,我们的生活被各种高科技产品所包围。其中,人工智能技术的出现,更是让我们对未来充满了期待。今天,我要为大家介绍的是一款名为“LntonAIServer”的视频汇聚平台,它采用了一种名为“森林烟火算法”的技术,为我们的环境安全提供了有力的保障。“森......
  • 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)
    Adam优化算法在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多少有些质疑全新的优化算法,很多人都觉得动量(Momentum)梯度下降法很好用,很难再想出更好......