Module PdmContext.utils.causal_discovery_functions
Expand source code
import networkx as nx
def empty_cause(names, data):
return []
def calculate_with_pc(names, data):
from castle.algorithms import PC
try:
pc = PC(variant='parallel')
pc.learn(data)
except Exception as e:
print(e)
return None
learned_graph = nx.DiGraph(pc.causal_matrix)
# Relabel the nodes
MAPPING = {k: n for k, n in zip(range(len(names)), names)}
learned_graph = nx.relabel_nodes(learned_graph, MAPPING, copy=True)
edges =learned_graph.edges
fedges =[]
for tup in edges:
if tup not in fedges:
fedges.append(tup)
if (tup[1] ,tup[0]) not in fedges:
fedges.append((tup[1] ,tup[0]))
return fedges
Functions
def calculate_with_pc(names, data)
-
Expand source code
def calculate_with_pc(names, data): from castle.algorithms import PC try: pc = PC(variant='parallel') pc.learn(data) except Exception as e: print(e) return None learned_graph = nx.DiGraph(pc.causal_matrix) # Relabel the nodes MAPPING = {k: n for k, n in zip(range(len(names)), names)} learned_graph = nx.relabel_nodes(learned_graph, MAPPING, copy=True) edges =learned_graph.edges fedges =[] for tup in edges: if tup not in fedges: fedges.append(tup) if (tup[1] ,tup[0]) not in fedges: fedges.append((tup[1] ,tup[0])) return fedges
def empty_cause(names, data)
-
Expand source code
def empty_cause(names, data): return []