因果推断4--Causal ML(个人笔记)

这篇具有很好参考价值的文章主要介绍了因果推断4--Causal ML(个人笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1 安装教程及官方文档

1.1 pip安装

1.2 API文档

1.3 代码仓库

2 Uplift模型与主要方法介绍

2.1 发放代金券

2.2 多treatment

2.3 实验方法

3 causalml.inference.tree module

3.1 UpliftTreeClassifier

3.2 UpliftRandomForestClassifier

3.3 CausalRandomForestRegressor

4 待补充

5 问题


1 安装教程及官方文档

1.1 pip安装

pip install causalml

1.2 API文档

https://causalml.readthedocs.io/en/latest/causalml.html

1.3 代码仓库


github: https://github.com/uber/causalml/

CausalML简介

CausalML是一个基于Python的因果学习开源项目。最早为Uber项目定制、内部开源,而后正式成为开源项目。其提供了丰富的模型选择,例如常用的Meta-Learner和因果树模型,方便在实践中作对比和选择。同时还提供例如模拟数据生成、模型可视化、模型评估等一系列配套工具。其目标是用于解决业务实践问题,尤其是在计算速度和数据规模方面能够达到业界标准并持续优化。

赵振宇,腾讯数据科学总监。先后在Yahoo,Uber,腾讯任职。负责实验、因果推断、机器学习、产品分析、平台建设、开源软件、应用研究方面的工作。CausalML发起者之一,《关键迭代可信赖的线上对照实验》译者之一。

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 1:CausalML图示

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 2:CausalML模块概览 

2 Uplift模型与主要方法介绍

2.1 发放代金券

在互联网平台中,如果出现了成规模的用户流失,市场营销部门常常采用发放代金券的方式来召回流失用户。那么向哪些用户投放代金券效果最好呢?在数据科学时代,一个很常见的思路是采用机器学习方法来对用户建模,预测哪些用户最有可能回流,然后进行定向投放。但有时候实际结果表明,这种基于模型的投放组效果会不如随机投放组。

投放是有效果的,预测也是准确的,那么为什么基于模型的投放组效果反而不如随机投放呢?原因其实很简单,自然回流概率高的用户,不管是否有代金券,都会回来。将代金券发给必定会回来的用户,并不能产生增益。为了解决这一问题,我们需要将现有的机器学习算法与因果推断相结合。

介绍具体主要模块之前,我们先来介绍一下相关背景。和前面代金券的例子类似,在广告营销中,我们可以根据有无投递广告和是否购买产品来将用户划分成四类(见图四):总是购买、劝退用户、策略提升用户和总

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 3:广告营销影响的四类用户

        如果我们将没被投放广告的用户设为对照组,将被投放广告的用户设为实验组。从整体上来评估,广告对购买率的提升效果 = 实验组购买率 – 对照组购买率,这实际上是因果推断中的ATE (Average Treatment Effect)。通过代金券发放的例子,我们知道这种评估方式是有误差的。作为改进,我们需要从个体角度来评估效果,为此就引入了HTE(Heterogeneous Treatment Effect) 的概念。简单来说,相比于ATE,HTE是一个更专注于个体差异化效果的指标。具体定义见下图:

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 4:HTE

因为ITE是不能够通过观测得到的,所以我们采用CATE (Conditional ATE) 作为实际的指标:广告对用户i的效果 = E[Y|Treatment, Xi] - E[Y|Control, Xi]。Xi表示用户i所具有的相关特征。这就是Uplift模型的核心思想。有了CATE的概念,接下来要做的就是该如何估计CATE。常见的方法有Meta-learners和Uplift树模型两种。

Meta-learners的基本想法是组合既有的传统机器学习模型。首先定义一个base learner,一般就是一个传统的机器学习模型,任何一个给定X可以预测Y的模型都可以。然后采用不同的混合方式,比如S Learner,T Learner,X Learner,R learner。见下图:

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 5:Meta-learners

        Uplift树模型的基本想法是通过改变树模型的损失函数来估计CATE(见图6)。与传统分类树的区别如下:

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 6:Uplift图示参考

使用Uplift模型定位“策略提升用户”可以分成三个步骤:

1. 数据收集实验:目标是为Uplift模型收集训练数据。给对照组所有用户不发促销,给实验组所有用户发促销。

2. 训练Uplift模型:收集实验数据和用户特征,训练Uplift模型。训练完成的Uplift模型可以根据用户特征X,估计实验效果CATE。

3. 验证模型效果实验:设置对照组为无促销,设置两个实验组,实验组1为随机选取10%用户发促销,实验组2位根据Uplift模型预测,选取预估实验效果在top10%的用户发促销

根据以上步骤,在广告营销的场景中,最优策略是使用Uplift模型定位策略提升用户群(投放效果为正向),并针对这部分用户进行投放。这一策略和直接使用机器学习模型的不同见下图:

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图7:Uplift模型 vs 机器学习模型

2.2 多treatment

有些场景下,存在多个实验组,且不同的实验组成本不相同。例如:

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图8:多tretment

们会希望在优化转化率的同时,也考虑成本:将9折优惠券发给对于9折实验效果敏感的用户,将8折优惠券发给只对8折实验效果敏感的用户。对于这种场景,CausalML也提供了对应的价值优化方法。方法的想法是考虑成本,将成本计入CATE中,用基于X Learner的方法,在多个实验组并存的情况下尝试将最优的实验组挑出来。

2.3 实验方法

业界常用的实验方法可以总结成以下几种:A/B测试基本覆盖了大多数实验场景;网络效应实验适用于分流时用户之间存在干扰的情况,也即因果推断中的interference问题;Uplift模型适用于对HTE的估计;灰度放量试验适用于全量上线有风险,需要实时监控修正再逐步放开的情况;MAB即多臂老虎机,适用于在多实验组中进行价值优化;Interleaving基于同一个用户对于排序方法A和B的偏好,适用于评估排序算法对长尾查询的效果。

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

图表 9:业界实验领域概览图表

参考:

  1. causalml package — causalml documentation
  2. CausalML: 基于Python的因果学习开源项目_模型_用户_效果
  3. Zhao, Zhenyu, and Totte Harinen. "Uplift modeling for multiple treatments with cost optimization." In 2019 IEEE International Conference on Data Science and Advanced Analytics (DSAA), pp. 422-431. IEEE, 2019.

  4. 因果推断笔记——python 倾向性匹配PSM实现示例(三)_悟乙己的博客-CSDN博客_python 因果推断

  5. PSM倾向得分匹配法【python实操篇】_水满船头滑的博客-CSDN博客_python psm

  6. 因果推断学习笔记三——Uplift模型_米法·的博客-CSDN博客_uplift模型

  7. CausalML创始人赵振宇:基于Python的开源框架玩转因果学习|周日直播·因果科学读书会_腾讯新闻

  8. 因果推断与反事实预测——利用DML进行价格弹性计算(二十四)_悟乙己的博客-CSDN博客_dml算法

  9. 因果推断杂记——因果推断与线性回归、SHAP值理论的关系(十九)_悟乙己的博客-CSDN博客_shap 回归

3 causalml.inference.tree module

3.1 UpliftTreeClassifier

from causalml.inference.tree import UpliftTreeClassifier

Uplift Tree Classifier for Classification Task.

A uplift tree classifier estimates the individual treatment effect by modifying the loss function in the classification trees.

The uplift tree classifier is used in uplift random forest to construct the trees in the forest.

import numpy as np
import pandas as pd

from causalml.dataset import make_uplift_classification
from causalml.inference.tree import UpliftRandomForestClassifier
from causalml.metrics import plot_gain

from sklearn.model_selection import train_test_split
import causalml
causalml.__version__
df, x_names = make_uplift_classification()

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

 Look at the conversion rate and sample size in each group
df.pivot_table(values='conversion',
               index='treatment_group_key',
               aggfunc=[np.mean, np.size],
               margins=True)

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

clf = UpliftTreeClassifier(control_name='control')
clf.fit(df_train[x_names].values,
         treatment=df_train['treatment_group_key'].values,
         y=df_train['conversion'].values)
p = clf.predict(df_test[x_names].values)
df_res = pd.DataFrame(p, columns=clf.classes_)
df_res.head()

 causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

uplift_model = UpliftRandomForestClassifier(control_name='control')
df_res = uplift_model.predict(df_test[x_names].values, full_output=True)
print(df_res.shape)
df_res.head()

causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言 causalml安装,因果推断,机器学习,python3,python,人工智能,开发语言

3.2 UpliftRandomForestClassifier

from causalml.inference.tree import UpliftRandomForestClassifier
 

from causalml.inference.tree import CausalRandomForestRegressor, CausalTreeRegressor

3.3 CausalRandomForestRegressor

UpliftRandomForestClassifier和CausalRandomForestRegressor的区别?????

4 待补充

1、特征选取方式

2、CausalRandomForestRegressor学习

3、因果推断与线性回归:DML

4、多treatment、多treatment多label

5 问题

1、auuc评估有什么弊端?

答:样本不随机,分桶后偏差。可以使用偏向性匹配拉齐在评估。

2、多treatment的auuc评估评估,样本间分布不均匀怎么做拉齐?

答:评估时候考虑各样本的占比。

3、DML可以解决离散tretamnet,和vcnet、DRNtet差异?

4、DML在工业好像使用的较多,结合ps?

5、哪些需要随机数据才可建模,哪些观测数据也可以建模呢?文章来源地址https://www.toymoban.com/news/detail-650107.html

到了这里,关于因果推断4--Causal ML(个人笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 果推断16--基于反事实因果推断的度小满额度模型学习笔记

    目录 一、原文地址 二、一些问题 2.1如何从RCT随机样本过渡到观测样本因果建模? 2.2反事实学习的核心思想 2.3度小满的连续反事实额度模型 Mono-CFR 2.4Mono-CFR代码实现(待补充) 2.5CFR学习 2.5.1TarNet 2.5.2CFR 2.5.3DR-CFR 参考   基于反事实因果推断的度小满额度模型 对于RCT样本的情

    2024年02月07日
    浏览(43)
  • 因果推断(六)基于微软框架dowhy的因果推断

    DoWhy 基于因果推断的两大框架构建: 「图模型」 与 「潜在结果模型」 。具体来说,其使用基于图的准则与 do-积分来对假设进行建模并识别出非参数化的因果效应;而在估计阶段则主要基于潜在结果框架中的方法进行估计。DoWhy 的整个因果推断过程可以划分为四大步骤: 「

    2024年02月10日
    浏览(33)
  • 生态经济学领域里的R语言机器学(数据的收集与清洗、综合建模评价、数据的分析与可视化、数据的空间效应、因果推断等)

    近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一,目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据,而计量经济学则通常使用较小样本,

    2024年02月11日
    浏览(57)
  • 因果推断阶段系列21[阶段2-3]----因果模型评估

    大部分关于因果性的资料中,研究人员使用模拟数据来检查他们的方法是否有效。就像我们在一章中所做的那样,模拟生成关于 Y 0 i Y_{0i}

    2024年02月08日
    浏览(39)
  • 因果推断(四)断点回归(RD)

    在传统的因果推断方法中,有一种方法可以控制观察到的混杂因素和未观察到的混杂因素,这就是断点回归,因为它只需要观察干预两侧的数据,是否存在明显的断点。 ⚠️注意:当然这个方法只能做到局部随机,因此很难依据该结论推向全局。 本文参考自rdd官方示例,通

    2024年02月13日
    浏览(45)
  • 因果推断系列16-面板数据与固定效应

    加载第三方包

    2024年02月05日
    浏览(42)
  • 因果推断-PSM的原理及python实现

    目录 一、背景:员工技能培训真的是浪费时间吗 二、PSM的原理及python实现 1、PSM的原理 1.1 计算倾向性得分 1.2 匹配对照组样本 1.3 平衡性检查 1.4 敏感度分析 2、PSM的python实现 假设你是一家大企业的老板,你希望知道员工技能培训对员工生产率的提升有多大帮助。已知参加培

    2024年02月15日
    浏览(39)
  • 因果推断之微软开源的dowhy使用学习

    本文参考微软dowhy官网文档,并参考相关博客进行整理而来,官方地址:https://github.com/py-why/dowhy 因果推理 是基于观察数据进行反事实估计,分析干预与结果之间的因果关系。 DoWhy是微软发布的 端到端 因果推断Python库,主要特点是: 基于一定经验假设的基础上,将问题转化

    2024年02月09日
    浏览(36)
  • [因果推断] 增益模型(Uplift Model)介绍(三)

    增益模型(uplift model):估算干预增量(uplift),即 干预动作(treatment) 对 用户响应行为(outcome) 产生的效果。 这是一个 因果推断(Causal Inference) 课题下估算 ITE (Individual Treatment Effect)的问题——估算同一个体在 干预与不干预 (互斥情况下)不同outcome的差异。为了克

    2024年02月06日
    浏览(33)
  • 收集一些因果推断比较好的工具包,教程

    1.国内一个武汉大学教授手下博士写的基础的因果知识课件: http://www.liuyanecon.com/wp-content/uploads/%E7%8E%8B%E5%81%A520201022.pdf 感兴趣可以看看其他手下博士做的课件: Causal inference reading group 2020 – 刘岩 – 宏观金融 2.耶鲁大学教授课程全套  课件+代码+视频 代码:GitHub - paulgp/app

    2023年04月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包