spark高级数据分析系列之第三章音乐推荐和 Audioscrobbler 数据集

本文介绍了使用Spark的mllib库实现音乐推荐系统的过程,基于ALS算法处理Audioscrobbler数据集,包括数据预处理、模型训练和评估。重点讨论了数据结构、ALS模型的构建以及如何处理数据缺失值和ID转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1数据集和整体思路

数据集

本章实现的是歌曲推荐,使用的是ALS算法,ALS是spark.mllib中唯一的推荐算法,因为只有ALS算法可以进行并行运算。

使用数据集在这里,里面包含该三个文件

表一:user_artist_data.txt   包含该的是(用户ID、歌曲ID、用户听的次数)

  

表二:artist_data.txt   这个文件包含的是(歌曲ID,歌曲名字)


表三:artist_alias.txt   输入错误,或者不同某种原因,同一首歌曲可能具有不同ID,这个是歌曲勘误表(bad_id, good_id)

   

程序结构

第一步:对数据进行数据清理

        ALS要求输入的数据格式是(用户、产品、值),在本实验中就是(用户ID、歌曲ID、播放次数),也就是第一个文件user_artist_data.txt中的数据,但由于输入错误或者别的原因同一首歌曲有多个ID号,需要把一首歌曲的不同ID合并成一个ID(通过第三个文件artist_alias.txt)。表三artist_alias.txt文件中第一列是歌曲错误的ID,第二列是真正的ID,所以在把表一的歌曲ID通过表三来修正。同时表一中存在数据缺失,需要进行缺失处理。最后把数据结构化为(用户ID、歌曲ID、播放次数)

第二步:把数据传给ALS进行训练,并进行预测

       ALS接收到的数据(用户ID、歌曲ID、播放次数)转换为表格形式:

        每一行代表一个用户,每一列代表代表一首歌曲,表格数据是用户播放次数。由于一个用户所听的歌曲很有限,所以该表格是一个稀疏矩阵。ALS的做法是,把该矩阵转化为两个矩阵的相乘

        X矩阵是(用户ID-特征)矩阵,k值可以

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值