首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用购买频率加权品牌熵

用购买频率加权品牌熵
EN

Stack Overflow用户
提问于 2017-04-29 17:19:12
回答 1查看 143关注 0票数 2

我有每个客户的购买清单,我正在努力确定品牌忠诚度。基于这个列表,我计算了每个客户的品牌熵,我用它作为品牌忠诚度的代名词。例如,如果一个客户只购买brand_a,那么他们的熵将为0,并且他们非常忠诚于品牌。然而,如果客户购买brand_a、brand_b等,那么他们的熵就会很高,而且他们的品牌忠诚度也不高。

代码语言:javascript
复制
# Dummy Data
CUST_ID <- c("c_X","c_X","c_X","c_Y","c_Y","c_Z")
BRAND <- c("brand_a","brand_a","brand_a","brand_a","brand_b","brand_a")
PURCHASES <- data.frame(CUST_ID,BRAND)

# Casting from PURCHASES to grouped_by CUST_ID
library(plyr)
library(dplyr)
library(data.table)
ENTROPY <- PURCHASES %>%
  group_by(CUST_ID, BRAND) %>%
  summarise(count = n()) %>%
  dcast(CUST_ID ~ BRAND, value.var = "count")
ENTROPY[is.na(ENTROPY)] <- 0

# Calculating Entropy
library(entropy)
ENTROPY$entropy <- NA
for (i in 1:nrow(ENTROPY)){
  ENTROPY[i,4] <- entropy(as.numeric(as.vector(ENTROPY[i,2:3])), method="ML")
}

# Calculating Frequency
ENTROPY$frequency <- ENTROPY$brand_a + ENTROPY$brand_b
ENTROPY

然而,我的问题是熵不考虑每个客户的购买量。考虑以下情况:

1) Customer_X进行了3次采购,每次都是brand_a,其熵为0。

2) Customer_Z进行了1次购买,即brand_a,其熵为0。

当然,我们更确信Customer_XCustomer_Z更忠实于品牌。因此,我想用频率来衡量熵的计算。然而,Customer_X:0/3 = 0,Customer_Z:0/1 =0。

本质上,我希望找到一种聪明的方式,让Customer_X对我的品牌忠诚度有低价值,让Customer_Z拥有更高的价值。其中一个想法是使用购物车/决策树/随机森林模型,但如果可以使用聪明的数学来完成,这将是理想的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 11:04:48

我认为,你想要的指数是熵,用给定购买数量的熵的期望来规范。本质上,将一条曲线拟合成熵与购买数的关系图,然后将每个熵除以该曲线所给出的期望。

现在,这不能解决你的问题,超级忠诚的客户,其中有0熵。但我认为问题是微妙的不同:表面上的忠诚是由于机会(低计数)还是它是真实的?这是一个截然不同的问题,客户到底有多忠诚。本质上,你想知道观察这样一个数据点的概率。

如果0熵事件是您唯一的痛处,您可以从数据中计算出只购买一个品牌的概率。

或者,您可以确定熵和购买数量的完全联合概率分布(而不仅仅是均值),例如通过密度估计,然后计算给定熵的条件概率,给定购买数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43698464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档