econml双机器学习实现连续干预和预测

连续干预

在这个示例中,我们使用LinearDML模型,使用随机森林回归模型来估计因果效应。我们首先模拟数据,然后模型,并使用方法来effect创建不同干预值下的效应(Conditional Average Treatment Effect,CATE)。

请注意,实际情况中的数据可能更加复杂,您可能需要根据您的数据和问题来适当选择的模型和参数。此示例仅供参考,您可以根据需要进行修改和扩展。

import numpy as np
from econml.dml import LinearDML# 生成示例数据
np.random.seed(123)
n_samples = 1000
n_features = 5
X = np.random.normal(size=(n_samples, n_features))
T = np.random.uniform(low=0, high=1, size=n_samples)  # 连续干预变量
y = 2 * X[:, 0] + 0.5 * X[:, 1] + 3 * T + np.random.normal(size=n_samples)# 初始化 LinearDML 模型
est = LinearDML(model_y='auto', model_t='auto', random_state=123)# 拟合模型
est.fit(y, T, X=X)# 给定特征和连续干预值,计算干预效应
X_pred = np.random.normal(size=(10, n_features))  # 假设有新的数据点 X_pred
T_pred0 = np.array([0]*10)  # 指定的连续干预值
T_pred11 = np.array([0.2, 0.4, 0.6, 0.8, 1.0, 0.3, 0.5, 0.7, 0.9, 0.1])  # 指定的连续干预值
T_pred1 = np.array([0.2]*10)  # 指定的连续干预值
T_pred2 = np.array([0.4]*10)  # 指定的连续干预值
T_pred3 = np.array([0.6]*10)  # 指定的连续干预值
T_pred4 = np.array([0.8]*10)  # 指定的连续干预值# 计算连续干预效应
effect_pred = est.effect(X=X_pred, T0=T_pred0, T1=T_pred11)print("预测的连续干预效应:", effect_pred)# 计算连续干预效应
effect_pred = est.effect(X=X_pred, T0=T_pred0, T1=T_pred1)print("预测的连续干预效应:", effect_pred)

The R Learner is an approach for estimating flexible non-parametric models of conditional average treatment effects in the setting with no unobserved confounders. The method is based on the idea of Neyman orthogonality and estimates a CATE whose mean squared error is robust to the estimation errors of auxiliary submodels that also need to be estimated from data:

  1. the outcome or regression model

  2. the treatment or propensity or policy or logging policy model

使用随机实验数据进行双重机器学习(DML)训练可能会在某些情况下获得更好的效果,但并不是绝对的规律。DML方法的性能取决于多个因素,包括数据质量、特征选择、模型选择和调参等。

使用随机实验数据进行训练的优势在于,实验数据通常可以更好地控制混淆因素,从而更准确地估计因果效应。如果实验设计得当,并且随机化合理,那么通过DML训练的模型可以更好地捕捉因果关系,从而获得更准确的效应估计。

然而,即使使用随机实验数据,DML方法仍然需要考虑一些因素,例如样本大小、特征的选择和处理、模型的选择和调参等。在实际应用中,没有一种方法可以适用于所有情况。有时,随机实验数据可能会受到实验设计的限制,或者数据质量可能不足以获得准确的效应估计。

因此,使用随机实验数据进行DML训练可能会在某些情况下获得更好的效果,但并不是绝对的规律。在应用DML方法时,仍然需要根据实际情况进行数据分析、模型选择和验证,以确保获得准确和可靠的因果效应估计。

dml原理

Double Machine Learning, DML。

方法:首先通过X预测T,与真实的T作差,得到一个T的残差,然后通过X预测Y,与真实的Y作差,得到一个Y的残差,预测模型可以是任何ML模型,最后基于T的残差和Y的残差进行因果建模。
原理:DML采用了一种残差回归的思想。
优点:原理简单,容易理解。预测阶段可以使用任意ML模型。
缺点: 需要因果效应为线性的假设。
应用场景:适用于连续Treatment且因果效应为线性场景
 

单调性约束

