@@ -553,7 +553,7 @@ def ruleR4B(graph, maxPathLength, data, independence_test_method, alpha, sep_set
553553
554554
555555def fci (dataset , independence_test_method = fisherz , alpha = 0.05 , depth = - 1 , max_path_length = - 1 ,
556- verbose = False , knowledge = None ):
556+ verbose = False , background_knowledge = None ):
557557 '''
558558 Causal Discovery with Fast Causal Inference
559559
@@ -565,7 +565,7 @@ def fci(dataset, independence_test_method = fisherz, alpha=0.05, depth=-1, max_p
565565 depth: The depth for the fast adjacency search, or -1 if unlimited
566566 max_path_length: the maximum length of any discriminating path, or -1 if unlimited.
567567 verbose: True is verbose output should be printed or logged
568- knowledge : background knowledge
568+ background_knowledge : background knowledge
569569
570570 Returns
571571 -------
@@ -576,8 +576,8 @@ def fci(dataset, independence_test_method = fisherz, alpha=0.05, depth=-1, max_p
576576 ## ------- check parameters ------------
577577 if (depth is None ) or type (depth ) != int :
578578 raise TypeError ("'depth' must be 'int' type!" )
579- if (knowledge is not None ) and type (knowledge ) != BackgroundKnowledge :
580- raise TypeError ("'knowledge ' must be 'BackgroundKnowledge' type!" )
579+ if (background_knowledge is not None ) and type (background_knowledge ) != BackgroundKnowledge :
580+ raise TypeError ("'background_knowledge ' must be 'BackgroundKnowledge' type!" )
581581 if (max_path_length is not None ) and type (max_path_length ) != int :
582582 raise TypeError ("'max_path_length' must be 'int' type!" )
583583 ## ------- end check parameters ------------
@@ -588,7 +588,7 @@ def fci(dataset, independence_test_method = fisherz, alpha=0.05, depth=-1, max_p
588588 node .add_attribute ("id" , i )
589589 nodes .append (node )
590590
591- graph , sep_sets = fas (dataset , nodes , independence_test_method = independence_test_method , alpha = alpha , knowledge = knowledge , depth = depth , verbose = verbose )
591+ graph , sep_sets = fas (dataset , nodes , independence_test_method = independence_test_method , alpha = alpha , knowledge = background_knowledge , depth = depth , verbose = verbose )
592592
593593 # reorient all edges with CIRCLE Endpoint
594594 ori_edges = graph .get_graph_edges ()
@@ -598,9 +598,9 @@ def fci(dataset, independence_test_method = fisherz, alpha=0.05, depth=-1, max_p
598598 ori_edge .set_endpoint2 (Endpoint .CIRCLE )
599599 graph .add_edge (ori_edge )
600600
601- sp = SepsetsPossibleDsep (dataset , graph , independence_test_method , alpha , knowledge , depth , max_path_length , verbose )
601+ sp = SepsetsPossibleDsep (dataset , graph , independence_test_method , alpha , background_knowledge , depth , max_path_length , verbose )
602602
603- rule0 (graph , nodes , sep_sets , knowledge , verbose )
603+ rule0 (graph , nodes , sep_sets , background_knowledge , verbose )
604604
605605 waiting_to_deleted_edges = []
606606
@@ -626,21 +626,21 @@ def fci(dataset, independence_test_method = fisherz, alpha=0.05, depth=-1, max_p
626626 print (message )
627627
628628 reorientAllWith (graph , Endpoint .CIRCLE )
629- rule0 (graph , nodes , sep_sets , knowledge , verbose )
629+ rule0 (graph , nodes , sep_sets , background_knowledge , verbose )
630630
631631 changeFlag = True
632632 firstTime = True
633633
634634 while changeFlag :
635635 changeFlag = False
636- changeFlag = rulesR1R2cycle (graph , knowledge , changeFlag , verbose )
637- changeFlag = ruleR3 (graph , sep_sets , knowledge , changeFlag , verbose )
638-
639- if changeFlag or (firstTime and knowledge is not None and
640- len (knowledge .forbidden_rules_specs ) > 0 and
641- len (knowledge .required_rules_specs ) > 0 and
642- len (knowledge .tier_map .keys ()) > 0 ):
643- changeFlag = ruleR4B (graph , max_path_length , dataset , independence_test_method , alpha , sep_sets , changeFlag , knowledge , verbose )
636+ changeFlag = rulesR1R2cycle (graph , background_knowledge , changeFlag , verbose )
637+ changeFlag = ruleR3 (graph , sep_sets , background_knowledge , changeFlag , verbose )
638+
639+ if changeFlag or (firstTime and background_knowledge is not None and
640+ len (background_knowledge .forbidden_rules_specs ) > 0 and
641+ len (background_knowledge .required_rules_specs ) > 0 and
642+ len (background_knowledge .tier_map .keys ()) > 0 ):
643+ changeFlag = ruleR4B (graph , max_path_length , dataset , independence_test_method , alpha , sep_sets , changeFlag , background_knowledge , verbose )
644644
645645 firstTime = False
646646
0 commit comments