【Python实战因果推断】6_元学习器1

目录

Metalearners for Discrete Treatments

T-Learner


简单回顾一下,在之前的部分中,你们的重点是干预效果的异质性,也就是确定各单位对治疗的不同反应。在此框架下,您希望估算

\tau_i(x)=E\big[Y_i(1)-Y_i(0)\big|X\big]=E\big[\tau_i\big|X\big]

或连续情况下的 E[\delta Y_i(t)|X]。换句话说,您想知道单位对干预的敏感程度。在无法干预所有人,需要对干预进行优先排序的情况下,这一点超级有用;例如,当您想给予折扣但预算有限时。或者当某些单位的干预效果为正,而其他单位的干预效果为负时。

在此之前,您已经了解了如何使用带有交互项的回归来获得条件平均干预效果 (CATE) 估计值。现在,是时候加入一些机器学习算法了。

Metalearners 是一种利用现成的预测性机器学习算法来近似干预效果的简便方法。它们可以用来估计 ATE,但一般来说,它们主要用于 CATE 估计,因为它们可以很好地处理高维数据。Metalearners 用于回收预测模型,以进行因果推断。所有预测模型,如线性回归、提升决策树、神经网络或高斯过程,都可以利用本章介绍的方法重新用于因果推理。因此,metalearner 的成功与否在很大程度上取决于它所使用的机器学习技术。很多时候,你只需尝试多种不同的方法,看看哪种最有效。

Metalearners for Discrete Treatments

假设你在一家在线零售商的营销团队工作。你的目标是找出哪些客户能够接受营销电子邮件。你知道这封电子邮件有可能让顾客花更多的钱,但你也知道有些顾客并不喜欢收到营销电子邮件。为了解决这个问题,您打算估算电子邮件对客户未来购买量的条件平均干预效果。这样,您的团队就可以利用这个估计值来决定向谁发送电子邮件。

与大多数商业应用一样,您拥有大量向客户发送营销电子邮件的历史数据。您可以利用这些丰富的数据来匹配您的 CATE 模型。此外,您还有一些来自随机发送营销电子邮件实验的数据点。您计划将这些宝贵的数据仅用于评估您的模型,因为您拥有的数据太少了:

 import pandas as pd
 import numpy as np
 data_biased = pd.read_csv("./data/email_obs_data.csv")
 data_rnd = pd.read_csv("./data/email_rnd_data.csv")
 print(len(data_biased), len(data_rnd))
 data_rnd.head()

随机数据和观察数据都有完全相同的列。干预变量是 mkt_email,您关心的干预结果是收到电子邮件一个月后的购买量-next_mnth_pv。除了这些列之外,数据还包含一系列协变量,如客户的年龄、在您的网站上首次购买的时间(任期),以及他们在每个类别中的购买量数据。这些协变量将决定您计划拟合的干预异质性。

为了简化 CATE 模型的开发,您可以创建变量来存储处理、干预和协变量,以及训练集和测试集。

一旦掌握了所有这些,建造几乎所有的元学习器都将变得简单易行:

 y = "next_mnth_pv"
 T = "mkt_email"
 X = list(data_rnd.drop(columns=[y, T]).columns)
 train, test = data_biased, data_rnd

一旦掌握了所有这些,建造几乎所有的元学习器都将变得简单易行:

T-Learner

如果您要进行分类干预,首先应该尝试的学习器是 T 学习器。它非常直观,我猜你已经想到了。 它为每个干预拟合一个结果模型 \mu_t(x),以估计潜在结果 Y_{t}。在二元情况下,您只需要估计两个模型(因此称为 T):学习器在T = 1上训练ML模型,在T = 0上训练ML模型;在预测时间,它使用这两种模型来估计治疗和控制之间的差异

\mu_{0}(x)=E[Y|T=0,X]\\\mu_{1}(x)=E[Y|T=1,X]为了编写代码,我将使用提升回归树来建立结果模型。具体来说,我将使用 LGBMRegressor,这是一种非常流行的回归模型。我也会使用默认参数,但如果你愿意,也可以随意优化:

 from lightgbm import LGBMRegressor
 np.random.seed(123)
 m0 = LGBMRegressor()
 m1 = LGBMRegressor()
 m0.fit(train.query(f"{T}==0")[X], train.query(f"{T}==0")[y])
 m1.fit(train.query(f"{T}==1")[X], train.query(f"{T}==1")[y]);

现在我有了这两个模型,对测试集进行 CATE 预测就非常容易了:

 t_learner_cate_test = test.assign(
 cate=m1.predict(test[X]) - m0.predict(test[X])
 )

