渠道归因(二)基于马尔可夫链的渠道归因

渠道归因(二)基于马尔可夫链的渠道归因

在应用当中,序列中的每个点通常映射为一个广告触点,每个触点都有一定概率变成真正的转化。通过这种建模,可以选择最有效,概率最高的触点路径。这种方法需要较多的数据,计算也比较复杂。本文主要参考自python实现马尔可夫链归因

马尔可夫链是一个过程,它映射运动并给出概率分布,从一个状态转移到另一个状态。马尔可夫链由三个属性定义:

  • 状态空间:处理可能存在的所有状态的集合
  • 转移概率:从一个状态转移到另一个状态的概率
  • 当前状态分布 :在过程开始时处于任何一个状态的概率分布

那么用户行为路径中的每个渠道可以看作这里的每个状态。在知道状态空间的情况下,所求的渠道贡献率就是每条路径的转移概率。所以马尔可夫链模型可以用来做归因分析。

MarkovAttribution方法

# pip install MarkovAttribution
import pandas as pd
from markovattribution import MarkovAttribution

本文所有数据如果有需要的同学可关注公众号HsuHeinrich,回复【数据挖掘-渠道归因】自动获取~

# 读取数据
df = pd.read_csv('./Markov/paths.csv')
df.head()

image-20230206154250062

这个方法对数据格式有自己的要求

  • 最后一列为是否转化,列名固定为conv_flag,枚举值为(‘null’ or 空【即NaN】、‘conv’)

  • 首列至倒数第二列为渠道流转路径,缺失为空

# 模型拟合
attribution = MarkovAttribution()
ma = attribution.fit(df)
# 输出结果
for key, value in ma['Markov Values'].items():
    print (key.ljust(15), round(value,2))
EMAIL           56.31
SOCIAL          57.56
PROGRAMMATIC    50.55
YOUTUBE         32.08
SEM             48.49

ChannelAttribution方法

# pip install Cython
# pip install ChannelAttribution
import pandas as pd
from ChannelAttribution import *
Data = pd.read_csv('./Markov/Data.csv',sep=";")
Data.head() 

image-20230206154344119

数据格式要求:

path:转化路径,以>连接

total_conversions:累计转化次数

total_conversion_value:累计转化收益

total_null:累计未转化次数

# markov算法计算各渠道转化次数和转化收益
auto_markov_model(Data, "path", "total_conversions", "total_null", var_value='total_conversion_value')
Suggested order: 4
Number of simulations: 100000 - Convergence reached: 3.69% < 5.00%
Percentage of simulated paths that successfully end before maximum number of steps (67) is reached: 99.99%
channel_nametotal_conversionstotal_conversion_value
0eta3440.25570913711.503304
1iota3732.04210314535.970443
2alpha5821.60918219315.152418
3beta2386.05970510133.518357
4theta1783.6619897115.975460
5lambda1167.1455764696.185913
6kappa305.9050901126.342986
7zeta291.7863941093.572697
8epsilon635.3413422280.694761
9gamma216.486679777.796200
10delta4.70623216.259047
11mi0.0000000.000000

总结

如果能计算出每个流转路径历史所有的转化次数和未转化次数,个人更建议ChannelAttribution方法。

共勉~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值