graphical_models.classes.dags.dag.DAG.confusion_matrix
- DAG.confusion_matrix(other, rates_only=False)[source]
Return the “confusion matrix” associated with estimating the CPDAG of
other
instead of the CPDAG of this DAG.- Parameters
other – The DAG against which to compare.
rates_only – if True, the dictionary of results only contains the false positive rate, true positive rate, and precision.
- Returns
Dictionary of results
- false_positive_arcs:
the arcs in the CPDAG of
other
which are not arcs or edges in the CPDAG of this DAG.
- false_positive_edges:
the edges in the CPDAG of
other
which are not arcs or edges in the CPDAG of this DAG.
- false_negative_arcs:
the arcs in the CPDAG of this graph which are not arcs or edges in the CPDAG of
other
.
- true_positive_arcs:
the arcs in the CPDAG of
other
which are arcs in the CPDAG of this DAG.
- reversed_arcs:
the arcs in the CPDAG of
other
whose reversals are arcs in the CPDAG of this DAG.
- mistaken_arcs_for_edges:
the arcs in the CPDAG of
other
whose reversals are arcs in the CPDAG of this DAG.
- false_negative_edges:
the edges in the CPDAG of this DAG which are not arcs or edges in the CPDAG of
other
.
- true_positive_edges:
the edges in the CPDAG of
other
which are edges in the CPDAG of this DAG.
- mistaken_edges_for_arcs:
the edges in the CPDAG of
other
which are arcs in the CPDAG of this DAG.
- num_false_positives:
the total number of: false_positive_arcs, false_positive_edges
- num_false_negatives:
the total number of: false_negative_arcs, false_negative_edges, mistaken_arcs_for_edges, and reversed_arcs
- num_true_positives:
the total number of: true_positive_arcs, true_positive_edges, and mistaken_edges_for_arcs
- num_true_negatives:
the total number of missing arcs/edges in
other
which are actually missing in this DAG.
- fpr:
the false positive rate, i.e., num_false_positives/(num_false_positives+num_true_negatives). If this DAG is fully connected, defaults to 0.
- tpr:
the true positive rate, i.e., num_true_positives/(num_true_positives+num_false_negatives). If this DAG is empty, defaults to 1.
- precision:
the precision, i.e., num_true_positives/(num_true_positives+num_false_positives). If
other
is empty, defaults to 1.
- Return type
dict
Examples
>>> from graphical_models import DAG >>> d1 = DAG(arcs={(0, 1), (1, 2)}) >>> d2 = DAG(arcs={(0, 1), (2, 1)}) >>> cm = d1.confusion_matrix(d2) >>> cm["mistaken_edges_for_arcs"] {frozenset({0, 1}), frozenset({1, 2})}, >>> cm = d2.confusion_matrix(d1) >>> cm["mistaken_arcs_for_edges"] {(0, 1), (2, 1)}