sparkify 会员用户流失预测

项目概览

sparkify是一个类似于网易云音乐、QQ音乐等提供数字音乐服务的平台。用户类型有带广告的免费用户、会员用户。 会员用户每月支付固定费用免费听歌。任何时候,用户可以自己升级为会员用户或者降级为免费用户。用户的每次操作,例如播放歌曲、点赞、登录、登出、升级、降级等都会产生数据,这些数据包含了能让用户满意并帮助sparkify业务蓬勃发展的关键信息。
  数据集来源于Udacity,完整的数据集大小为12GB。本项目基于完整数据集的一个子集,大小为231MB,预测哪些用户从会员降级为免费,或者直接取消服务了。如果在用户离开之前,可以精确识别到这些用户,sparkify可以通过给用户打折或者其他激励方式留住用户,这样就可以挽救数百位的营业额。数据集链接
用户路径:

  • Register -> Submit Registration ->成为free用户,可以听歌、点赞、加好友等,带广告
  • free用户 -> Upgrade -> Submit Upgrade -> 成为paid用户,享受尊贵服务,无广告
  • paid用户 -> Downgrade -> Submit Downgrade -> 成为free用户
  • free, paid用户 -> Cancel -> Cancellation Confirmation -> 注销账户

解决方案

项目目标是要在用户离开之前,精确识别这些用户,通过打折或者其他激励措施留着用户,挽救营业额。通过历史数据,预测用户继续付费使用sparkify,还是流失,这是二元分类问题。具体解决思路如下:

  • paid用户才会为sparkify带来营业额,所以首先需要过滤掉免费用户
  • 根据用户路径,定义执行Submit Downgrade或者Cancellation Confirmation操作的用户为流失用户
  • 数据清理,处理数据集中数据缺失、异常值和数据格式问题
  • 数据集探索,对比会员用户与流失用户的行为,找出用户流失的潜在规律
  • 建模,使用机器学习中的分类模型,如SVM、决策树等,训练数据
  • 预测,使用训练好的模型,预测用户

评估指标

目标是找到流失用户,通过打折或者其他激励留住这些用户,另外把会员用户误识别为流失用户是有害的,因为打折或者激励会造成不必要的损失。使用F1 score作为评价指标,同时考虑精确率和召回率

数据加载与清理

spark = SparkSession \
    .builder \
    .appName("Sparkify") \
    .getOrCreate()
data = spark.read.json('medium-sparkify-event-data.json')

各字段含义如下:

  • artist: string, 歌手
  • auth: string, 登录状态
  • firstName: string, 用户名
  • gender: string, 用户性别
  • itemInSession: long, 页面停留时
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值