CausalDiscoveryToolbox
CausalDiscoveryToolbox copied to clipboard
[BUG] IAMB algorithm modifies input data
Describe the bug
The IAMB algorithm is modifying the input data when predict is called. It shouldn't.
I am running the following code in Python 3.8.10 with cdt 0.5.23, and 0 GPUs:
import networkx as nx
from cdt.causality.graph import IAMB
from cdt.data import load_dataset
data, graph = load_dataset("sachs")
print(data.columns)
for method in ['no-graph', 'digraph', 'undigraph']:
print(f'Running {method}...')
obj = IAMB()
if method=='no-graph':
output = obj.predict(data)
elif method=='undigraph':
output = obj.predict(data, nx.Graph(graph))
elif method=='digraph':
output = obj.predict(data, graph)
else:
raise Exception(method)
print(data.columns)
The 'digraph' case modifies data.columns, and causes the subsequent case to raise an Exception. The code above prints:
No GPU automatically detected. Setting SETTINGS.GPU to 0, and SETTINGS.NJOBS to cpu_count.
Index(['praf', 'pmek', 'plcg', 'PIP2', 'PIP3', 'p44/42', 'pakts473', 'PKA',
'PKC', 'P38', 'pjnk'],
dtype='object')
Running no-graph...
Index(['praf', 'pmek', 'plcg', 'PIP2', 'PIP3', 'p44/42', 'pakts473', 'PKA',
'PKC', 'P38', 'pjnk'],
dtype='object')
Running digraph...
The algorithm is ran on the skeleton of the given graph.
Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype='int64')
Running undigraph...
R Python Error Output
-----------------------
[Errno 2] No such file or directory: '/tmp/cdt_bnlearn_e391065c-4c2e-4a03-bd58-28731f3aca79/result.csv'
... (long traceback) ...
Hello ! Thanks for the feedback, I look into this !