提前提醒:要是遇到以下提示bug的同学,还是直接重装吧,这个问题在github的Issues上面有不少人碰到过了(我也去问了),但是目前为止,连维护这个框架的作者也并没有给出修复这个bug的答案。我是重装完之后才成功的…我猜测这个错误是因为安装的各种包依赖紊乱导致的(仅仅猜测)。

R Python Error Output
-----------------------
[Errno 2] No such file or directory: 'C:\\Users\\xxx\\AppData\\Local\\Temp\\cdt_pc_dccede31-26aa-4f57-a35b-5aeb44deaf6b\\result.csv'
RuntimeError: RProcessError
R Process Error Output

写这篇文章是由于楼主在装这个工具时碰到太多坑了。分享一些我的安装历程,希望帮到后面的人。

初衷:我装这个cdt是为了跟dowhy框架结合起来使用的,cdt用来做因果发现,dowhy用来做因果效应评估,因为dowhy的输入得有一个因果图

吐槽:装cdt是真滴麻烦,依赖pytorchR,但是直接使用命令pip install cdt 并不会把所有依赖的库全部打包下载。而在装完cdt之后再去安装pytorch和R的话又会导致各种各样的依赖不匹配,版本不match的各种bug,令人十分奔溃。

一、安装cdt 及其基本依赖环境

下图给出cdt所依赖的各个库。

推荐后面需要使用cdt的伙伴们,都用以下的方式进行安装,经我测试还是比较稳妥的,并且建议使用anaconda新建一个环境,我新建的环境python版本是3.10.6。 以下命令在conda activate env-name(新建环境名字)后 ,就可以输入进行下载了。

$ git clone https://github.com/Diviyan-Kalainathan/CausalDiscoveryToolbox.git  # Download the package
$ cd CausalDiscoveryToolbox
$ pip install -r requirements.txt  # Install the requirements

就是直接从github下载这个框架的源代码,使用pip install -r requirements.txt 命令下载这个框架所需要的依赖,这样可以自动搜索相互匹配的各个版本库,不会导致包冲突,进而出来各种奇奇怪怪的bug[吐血]。

然后去运行以下demo代码测试

import cdt
import networkx as nx
import pandas as pd
import matplotlib.pyplot as plt
from cdt.causality.graph import PC# Load the data
data = pd.read_csv("http://www.causality.inf.ethz.ch/data/lucas0_train.csv")# Infer the causal diagram
pc_output = PC().create_graph_from_data(data)# Visualize the diagram
nx.draw_networkx(pc_output)
plt.show()

给我爆了个“R Call errored, is R available ?” 这样的错误。

R??这是啥玩意? 后面去到cdt官方文档里头查找,才知道cdt这框架还用到R语言下的一些算法包。


在调用PC或者(LiNGAM)等算法时cdt.causality.graph.PC,会依赖到R下的某些包。
好吧这回又得去下载R语言。

二、安装R语言及相应R包

这里贴一下下载R语言的官方链接
但是我没有下载最新版本的R-4.2.2(最新的大多容易出事)
我下载的windows下的旧版本R-4.1.2

贴一下,下载windows R语言旧版本的链接

(1)R语言安装过程界面

①:选择中文

②:下一步

③定义安装位置

④:我去掉了32字节的

⑤默认下一步

⑥默认下一步

然后就等待安装完成…

(2)R包安装过程

安装完R语言之后,还得安装cdt所依赖的R包。
看看github上面给出的依赖R包目录。

接下来在R下安装所依赖的各种R包
打开R界面:

(这玩意是真滴陌生呀…)
安装R包的几种方式贴个链接

①如果没记错的话
pcalg和kpcalg是直接通过
install.packages("xxx") xxx包名可以直接下载的

其余的包只能借助BiocManager来安装

install.packages('BiocManager')
library(BiocManager)
install('xxx')    #xxx是包名

或者直接一条命令打包下载

install.packages('BiocManager')
BiocManager::install(c("SID", "bnlearn", "pcalg", "kpcalg", "glmnet", "mboost"))'
library(xxx)    #好像是调用包,加载到内存的意思?不太确定

②但是这里也有个暗坑!
就是RCIT这个包,会弹错误“package ‘XX’ is not available for this version of R”

解决这个问题是参考github链接方法
通过以下方式安装

library(devtools)
install_github("Diviyan-Kalainathan/RCIT")
library(RCIT)
RCIT(rnorm(1000),rnorm(1000),rnorm(1000))
RCoT(rnorm(1000),rnorm(1000),rnorm(1000))

可能这一步得先install.packages("devtools")
安装好devtools工具之后再调用它的install_github函数

③还有还有!!还有一个R包SID也没有办法这样安装,得另辟新径!
在尝试安装SID时会提示找不到SID,解决办法是手动安装。
首先R包SID官方已经提示下架了

但是我安装了旧版本的也能用
贴旧版本的R包SID的下载链接