因果推断的开源包中,有一些可以进行单调性约束的案例。这些案例通常涉及到因果效应的估计,同时加入了单调性约束以确保结果更加合理和可解释。以下是一些开源包以及它们支持单调性约束的案例示例:

  1. CausalML(https://causalml.readthedocs.io/):

    • CausalML 是一个开源的因果推断工具包,支持单调性约束。它提供了一些可以用于处理单调性约束的方法,例如 SingleTreatment 类。您可以使用该包来在处理因果效应时添加单调性约束。
  2. econml(https://econml.azurewebsites.net/):

    • econml 也是一个用于因果推断的工具包,支持单调性约束。它提供了一些工具,如 SingleTreePolicyInterpreterSingleTreeCateInterpreter,用于解释单一决策树的因果效应,并且可以根据用户指定的特征添加单调性约束。
SingleTreeCateInterpreter(_SingleTreeInterpreter):"""An interpreter for the effect estimated by a CATE estimatorParameters----------include_model_uncertainty : bool, default FalseWhether to include confidence interval information when building asimplified model of the cate model. If set to True, thencate estimator needs to support the `const_marginal_ate_inference` method.uncertainty_level : double, default 0.05The uncertainty level for the confidence intervals to be constructedand used in the simplified model creation. If value=alphathen a multitask decision tree will be built such that all samplesin a leaf have similar target prediction but also similar alphaconfidence intervals.uncertainty_only_on_leaves : bool, default TrueWhether uncertainty information should be displayed only on leaf nodes.If False, then interpretation can be slightly slower, especially for catemodels that have a computationally expensive inference method.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3—SCSS的安装、配置与使用

SCSS 安装 使用npm安装scss: npm install sass sass-loader --save-dev 配置 配置到全局 🌟附赠代码🌟 css: {preprocessorOptions: {scss: {additionalData:import "./src/Function/Easy_I_Function/Echarts/ToSeeEcharts/utill.…

Spring Boot Admin 环境搭建与基本使用

Spring Boot Admin 环境搭建与基本使用 一、Spring Boot Admin是什么二、提供了那些功能三、 使用Spring Boot Admin3.1搭建Spring Boot Admin服务pom文件yml配置文件启动类启动admin服务效果 3.2 common-apipom文件feignhystrix 3.3服务消费者pom文件yml配置文件启动类control…

Simulation 线性静力分析流程

有限元仿真分析软件有很多,但是分析的流程却是大同小异,今天给大家分享的是Simulation的线性静力分析流程。 1.构思分析方案。 确定研究对象,研究的方法、验证方案等等。听起来比较空洞,实践过程中我建议首先需要把目标和有限元分…

HDFS中的Trash垃圾桶回收机制

Trash垃圾桶回收机制 文件系统垃圾桶背景功能概述Trash Checkpoint Trash功能开启关闭HDFS集群修改core-site.xml删除文件到trash删除文件跳过从trash中恢复文件清空trash 文件系统垃圾桶背景 回收站(垃圾桶)是windows操作系统里的一个系统文件夹&#…

一起学SF框架系列7.1-spring-AOP-基础知识

AOP(Aspect-oriented Programming-面向切面编程)是一种编程模式,是对OOP(Object-oriented Programming-面向对象编程)一种有益补充。在OOP中,万事万物都是独立的对象,对象相互耦合关系是基于业务进行的;但在…

目标识别模型两种部署形态图

目标检测预训练模型基于新数据进行微调(训练)之后,得到一个权重文件。 在日常工业、车载等需求环境下,需要在嵌入式移动端的软件系统中调用该模型文件进行推断测试,软件系统追求性能经常使用C/C进行编码实现&#xff…

第十一次CCF计算机软件能力认证

第一题:打酱油 小明带着 N 元钱去买酱油。 酱油 10 块钱一瓶,商家进行促销,每买 3 瓶送 1 瓶,或者每买 5 瓶送 2 瓶。 请问小明最多可以得到多少瓶酱油。 输入格式 输入的第一行包含一个整数 N,表示小明可用于买酱油的…

【深度学习】【风格迁移】Visual Concept Translator,一般图像到图像的翻译与一次性图像引导,论文

General Image-to-Image Translation with One-Shot Image Guidance 论文:https://arxiv.org/abs/2307.14352 代码:https://github.com/crystalneuro/visual-concept-translator 文章目录 Abstract1. Introduction2. 相关工作2.1 图像到图像转换2.2. Di…

网络防御(2)

1. 什么是防火墙? 2. 状态防火墙工作原理? 3. 防火墙如何处理双通道协议? 一、什么是防火墙? 防火墙是一种网络安全设备或软件,用于保护计算机网络免受未经授权的访问,并管理网络流量。它作为一个安全边界…

Android中级——RemoteView

RemoteView RemoteView的应用NotificationWidgetPendingIntent RemoteViews内部机制模拟RemoteViews RemoteView的应用 Notification 如下开启一个系统的通知栏,点击后跳转到某网页 public class MainActivity extends AppCompatActivity {private static final …

【Linux取经路】进程的奥秘

文章目录 1、什么是进程?1.1 自己写一个进程 2、操作系统如何管理进程?2.1 描述进程-PCB2.2 组织进程2.3 深入理解进程 3、Linux环境下的进程3.1 task_struct3.2 task_struct内容分类3.3 组织进程3.4 查看进程属性 4、结语 1、什么是进程? 在…

软件单元测试

单元测试目的和意义 对于非正式的软件(其特点是功能比较少,后续也不有新特性加入,不用负责维护),我们可以使用debug单步执行,内存修改,检查对应的观测点是否符合要求来进行单元测试&#xff0c…

把网站改为HTTPS访问方法

HTTPS是使用TSL/SSL加密超文本传输协议的扩展,用于跨网络的安全传输。网站更改为HTTPS,直接在网站形象上可以得到提升,更重要的是您的网站肯定会在排名和提升方面受益。机密信息的交换需要受到保护,以阻止未经授权的访问。 加密&a…

类加载机制——双亲委派机制

类加载器分类 类加载器 类加载器(英文:ClassLoader)负责加载 .class 字节码文件,.class 字节码文件在文件开头有特定的文件标识。ClassLoader 只负责 .class 字节码文件的加载,至于它是否可以运行,则由 E…

Vue-组件二次封装

本次对el-input进行简单封装进行演示 封装很简单,就给激活样式的边框(主要是功能) 本次封装主要使用到vue自带的几个对象 $attrs:获取绑定在组件上的所有属性$listeners: 获取绑定在组件上的所有函数方法$slots: 获取应用在组件内的所有插槽 …

成功解决Android设备adb连接后显示device unauthorized

一、提出问题 在电脑通过USB连接新的Android设备,想要通过adb来进行一些操作时,却发现命令提示符上在输入下面命令后显示设备未授权的信息也就是"unauthorized" adb devices二、不可行的解决方案 有人提出的解决方案是打开Android设备的开发…

2023年新手如何学剪辑视频 想学视频剪辑如何入门

随着短视频、vlog等媒体形式的兴起,视频剪辑已经成为了热门技能。甚至有人说,不会修图可以,但不能不会剪视频。实际上,随着各种智能软件的发展,视频剪辑已经变得越来越简单。接下来,一起来看看新手如何学剪…

【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作

在数字化时代,人工智能为我们的生活带来了无数便利和创新。在写作领域,ChatGPT作为一种智能助手,为我们提供了强大的帮助。不论是作文、文章,还是日常函电,ChatGPT都能成为我们的得力助手,快速提供准确的文…

MySQL — MVCC

文章目录 MVCCMVCC 实现原理隐藏字段undo logundo log的用途undo log类型 版本链ReadView MVCC InnoDB是一个多版本的存储引擎。它保留有关已更改行的旧版本的信息,以支持并发和回滚等事务性特性。这些信息存储在undo表空间中的数据结构称为回滚段。InnoDB使用回滚…

培训报名小程序报名功能完善

目录 1 修改数据源2 修改表单3 支付成功时修改状态4 创建报名成功页5 最终的效果总结 目前我们的报名功能已经搭建了一个基础版,后续需要展示用户已经报名的信息,需要添加一个状态来显示用户是否成功付费。 1 修改数据源 打开我们的报名数据源&#xff…