为了评估这个模型,我使用了相对累积增益曲线和该曲线下的面积。

T-learner 在这个数据集中运行良好。从弯曲的累积增益曲线上可以看出,它可以很好地按 CATE 对客户进行排序。

一般来说,T-学习器往往是合理的首选,这主要是因为它简单易用。但它有一个潜在的问题,可能会根据具体情况表现出来:它容易产生正则化偏差。

考虑这样一种情况:未处理的数据很多,而处理的数据很少。这种情况在很多应用中都很常见,因为干预的成本很高。现在假设干预结果 Y 具有一定的非线性,但治疗效果是恒定的。 下图中的第一幅图描述了这种情况:如果数据看起来像这样,与未处理的数据相比,处理过的观测数据非常少,那么 μ1 模型很有可能最终会变得简单,以避免过度拟合。相比之下,μ0 会更加复杂,但没关系,因为大量的数据可以防止过度拟合。重要的是,即使两个模型使用相同的超参数,也会出现这种情况。例如,为了生成前面的数据,我使用了 LGBM 回归模型,其 min_child_samples=25 且其他参数设置为默认值。 在处理较少的数据点时,很多 ML 算法都会自我规范化,min_child_samples 就是这种情况。它强制 LGBM 中的树在每个叶节点中至少有 25 个样本。

从机器学习的角度来看,自规范化非常有意义。如果数据很少,就应该使用更简单的模型。以至于上图中的两个模型都具有相当不错的预测性能,因为它们都针对各自的样本量进行了优化。但是,如果使用这些模型来计算 CATE \hat{\tau}=\mu_{1}(X)-\mu_{0}(X)\mu_{0}(X) 的非线性减去 \mu_{1}(X) 的线性将导致非线性 CATE(虚线减去实线),这是错误的,因为在这种情况下,CATE 是恒定的,等于 1。您可以在上图的第二幅图中看到这种情况。

这里发生的情况是,未治疗者的模型可以捕捉到非线性,但治疗者的模型却捕捉不到,因为它是为了处理小样本量而正则化的。当然,你也可以减少对该模型的正则化处理,但这样会有过拟合的风险。在这里,您似乎陷入了进退两难的境地。如何解决这个问题呢?这就是 X-learner 的用武之地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/755817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“深入解析操作系统核心:进程管理与并发艺术“

操作系统中最核心的概念是进程:这是对正在运行程序的ー个抽象 并行 并发 “在任何多道程序设计系统中,CPU由一个进程快速切换至另ー个进程,使每个进程各运行几十或几百毫秒。严格地说,在某ー个瞬间,CPU只能运行ー个进程。但在1秒钟内,它可能运行多个进程,这样就产生并行的错觉…

【RAG】FoRAG:面向网络增强型长形式问答的事实性优化RAG

一、解决问题 在基于网络的长形式问答(Web-enhanced Long-form Question Answering, LFQA)任务中,现有RAG在生成答案时存在的问题: 事实性不足:研究表明,现有系统生成的答案中只有大约一半的陈述能够完全得…

SpringBoot学习04-[定制SpringMVC]

定制SpringMVC 定制SpringMvc的自动配置定制springmvc-configurePathMatch配置定制SpringMVC-拦截器Interceptor定制SpringMVC-CORS配置全局cors配置针对某个方法加跨域解决 WebMvcConfigurer原理定制SpringMVC-JSONJSON开发jackson的使用定制化json序列化和反序列化 JSON国际化…

Kafka面试必备:深度解析Replica副本的作用与机制

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hey大家好!我是小米,一个超级喜欢分享技术干货的大哥哥!今天咱们来聊聊阿里巴巴面试题中的一个热门话题:Kafka中的Replica副本作用。这可是个既基础…

供应商关系管理(SRM)中的供应商绩效评估

供应商绩效评估是供应商关系管理(SRM)的核心组成部分,它涉及到对供应商在合作过程中的表现进行全面的分析和评价。一个有效的供应商绩效评估系统不仅可以帮助企业识别和解决供应链中的潜在问题,还可以促进供应商的持续改进和优化&…

npm创建一个空的vue3项目的方法或者pnpm创建vue3项目

1、前提我们已经安装了npm,或者pnpm 2、我们用npm来创建vue3项目 快速上手 | Vue.js 官网地址 这里我安装是的 node v18.20.3 以下是安装过程 : npm create vuelatest 根据自己的需要进行创建即可。 3、我们用pnpm来创建vite vue3项目 pnpm create …