下载完之后
就是导入下载的SID包了。

在这里导入SID

选择导入就ok了。

至此,安装cdt及其所依赖的R环境就全部都配置好啦!!

如果这些都配置好之后,运行代码还是报错“R Call errored, is R available ?” ,此时是因为cdt找不到R包,就还得去修改cdt找R包的路径。

具体修改步骤:
1、找到对应的cdt安装路径,我是在anaconda下配置的环境,我的路径是D:\anaconda3\envs\dowhy\Lib\site-packages\cdt
2、进入utils,打开Settings.py,修改_init_函数下的self.rpath参数为对应的刚才R语言安装目录下的Rscript的路径,我的Rscript路径为D:\SoftWare\R-4.1.2\bin\Rscript.exe
3、最终修改样式:

self.rpath = 'D:\\SoftWare\\R-4.1.2\\bin\\Rscript.exe'

运行上述demo代码
结果:

大功告成!

因果发现工具 Causal Discovery Toolbox(cdt)安装指南相关推荐

  1. 【因果发现】 针对时序数据的因果图学习

    文章目录 一.任务 二.数据集说明 三.专业名词 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一.任务 This track focuses on solvin ...

  2. 《因果学习周刊》第10期:ICLR2022中最新Causal Discovery相关论文介绍

    No.10 智源社区 因果学习组 因 果 学  习 研究 观点 资源 活动 关于周刊 因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  3. casual discovery Toolbox使用(R语言做因果分析)

    casual discovery Toolbox使用 cdt(casual discovery Toolbox)是一个用于因果关系发现的开源工具包,里面包括10多个算法.其中一些是用R语言开发的所以需 ...

  4. 《因果学习周刊》第5期:NeurIPS2021 因果发现最新进展

    No.05 智源社区 因果学习组 因 果 学  习 研究 观点 资源 活动 关于周刊 因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  5. CORL: 基于变量序和强化学习的因果发现算法

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 来源:诺亚实验室 华为诺亚方舟实验室.西安交通大学 ...

  6. 《因果学习周刊》第4期:因果发现方法

    关于周刊 因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和资讯,智源社区结合领域内容,撰写了第4期<因果学习周刊>. 发现 ...

  7. ​causal-learn:基于Python的因果发现算法平台

    来源:集智俱乐部 本文约1100字,建议阅读5分钟 本文为你介绍基于Python的统一算法基本框架. Causal-learn,由CMU张坤老师主导,多个团队(CMU因果研究团队.DMIR实验室.宫明 ...

  8. 论文总结——因果发现与推断

    文章目录 背景 非时序因果模型 因果充分性假设 两个变量之间的因果关系 基于约束的方法 结构方程模型(Structural Equation Model,SEM) 时序因果模型 待解决的问题 参考 背 ...

  9. 【论文笔记】A Meta-Reinforcement Learning Algorithm for Causal Discovery

    目录 Abstract 1 MOTIVATION AND CONTRIBUTION 2 PRELIMINARIES AND NOTATION 3 WORKING ASSUMPTIONS 4 REINF ...

最新文章

  1. 70佳精美的PSD素材免费下载(上篇)
  2. Leangoo看板工具做敏捷故事地图看板示例
  3. SQL学习笔记:库和表的创建
  4. oracle创建分区表
  5. 开始→运行→命令集锦
  6. 学习笔记 Keras:基于Python的深度学习库
  7. 交通银行签约第四范式,建设全行级统一AI能力平台
  8. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Docker
  9. 网络管理服务器规格型号,H3C vLNS系列虚拟L2TP网络服务器 配置指导-E1116-5W101
  10. java 展现层框架_spring快速入门例子教程:06展现层
  11. 实现二叉排序树的各种算法
  12. 热门好用的空号检测API推荐
  13. CentOS install btsync
  14. Dell服务器开启CPU虚拟化
  15. SqlServer中的Top * With Ties
  16. 智能合约在衍生品上的应用_5种衍生品在您的机器学习面试中表现出色
  17. Ubuntu 20.04自动挂载NFS失败
  18. 运维企业实战——RHCS集群套件 实现高可用
  19. 粗读PSIGAN: Joint Probabilistic Segmentation andImage Distribution Matching for UnpairedCross-Modali
  20. 松翰2.4G无线传输USB摄像头方案

热门文章

  1. 【kubernetes/k8s源码分析】kubelet cri源码分析
  2. FFMPEG只编译H264编码
  3. 协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
  4. 在Windows上安装Elasticsearch 5.x
  5. 计算机在化学中的应用心得体会,我对分析化学的认识和感悟
  6. 龙芯2K1000使用nfs挂载文件系统进行使用
  7. ios 震动api_震动API
  8. GTP(学习笔记1)
  9. 2023数学建模美赛赛题思路分析 2023美赛 美国大学生数学建模数模
  10. 软件需求规格说明书——学生成绩查询系统