CausalEGM安装使用

news2025/1/13 7:46:04

1代码来源

github:https://github.com/SUwonglab/CausalEGM/tree/main/src

pip:Tutorial for Python Users — CausalEGM documentation

安装:Installation — CausalEGM documentation

版本:

2原理

关于CausalEGM

根据观察数据,推断治疗的因果效应对于许多科学和工程问题至关重要,并引起了各个领域的巨大兴趣。了解因果关系的最有效方法是进行随机对照试验(RCT)。然而,RCT 耗时、昂贵且普遍性存在问题。相比之下,观察性研究可以提供有价值的证据并检查“现实世界”环境中的效果。在现实世界的应用中,由于混杂因素引入的选择偏差,治疗通常不是随机分配的。准确估计因果效应涉及处理混杂因素,这可能会影响治疗和结果。未能针对混杂效应进行调整可能会导致估计偏差和错误结论。

 Density estimation using deep generative neural networks

意义

密度估计是统计学中最基本的问题之一。由于“维数灾难”,估计高维数据的密度是出了名的困难。在这里,我们介绍一种基于深度生成神经网络的新型通用密度估计器。通过对通常分布在降维流形周围的数据进行建模,我们展示了如何利用双向生成神经网络(例如,cycleGAN)的功能来显式评估数据密度。模拟和真实数据实验表明我们的方法在广泛的问题上是有效的。这种方法在许多需要精确密度估计器的应用中应该很有帮助。

抽象的

密度估计是统计学和机器学习中的基本问题之一。在这项研究中,我们提出了 Roundtrip,一种基于深度生成神经网络的通用密度估计计算框架。Roundtrip 保留了生成对抗网络 (GAN) 等深度生成模型的生成能力,同时还提供密度值的估计,从而支持数据生成和密度估计。与之前的神经密度估计器对从潜在空间到数据空间的转换施加严格的条件不同,Roundtrip 可以使用更通用的映射,其中目标密度是通过学习从基本密度(例如高斯分布)导出的流形来建模的。Roundtrip 为 GAN 模型提供了一个统计框架,其中密度值的显式评估是可行的。在数值实验中,Roundtrip 在各种密度估计任务中都超越了最先进的性能。

配置 CausalEGM 模型

在创建 CausalEGM 模型之前,dict应创建一个 python 对象来部署 CausalEGM 模型的超参数,其中包括潜在特征的维度、神经网络架构等。

详细的超参数描述如下。

配置参数

描述

输出目录

输出目录用于保存模型训练过程中的结果。默认: ”。”

数据集

用于指示输入数据的数据集名称。默认值:“我的数据”

z_尺寸

编码器输出的潜在维度 (e(V)_0~3)。默认值:[3,3,6,6]

v_dim

协变量的维度。

LR

学习率。默认值:0.0002

g_单位

解码器/生成器网络 G 的单元数量。默认值: [64,64,64,64,64]

e_单位

编码器网络 E 的单元数量。默认值: [64,64,64,64,64]

f_单位

F 网络的单元数量。默认值:[64,32,8]

h_单位

H 网络的单元数量。默认值:[64,32,8]

dz_单位

潜在空间中鉴别器网络的单元数量。默认值:[64,32,8]

dz_单位

协变量空间中鉴别器网络的单元数。默认值:[64,32,8]

α

重建损失系数。 默认值:1

贝塔

往返损耗系数。默认值:1

伽玛

梯度惩罚损失系数。默认值:10

g_d_频率

更新鉴别器和生成器的频率。默认值:5

保存资源

模型训练过程中是否保存结果。 默认值: True

保存模型

是否保存模型权重。默认值: False

二进制处理

是否使用二元处理设置。 默认值: True

使用_z_rec

使用潜在特征的重建。默认值: True

使用_v_gan

使用协变量的 GAN 分布匹配。 默认值: True

x_最小值

连续治疗环境中剂量反应间隔的左界。默认值:0

最大x

连续治疗环境中剂量反应间隔的右界。默认值:3

配置参数对于创建 CausalEGM 模型是必需的。以下是配置参数的一些技巧。

  1. z_dims对性能有显着影响,请参阅src/configs获取指导。

  2. 如果save_resTrue,训练期间的结果将保存在output_dir中

  3. 建议use_v_gan在二元治疗设置下为True ,在连续治疗设置下为False

baseline 

