如何解决了解如何计算马尔可夫链中的去除效果
我目前正在尝试为“营销多渠道归因”建模。我遇到的所有文章和软件包都使用特殊的“开始”状态,并且使用此处给出的以下矩阵运算([Python中的马尔可夫链])[1]根据该开始状态计算去除效果。
def removal_effects(df,conversion_rate):
removal_effects_dict = {}
channels = [channel for channel in df.columns if channel not in ['Start','Null','Conversion']]
for channel in channels:
removal_df = df.drop(channel,axis=1).drop(channel,axis=0)
for column in removal_df.columns:
row_sum = np.sum(list(removal_df.loc[column]))
null_pct = float(1) - row_sum
if null_pct != 0:
removal_df.loc[column]['Null'] = null_pct
removal_df.loc['Null']['Null'] = 1.0
removal_to_conv = removal_df[
['Null','Conversion']].drop(['Null','Conversion'],axis=0)
removal_to_non_conv = removal_df.drop(
['Null',axis=1).drop(['Null',axis=0)
removal_inv_diff = np.linalg.inv(
np.identity(
len(removal_to_non_conv.columns)) - np.asarray(removal_to_non_conv))
removal_dot_prod = np.dot(removal_inv_diff,np.asarray(removal_to_conv))
removal_cvr = pd.DataFrame(removal_dot_prod,index=removal_to_conv.index)[[1]].loc['Start'].values[0]
removal_effect = 1 - removal_cvr / conversion_rate
removal_effects_dict[channel] = removal_effect
return removal_effects_dict
我的问题主要分为两部分:
我的参考文献:
https://gist.github.com/MortenHegewald/fb1d8051cd818c25283cbcbc4b587e5c#file-removal_effects-py
www.analyzecore.com/2016/08/03/attribution-model-r-part-1/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。