【算法专题--栈】栈的压入、弹出序列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 💧栈模拟法💧-- 双指针 ⭐ 解题思路 ⭐ 案例图解 四、总结与提炼 五、共勉 一、前言 栈的压入、弹出序列 这道题,可以说是--栈专题--,最经典的一道题,也是在…

LinkedIn被封原因和解封方法

对于初识领英和对领英生态规则不熟悉的人来说,很容易造成领英账号被封号(被限制登录)的情况,那么如何才能避免和解决领英帐号被封号(被限制登录)的难题呢? 领英帐号被封号或被限制登录主要会有两类情况。 首先要搞清楚, Linkedi…

“ONLYOFFICE 8.1版本评测:功能更强大,用户体验更佳”

最新版本的在线编辑器已经发布 ONLYOFFICE在线编辑器的最新版本8.1已经发布,整个套件带来了30多个新功能和432个bug修复。这个强大的文档编辑器支持处理文本文档、电子表格、演示文稿、可填写的表单和PDF,并允许多人在线协作,同时支持AI集成…

IP白名单及其作用解析

在网络安全领域,IP白名单是一项至关重要的策略,它允许特定的IP地址或地址范围访问网络资源,从而确保只有受信任的终端能够连接。下面,我们将深入探讨IP白名单的定义、作用以及实施时的关键考虑因素。 一、IP白名单的定义 IP白名单…

利用python爬取上证指数股吧评论并保存到mongodb数据库

大家好,我是带我去滑雪! 东方财富网是中国领先的金融服务网站之一,以提供全面的金融市场数据、资讯和交易工具而闻名。其受欢迎的“股吧”论坛特别适合爬取股票评论,东方财富网的股吧聚集了大量投资者和金融分析师,他们…

GOROOT GOPATH GOPROXY GO111MODULE

GOROOT GOROOT代表Go的安装目录。可执行程序go(或go.exe)和gofmt(或gofmt.exe)位于 GOROOT/bin目录中。 配置GOROOT环境变量,其值为Go的安装目录;然后在环境变量PATH中添加GOROOT/bin路径。 注意:GOROOT变量只是代表了安装目录,不…

DiskGeniusV5.6.0.1565发布!

DiskGenius是一款功能强大的磁盘管理和数据恢复工具,V5.6.0.1565上线。新版本变化比较大,增加新的功能,修正已经问题,值得试一下。提醒大家,磁盘管理软件涉及数据安全,请始终使用最新版本! 下面…

Linux开发讲课18--- “>file 2>1“ 和 “2>1 >file“ 的区别

在 Bash 脚本和命令行操作中,输出重定向是一项基本且强大的功能。它允许用户控制命令的输出流,将数据从一个地方转移到另一个地方,实现更加灵活和高效的工作流程。本文旨在记录 Bash 中几种常见的输出重定向方法,包括: -. > fi…

计算机Java项目|基于SpringBoot的新闻稿件管理系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简…

密码学:用随机函数隐藏指纹

英文中e的出现频率高,加密后,频率最高的那个符号代表e。这是历史上的一次真实案例。这些符号的概率,叫做“指纹”。 把e加密成2个符号,用随机函数选择,例如70%概率下选择符号1,30%选择符号2。解密时&#…

启智畅想:AI集装箱箱号识别系统,解决方案提供商

AI集装箱箱号识别系统 当前,智能卡口管理行业正处于快速发展的阶段。随着物联网、大数据、人工智能等技术的不断进步,智能卡口管理系统已经能够实现对集装箱运输的全程跟踪、监控和管理,大大提高了管理效率和安全性。然而,市场上现有的智能卡口管理系统仍然存在一些痛点问题,如…

Spring容器的启动过程及留给开发者的可拓展点

一、Spring容器启动经过了哪些过程? 1、首先需要加载读取到应用环境中的配置,比如要加载的bean的class的包路径等信息。 【读取配置】 2、再就需要找到哪些类是需要spring进行类实例创建并管理的,扫描到具体的Class及Class元信息上的一些注…

【漏洞复现】电信网关配置管理系统——命令执行

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 电信网关配置管理系统是一个用于管理和配置电信网关设备的软件系…

为什么Modbus链接/从机不通?From 摩尔信使MThings

为了回应用户平日里关于摩尔信使(MThings)使用过程中最常见的问题,包括“网络链接连不上”、“为什么不能增加串口”和“为什么从机不通”,我们在此统一介绍解决方法。 1、具备哪些通信能力 支持串口和网络两种通信方式。 需要…