import CausalEGM as cegm
print("Currently use version v%s of CausalEGM."%cegm.__version__)
import yaml
params = yaml.safe_load(open('../../src/configs/Semi_acic.yaml', 'r'))
print(params)
#{'dataset': 'Semi_acic', 'output_dir': '.', 'v_dim': 100, 'z_dims': [3, 3, 6, 6], 'lr': 0.0002, 'alpha': 1, 'beta': 1, 'gamma': 10, 'g_d_freq': 5, 'g_units': [64, 64, 64, 64, 64], 'e_units': [64, 64, 64, 64, 64], 'f_units': [64, 32, 8], 'h_units': [64, 32, 8], 'dz_units': [64, 32, 8], 'dv_units': [64, 32, 8], 'save_res': True, 'save_model': False, 'binary_treatment': False, 'use_z_rec': True, 'use_v_gan': True, 'x_min': 0, 'x_max': 3}
model = cegm.CausalEGM(params=params,random_seed=123)
#get the data from the ACIC 2018 competition dataset with a specified ufid.
#ds = Semi_acic_sampler(path='../data/ACIC_2018',ufid='d5bd8e4814904c58a79d7cdcd7c2a1bb')
# >>> ds = Base_sampler(x=x,y=y,v=v)
# >>> batch = ds.next_batch() # get a batch of data
# >>> data = ds.load_all() # get all data as a triplet
# x,y,v = cegm.Semi_acic_sampler(path='../../../../data/ACIC_2018',ufid='d5bd8e4814904c58a79d7cdcd7c2a1bb').load_all()
#x,y,v = cegm.Semi_acic_sampler(path='../../../../data/ACIC_2018',ufid='d5bd8e4814904c58a79d7cdcd7c2a1bb').load_all()
import numpy as np
x = np.random.normal(size=(2000,))
y = np.random.normal(size=(2000,))
v = np.random.normal(size=(2000,100))
print(x.shape,y.shape,v.shape)
model.train(data=[x,y,v],n_iter=100,save_format='npy',verbose=False)

错误

这个错误信息表明在你的代码中存在一个占位符张量(placeholder tensor) 'Placeholder/_10',它的 dtype 是 float,形状是 [2000, 10],但是在执行过程中没有为它提供必要的数据值。

在 TensorFlow 中,占位符张量是一种特殊的张量,它在图构建阶段没有具体的值,而是在运行阶段通过 feed_dict 或者 tf.data 来提供数据。根据错误信息,你需要在执行代码时,确保为占位符 'Placeholder/_10' 提供一个正确形状和 dtype 的数据值。

要解决这个问题,你可以使用 feed_dict 来为占位符提供数据,例如:

import tensorflow as tf

# 创建占位符
placeholder = tf.placeholder(dtype=tf.float32, shape=[2000, 10], name='Placeholder')

# 创建一个 TensorFlow 会话
with tf.Session() as sess:
    # 使用 feed_dict 为占位符提供数据
    data = ...  # 替换成你的数据
    result = sess.run(placeholder, feed_dict={placeholder: data})

ACIC 

  • Estimating Treatment Effects over Time with Causal Forests:An application to the ACIC 2022 Data Challenge

参考

  1. CausalEGM:通过编码生成建模的通用因果推理框架 
  2. Project MUSE - Estimating Treatment Effects over Time with Causal Forests: An application to the ACIC 2022 Data Challenge
  3. Estimating Treatment Effects over Time with Causal Forests:An application to the ACIC 2022 Data Challenge

  4. https://github.com/SUwonglab/CausalEGM/blob/main/src/CausalEGM/causalEGM.py

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

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

相关文章

[文本挖掘和知识发现] 01.红楼梦主题演化分析——文献可视化分析软件CiteSpace入门

八月太忙,还是写一篇吧! 本文是作者2023年8月底新开的专栏——《文本挖掘和知识发现》,主要结合Python、大数据分析和人工智能分享文本挖掘、知识图谱、知识发现、图书情报等内容。此外,这些内容也是作者《文本挖掘和知识发现&…

vector实现遇到的问题

前言:vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它…

【C/C++】课程设计:通讯录管理系统源码,C语言链表实现

大家好呀,亲爱的小伙伴们!你们今天有在编写代码吗? 如果有熟悉的小伙伴看到我,就会知道又到了学习源码项目的好时机了!没错,今天要分享的同样是一个经典的管理系统项目:通信录管理系统&#xf…

小白学Linux都能学会

文章目录 1. 初识Linux1.1 操作系统1.2 Linux发展历程1.3 Linux简介1.3.1 什么是 Linux1.3.2 Linux的特点 1.4 Linux和Unix区别1.5 Linux和Windows区别1.6 Linux发行商和常见发行版1.7 Linux 应用领域**1.8 Linux之CentOS**1.9 总结 2. 系统与设置命令2.1 学习命令的原因2.2 Li…

7天GMV达220万美元!TikTok Shop爆品榜出炉。

7天GMV达220万美元!TikTok Shop爆品榜出炉 8月28日消息,据跨境指南联合TikTok数据分析平台EchoTik发布的数据,监测了上周TikTok Shop印尼、马来西亚、泰国、美国市场GMV前10的商品。上周在印尼市场GMV排名前10的商品中:FREE ONGK…

Kotlin协程flow缓冲buffer

