首页 > 编程语言 >【python因果库实战11】用现有数据运行估计器

【python因果库实战11】用现有数据运行估计器

时间:2024-12-27 20:32:19浏览次数:6  
标签:11 set python observed 因果 var outcome types treatment

这里写目录标题


在这里插入图片描述

使用现有数据运行模拟器

考虑输入数据已经存在并且已有因果结构的情况。我们希望根据这些数据模拟治疗分配和结果。

初始化数据

首先我们将所需数据加载到pandas DataFrame中:

import pandas as pd
from causallib.datasets import load_nhefs
from causallib.datasets import CausalSimulator
from causallib.datasets import generate_random_topology
data = load_nhefs()
X_given = data.X

假设我们要创建三个额外变量:协变量、治疗和结果。这样很难硬编码很多变量,所以我们使用随机拓扑生成器:

topology, var_types = generate_random_topology(n_covariates=1, p=0.4,
                                               n_treatments=1, n_outcomes=1,
                                               given_vars=X_given.columns)

现在我们根据变量拓扑创建模拟器:

outcome_types = "categorical"
link_types = ['linear'] * len(var_types)
prob_categories = pd.Series(data=[[0.5, 0.5] if typ in ["treatment", "outcome"] else None for typ in var_types],
                            index=var_types.index)
treatment_methods = "gaussian"
snr = 0.9
treatment_importance = 0.8
effect_sizes = None
sim = CausalSimulator(topology=topology.values, prob_categories=prob_categories,
                      link_types=link_types, snr=snr, var_types=var_types,
                      treatment_importances=treatment_importance,
                      outcome_types=outcome_types,
                      treatment_methods=treatment_methods,
                      effect_sizes=effect_sizes)

现在为了根据给定数据生成数据,我们需要指定:

X, prop, y = sim.generate_data(X_given=X_given)

格式化数据用于训练和保存

既然我们已经生成了一些数据,我们可以将其格式化以便更容易训练和验证:

observed_set, validation_set = sim.format_for_training(X, prop, y)

可观测集是可观测数据集(不包括隐藏变量)验证集用于验证目的——包含反事实、样本的治疗分配和倾向。你可以将数据集保存为csv:

covariates = observed_set.loc[:, observed_set.columns.str.startswith("x_")]
print(covariates.shape)
covariates.head()
(1566, 19)

在这里插入图片描述

treatment_outcome = observed_set.loc[:, (observed_set.columns.str.startswith("t_") |
                                         observed_set.columns.str.startswith("y_"))]
print(treatment_outcome.shape)
treatment_outcome.head()
(1566, 2)

在这里插入图片描述

print(validation_set.shape)
validation_set.head()
(1566, 5)

在这里插入图片描述

标签:11,set,python,observed,因果,var,outcome,types,treatment
From: https://blog.csdn.net/qq_32146369/article/details/140904576

相关文章

  • python爱心代码大全
    python爱心代码 详细分析这段代码实现了一个用Python的Tkinter库绘制跳动爱心的程序,其中包括了一个弹窗来询问是否做一个人的女朋友,如果同意则会显示跳动的爱心,如果拒绝则会重新询问。(无法解决,只能同意哦~)下面对代码进行详细分析:1.导入必要的库首先,导入了一些必要的Python库......
  • Python中的Transformer架构:从BERT到GPT
    文章目录一、Transformer架构基础1.1Transformer的主要组成编码器解码器1.2注意力机制详解二、BERT模型:从预训练到微调2.1BERT的核心创新2.2BERT的实现2.3BERT的应用三、GPT模型:生成式的突破3.1GPT的特点3.2GPT的实现3.3GPT的演进四、BERT与GPT的对比五、如......
  • 用Python优化生成式AI模型的损失函数
    文章目录一、生成式AI中损失函数的基础1.1什么是损失函数?1.2生成式AI中的损失函数类型二、常见损失函数的优化方法2.1重建损失的优化原理优化方法实践代码2.2对抗损失的优化原理优化方法实践代码2.3KL散度与交叉熵的优化原理优化方法实践代码2.4感知损失的优化......
  • WxPython跨平台开发框架之复杂界面内容的分拆和重组处理
    复杂界面内容的分拆和重组处理是现代软件开发中常见的做法,尤其在开发大型应用程序时,可以大幅提升开发效率、可维护性和用户体验。通过将复杂的界面内容分拆成更小的模块,每个模块都专注于单一功能或组件,代码更容易理解和维护。模块化的界面组件可以在多个地方复用,减少了重复开发的......
  • Python硬解码并AI推理——PyNvVideoCodec使用记录
    PyNvVideoCodec替换VPF原来的VPF不能用了,现在变成了了PyNvVideoCodec。直接通过pip安装但是Python版本要大于3.10,但也比之前安装友多了。GitHub-NVIDIA/VideoProcessingFramework:SetofPythonbindingstoC++librarieswhichprovidesfullHWaccelerationforvideo......
  • 【华为OD-E卷 - 猜字谜100分(python、java、c++、js、c)】
    【华为OD-E卷-猜字谜100分(python、java、c++、js、c)】题目小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下:对于某个谜面和谜底单词,满足下面任一条件都表示猜中:变换顺序以后一样的,比如通过变换w和e......
  • 郴州年夜饭大数据分析:Python爬虫的美味之旅
    在春节这个阖家团圆的日子里,年夜饭无疑是最具仪式感的一餐。郴州,这座美食之城,其年夜饭的餐桌上自然少不了那些让人垂涎三尺的地道美食。作为一名热爱美食的程序员,我决定用Python爬虫技术,为大家揭秘郴州年夜饭的必备菜品。以下是我如何通过Python爬虫获取郴州年夜饭菜品信息,......
  • ZZULIOJ 1108: 打印数字图形(函数专题)
    题目描述:        从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。要求在程序中定义并调用如下函数:PrintSpace(m)用来输出m个空格;PrintDigit(m)来输出一行中的数字串"12...m...21"(该行中的最大数字是m)。函数原型如下:voidPrintDigit(intm);   voidPrintSp......
  • Python数据结构之队列
    1、对列队列(Queue)是一种线性数据结构,遵循先进先出(FIFO)的原则。可以将队列想象成排队的场景,最先排队的人最先被服务。2、队列的特点先进先出(FIFO):队列遵循先进先出的原则,第一个进入队列的元素最先被移除。两个操作端:队列在队尾插入元素,在队首移除元素,两个操作端分别负责不同......
  • python怎么读取配置文件
    configparser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。使用的配置文件的好处就是不用把程序写死,可以使程序更灵活。1、创建配置文件一般将配置文件创建在config包下,配置文......