SeqCausal 是一个用于序贯因果推断的工具包,专注于简单场景下的应用。序贯因果推断在开始时使用少量特征进行推断,如果无法获得足够准确的结果,再逐步引入更多特征,以此节约计算成本。
序贯因果推断与传统因果推断的主要区别在于特征使用的灵活性。传统因果推断方法要求固定数目的特征,而序贯因果推断则允许对不同的样本使用不同数量的特征,从而在保持准确度的同时节省计算资源。
请运行以下命令以安装必要的依赖:
bash
pip install -r requirements.txt
请运行以下命令以开始实验:
bash
python main.py
如果需要更改参数,可以编辑 main.py 文件中第28行到第65行的代码。通过调整这些参数,可以选择不同的数据集和模型以优化超参数。
项目代码分为以下几个主要部分:
dataset 文件夹中实现了多个模拟数据集的设置,并包括了 IHDP 和 ACIC2016 数据集。其主要功能是:
接收 args 参数
输出分割好的训练集、验证集和测试集
model 文件夹定义了模型的具体结构,目前实现了 MLP 网络和 JAFA 网络。其主要功能包括:
输入特征 X,输出决策价值函数 q
输入特征 X,输出预期输出 y1 和 y0
inference 文件定义了推断的具体方法,并包含训练和测试推断器的步骤。
agent 文件定义了决策的具体方法,并包含训练和测试决策器的步骤。
environment 文件定义了给予奖励的方式。
如果你有兴趣为 SeqCausal 做出贡献,请遵循以下步骤:
Fork 本仓库
创建你的功能分支 (git checkout -b feature/AmazingFeature)
提交你的修改 (git commit -m 'Add some AmazingFeature')
推送到分支 (git push origin feature/AmazingFeature)
提交一个 Pull Request
该项目使用 MIT 许可证。详情请参见 LICENSE 文件。 作者
[tianyuancunyan]