Kotlin协程flow缓冲buffer 先看一个普通的flow&#xff1a; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlocking import kotlin.system.measureTimeMillisfun main(args: Array<String>) {val delayTime 100Lru…

初试nacos服务注册中心

项目基本流程是想获取订单信息的同时获取用户信息&#xff0c;所以order服务提供nacos获取user服务提供的用户信息。 启动nacos服务 在bin目录下的cmd命令行下执行 startup.cmd -m standalone 单机部署 启动服务 服务注册到nacos Nacos是SpringCloudAlibaba的组件&#xff0c…

Yolov8小目标检测(12):动态稀疏注意力BiFormer | CVPR 2023

💡💡💡本文改进:动态稀疏注意力,cvpr2023。 BiFormer | 亲测在红外弱小目标检测涨点,map@0.5 从0.755提升至0.758 💡💡💡Yolo小目标检测,独家首发创新(原创),适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步骤和源码,带你轻松实现小…

【GPT,Flask】用Python Flask结合OpenAI的GPT API构建一个可自主搭建的内容生成应用网站

【背景】 自己构建模型并进行训练需要很高的知识,技能和资源门槛。如今,通过OpenAI提供的API,则可以快速通过GPT能力构建可以提供内容生成服务的在线网站。这套框架可以提供给用户,用户可以利用该框架在自己的环境(比如自己的公司内)构建内容生成服务。你也可以自己上线…

【C++入门】模版初阶(泛型编程)

目录 1.泛型编程2.函数模版2.1函数模版的概念2.2函数模版的使用2.3函数模版的原理2.4函数模版的实例化2.5 模板参数的匹配原则 3.类模版3.1类模版的定义格式3.2类模版的实例化 1.泛型编程 让我们思考一个小问题&#xff1a;如何实现一个通用的交换函数呢&#xff1f; 在解决这…

自动泊车的自动驾驶控制算法

1. 自动泊车系统 自动泊车系统(AutomatedParkingASSiSt,APA)利用车辆搭载的传感器感知车辆周边环境,扫描满足当前车辆停放的障碍物空间车位或线车位,并通过人机交互(HumanMachine Interface,HMI)获取驾驶员对目标车位的选择或自动确定目标车位,自动规划泊车路径,通过控制器向车…

【C++笔记】C++内存管理

【C笔记】C内存管理 一、C中动态内存申请的方式二、new和delete的实现原理2.1、operator new和operator delete函数 一、C中动态内存申请的方式 在C语言中我们需要动态申请空间的时候我们通常都是用malloc函数&#xff0c;但是malloc函数对自定义类型是没什么问题的&#xff0…

ATA-2161高压放大器的电子实验案例(案例合集)

ATA-2161是一款理想的可放大交直流信号的单通道高压放大器。最大差分输出1600Vp-p(800Vp)高压&#xff0c;可以驱动高压型负载。凭借其优异的指标参数受到不少电子工程师的喜欢&#xff0c;其在电子实验中的应用也非常频繁&#xff0c;下面为大家整理出ATA-2161高压放大器的应用…

无涯教程-Android - Intents/Filters

Android Intent 是要执行的操作的抽象描述。它可以与 startActivity 一起启动Activity&#xff0c;将 broadcastIntent 发送给任何BroadcastReceiver组件&#xff0c;并与 startService(Intent)或 bindService(Intent&#xff0c;ServiceConnection&#xff0c;int)与后台服务进…

jq——点击显示隐藏来回切换、图片来回切换

案例展示 案例代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>显示隐藏</title></head><script src"js/jquery.js"></script><style>.switch {width: 50px;height: 50px;…

antd table minHeight

网上常见设置antd table最小宽度的方案&#xff1a; 这种方法也不是不可以&#xff0c;但是若需要动态设置最小高度的话&#xff0c;这样写就不是很合适。 所以这边选择动态计算table高度的方法来实现&#xff1a; 第一步&#xff1a;计算table scroll height const getTab…

「CSS|前端开发|页面布局」03 开发网站所需要知道的CSS:如何实现你想要的页面布局

本文主要介绍如何分析页面布局&#xff0c;了解HTML标签元素的默认布局以及如何修改标签元素的布局方式&#xff0c;最终能够结合CSS框架实现任意我们看到或者想到的页面布局。 文章目录 本系列前文传送门一、场景说明二、页面布局设计逻辑三、CSS布局编写逻辑HTML元素的默认布…

【附安装包】CorelCAD2023安装教程

软件下载 软件&#xff1a;CorelCAD版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;534.17M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.bai…

证券型代币成为新焦点!交易上链,合规也要上链?

“数字化正在使传统行业的边界变得模糊&#xff0c;这是一场真正的金融革命。”麦肯锡早在2017年的《在没有边界的世界中竞争》报告中就以此形容了数字化浪潮。随着对虚拟资产的全球接受度增加&#xff0c;监管机构也开始对其潜力展开讨论。 当代币被视为金融工具时&#xff0c…