音乐服务流失用户预测

该项目通过分析音乐服务日志,预测用户流失,以采取挽留措施。使用Spark进行机器学习,包括数据加载、清洗、探索性数据分析、特征构建、建模预测,最终选用随机森林模型,并进行调优,提高预测的F1 Score。
摘要由CSDN通过智能技术生成

项目简介

项目数据集是一个音乐服务的用户日志,包含了用户信息,歌曲信息,用户活动,时间戳等。大小128M。需要通过数据集中信息,预测出可能流失的用户,以便后续对相应用户采取挽留措施

项目思路

为了预测可能流失的用户,对日志进行分析,探索并提取与用户流失相关的变量;根据变量,使用Spark建立机器学习模型进行预测。具如下:
1.加载所需的库并实例化
2.加载与清洗数据
3.探索性数据分析
4.构建预特征
5.建模预测
6.结论汇总

项目实现

1.加载所需的库并实例化

加载所需的库:

项目涉及的库
1、pyspark.sql:进行类似SQL操作
2、pyspark.ml:进行机器学习
3、pandas 、numpy:对dataframe操作
4、matplotlib、seaborn: 绘图
5、time:记录代码块运行时间的库

实例化
spark=SparkSession.builder.getOrCreate()

2.加载与清洗数据

加载数据集

原始数据集是json格式,由于需上传github,压缩为bz2格式。

df=spark.read.json('mini_sparkify_event_data.json.bz2')
评估数据集

对数据先查看整体情况,再查看重点希望了解的列的情况。
1、查看整体情况:
(1)查看数据前几行的值,了解数据集概况,对数据集有整体认识。主要使用show()函数
(2)查看列数、每列的名称以及类型,并结合以上了解每列的含义。主要使用printSchema()函数
(3)查看数据行数。主要使用.count()函数
通过以上观察,我们可了解到:数据集共有286500行,18列;主要包含了用户信息,歌曲信息,用户活动,时间戳等信息。变量含义推测如下:

 |-- artist: string (歌手)
 |-- auth: string (含义暂不明确)
 |-- firstName: string (名字)
 |-- gender: string (性别)
 |-- itemInSession: long (含义暂不明确)
 |-- lastName: string (姓氏)
 |-- length: double (听歌时长)
 |-- level: string (等级)
 |-- location: string (地区)
 |-- method: string (具体含义暂不明确)
 |-- page: string (页面)
 |-- registration: long (注册时间)
 |-- sessionId: long (页面ID)
 |-- song: string (歌名)
 |-- status: long (含义暂不明确)
 |-- ts: long (含义暂不明确)
 |-- userAgent: string (用户使用平台信息)
 |-- userId: string (用户ID)

2、查看某一列的值分布:
通过dropDuplicates()去重查看唯一值;sort对于有数值的进行排序,便于查看

df.select('userId').dropDuplicates().sort('userId').show()
+------+
|userId|
+------+
|      |
|    10|
|   100|
|100001|
|100002|
+------+
only showing top 5 rows

通过对各列进行查看,我们发现:
userId列存在非NA的空值,需要删除

清理数据集
处理空值

先通过dropna(),处理userId、sessionId列空值;

df_clean=df.dropna(how="any",subset=[
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值