问题标签 [causalml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 安装 causalml 包 python 的问题
我正在尝试使用 pip 在 Jupyter 中安装包 causalml,但出现以下错误:
在另一个论坛上,我读到这是一个 cython 问题,我已经卸载并重新安装了它,但它没有解决。我正在使用 Python 3.6.10,这里是我系统上依赖包的版本。
setuptools=50.3.0
pip=20.3
numpy=1.18.5
scipy=1.4.1
matplotlib
pandas=1.1.2
scikit-learn=0.23.2
statsmodels=0.12.0
seaborn
Cython=0.29.21
xgboost
pydotplus
tqdm
shap dil
l
lightgbm
pygam
打包
keras
张量流=2.3.0
我检查了依赖要求,我相信上述所有包都可以安装 causalml。我还尝试克隆 git repo 并安装它,但我得到了同样的错误。非常感谢您的反馈和建议。
python - 熊猫数据转换为对象的 numpy dtype
我正在尝试使用 uber 库来构建隆起树。 https://github.com/uber/causalml/blob/master/examples/feature_selection.ipynb
这是一个通过 Fisher 标准选择特征的示例
当我尝试执行它时,我得到了错误
也许有人已经有这个问题?
我也检查df
了object
,但object
类型只有treatment_group_key
在示例中
python - python:在治疗向量中找不到对照组0级
我非常陌生,causal inference
所以我所做的就是使用库示例尽可能地接近我的潜在答案。我试图使用 causlaml 库来弄清楚它是如何工作的。我将样本分成control group
、1000x3
、y = target
和treatment group
与对照组相同的形状。但是在图书馆里面的例子中,形状是不同的。代码如下:
它会抛出如下错误:
python - 连续变量的贝叶斯网络
我已经搜索并看到了一些关于此事的问题,但没有答案(由于这些问题是在一年多前提出的,我希望有所改变)
我正在寻找一个库来从一个连续变量的文件中推断出贝叶斯网络有没有任何人遇到过的简单\开箱即用的东西?例如,我尝试过 pyAgrum,但是当我运行时
pyAgrum.BNLearner(numdata).learnDAG()
我明白了
例外:[pyAgrum] 错误类型:无法对连续变量执行计数。不幸的是,以下变量是连续的:V0
已经尝试过 serval 库,但它们似乎都只适用于离散变量,希望提前获得一些帮助。
r - 使用自己的规范在 R 中使用贝叶斯网络模拟数据
假设我有一个简单的 DAG,表示混杂变量 X = 吸烟、治疗 T 和结果 Y = 死亡,这样:
T ~ X
Y ~ T + X
是否可以生成一个包含 1m 个观察值的合成数据集,该数据集遵循一些指定的条件概率:
我可以在这里手动执行此操作,因为它是一个非常基本的 DAG,但我想知道它是否可以以另一种更具可扩展性的方式完成,例如使用bnlearn
.
当前解决方案:
statistics - 随机分配治疗分配的因果推理
我主要使用观察数据,其中治疗分配不是随机的。过去我用PSM、IPTW来平衡然后计算ATE。我的问题是:现在我正在研究一个治疗分配是随机的问题,这意味着不会产生混淆效应。但治疗组和对照组的规模不同。有一个桶不平衡。
现在我应该按原样分析数据并运行统计显着性和统计功效检验吗?或者我应该使用协变量匹配来平衡治疗和控制之间的大小不平衡,然后运行显着性检验?
python - “ValueError:numpy.ndarray 大小已更改,可能表示二进制不兼容”-但第二次尝试成功
当我在 linux (x86-64) 中反序列化已在 os-x (darwin) 上序列化的causalml (0.10.0) 模型时,出现以下错误:
ValueError: numpy.ndarray size changed, may indicate binary incompatibility.
出乎意料的是,尝试在同一个 python 会话中再次反序列化它确实成功了!
环境
在序列化机器上:
- Python 3.8,一首诗 .venv
- numpy
1.18.5
(兼容 causalml 0.10.0 的最新版本) - 操作系统-x
在反序列化机器上:
- 基于 AWS lambda python 3.8 的 docker
- 蟒蛇 3.8
- linux x86_64
两者都有cython
版本0.28
,causalml
版本0.10.0
。
使用cython
版本0.29.26
(根据pip兼容),重新运行不成功。
错误在causaltree.cpython-38-x86_64-linux-gnu.so
.
Joblib 或 Pickle
我尝试了 python 的pickle
和joblib
,都引发了错误。
在使用 joblib 的情况下,会发生以下堆栈跟踪:
使用更新的 python 版本
其他答案提到升级(在反序列化环境中)到更新的 numpy,它应该是向后兼容的,可能会有所帮助。就我而言,它没有帮助。
安装 causalml 后,我pip3 install --upgrade numpy==XXX
在反序列化机器上单独替换了 numpy 版本。
- 对于 numpy
1.18.5
和1.19.5
,错误提到:Expected 96 from C header, got 80 from PyObject
- 使用 numpy
1.20.3
,错误提到:Expected 96 from C header, got 88 from PyObject
其他 numpy 数组可以序列化和反序列化吗?:是的
为了验证 numpy 序列化和反序列化是否真的可行,我测试了序列化一个随机数组(使用pickle
和joblib
:
这些实际上反序列化没有错误:
麻木源
如果我查看这一行numpy
的源代码,似乎只有在检索到的大小大于预期大小时才会引发错误。
其他一些(较旧的)stackoverflow 答案提到可以按如下方式使警告静音。但也没有帮助:
尝试两次解决了它 我找到了解决这个问题的一种方法:在同一个 python 会话中,两次加载序列化模型。第一次引发错误,第二次没有。
然后,加载的模型会按预期运行。
怎么了?有没有办法让它第一次成功?
python - 有没有办法在 python 中由 causalimpact 生成保存图?
下面是示例代码
我想将上面生成的图写入 html 或至少另存为 image 。是否有任何解决方案,因为 ci.plot() 的类型是 nonetype 。 https://github.com/WillianFuks/tfcausalimpact