大数据【企业级360°全方位用户画像】基于RFE模型的挖掘型标签开发

本文介绍了RFE模型在企业级360°用户画像中的应用,作为RFM模型的变体,RFE基于用户访问时间、频率和互动度评估用户活跃度。通过RFE得分进行用户群体划分和活跃度价值分析,利用K-Means聚类确定最佳K值。文中还探讨了肘部法则在确定K值中的作用。
摘要由CSDN通过智能技术生成

        上一篇博客,已经为大家介绍了基于RFM(用户价值模型)的挖掘型标签开发过程(👉大数据【企业级360°全方位用户画像】基于RFM模型的挖掘型标签开发),本篇博客,我们来学习基于RFE(用户活跃度模型)的挖掘型标签开发。

在这里插入图片描述


RFE模型引入

        在正式开始实现需求之前,肯定要给各位朋友们解释下。

        RFE模型可以说是RFM模型的变体 RFE模型基于用户的普通行为(非转化或交易行为)产生,它跟RFM类似都是使用三个维度做价值评估。

RFE详解

        RFE 模型是根据会员最近一次访问时间R( Recency)、访问频率 F(Frequency)和页面互动度 E(Engagements)计算得出的RFE得分。 其中:

  • 最近一次访问时间 R( Recency): 会员最近一次访问或到达网站的时间。
  • 访问频率 F( Frequency):用户在特定时间周期内访问或到达的频率。
  • 页面互动度 E( Engagements):互动度的定义可以根据不同企业或行业的交互情况而定,例如可以定义为页面 浏览时间、浏览商品数量、视频播放数量、点赞数量、转发数量等

        在RFE模型中,由于不要求用户发生交易,因此可以做未发生登录、 注册等匿名用户的行为价值分析, 也可以做实名用户分析。该模型常用来做用户活跃分群或价值区分, 也可用于内容型(例如论坛、新闻、资讯等)企业的会员分析。

        RFM和 RFE模型的实现思路相同, 仅仅是计算指标发生变化。 对于RFE的数据来源, 可以从企业自己监控的用户行为日志获取,也可以从第三方网站分析工具获得。

基于RFE模型的实践应用

        在得到用户的RFE得分之后, 跟 RFM 类似也可以有两种应用思路:

        1:基于三个维度值做用户群体划分和解读,对用户的活跃度做分析。 RFE得分为 313 的会员说明其访问频率低, 但是每次访问时的交互都非常不错, 此时重点要做用户回访频率的提升,例如通过活动邀请、 精准广告投放、会员活动推荐等提升回访频率。

        2:基于RFE的汇总得分评估所有会员的活跃度价值,并可以做活跃度排名; 同时,该得分还可以作为输入维 度跟其他维度一起作为其他数据分析和挖掘模型的输入变量,为分析建模提供基础。

        比如:

  • 6忠诚 (1天内访问2次及以上,每次访问页面不重复)
  • 5活跃 (2天内访问至少1次)
  • 4回流 (3天内访问至少1次)
  • 3新增 (注册并访问)
  • 2不活跃 (7天内未访问)
  • 1流失 (7天以上无访问)

具体代码实现

        大家看到这里,应该都发现了,RFE模型和之前我们介绍过的RFM模型非常类似,只不过一个是用户价值模型,一个是用户活跃度模型。

        因为同为挖掘型标签的开发,所以流程上大部分的内容都是相似的,下面博主就不详细分步骤介绍了😅,关于代码中有任何的疑惑,可以私信联系我哟~

import com.czxy.base.BaseModel
import org.apache.spark.ml.clustering.{
   KMeans, KMeansModel}
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.sql.expressions.UserDefinedFunction
import org.apache.spark.sql.{
   Column, DataFrame, SparkSession, functions}

import scala.collection.immutable

/*
 * @Author: Alice菌
 * @Date: 2020/6/24 08:25
 * @Description: 

       用户的活跃度标签开发
 */
object RFEModel extends BaseModel{
   

  override def setAppName: String = "RFEModel"

  override def setFourTagId: String = "176"

  override def getNewTag(spark: SparkSession, fiveTagDF: DataFrame, hbaseDF: DataFrame): DataFrame = {
   

    // 展示MySQL的五级标签数据
    fiveTagDF.show()
    //+---+----+
    //| id|rule|
    //+---+----+
    //|177|   1|
    //|178|   2|
    //|179|   3|
    //|180|   4|
    //+---+----+

    // 展示HBase中的数据
    hbaseDF.show(false)
    //+--------------+--------------------+-------------------+
    //|global_user_id|             loc_url|           log_time|
    //+--------------+--------------------+-------------------+
    //|           424|http://m.eshop.co...|2019-08-13 03:03:55|
    //|           619|http://m.eshop.co...|2019-07-29 15:07:41|
    //|           898|http://m.eshop.co...|2019-08-14 09:23:44|
    //|           642|http://www.eshop....|2019-08-11 03:20:17|

    //RFE三个单词
    //最近一次访问时间R
    val recencyStr: String = "recency"
    //访问频率 F
    val frequencyStr: String = "frequency"
    //页面互动度 E
    val engagementsStr: String = "engagements"

    // 特征单词
    val featureStr: String = "feature"  // 向量
    val predictStr: String = "predict"  // 分类
    // 计算业务数据
    // R(会员最后一次访问或到达网站的时间)
    // F(用户在特定时间周期内访问或到达的频率)
    // E(页面的互动度,注意:一个页面访问10次,算1次)

    // 引入隐式转换
    import spark.implicits._
    //引入java 和scala相互转换
    import scala.collection.JavaConverters._
    //引入sparkSQL的内置函数
    im
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值