Ejemplo n.º 1
0
def test_service_birnbaum_importance_with_no_scaling(
        full_example_system: SystemGraph, full_example_data_1: Dict):
    b_imps = services.get_birnbaum_importances(full_example_system,
                                               full_example_data_1, "data",
                                               {"SCALE_METRICS": "NONE"})
    assert len(b_imps) != 0
    assert approx(sum(b_imps.values()) < 1)
Ejemplo n.º 2
0
def test_service_birnbaum_importance_default_scaling(
        full_example_system: SystemGraph, full_example_data_1: Dict):
    b_imps = services.get_birnbaum_importances(full_example_system,
                                               full_example_data_1, "data")
    assert len(b_imps) != 0
    assert approx(max(b_imps.values()) == 1)
    assert approx(min(b_imps.values()) == 0)
Ejemplo n.º 3
0
async def node_importance_sensitivity(sg_id: str,
                                      data_source: str,
                                      rq: RequestBody = Body(...),
                                      node_id: Optional[str] = None):
    sg = services.get_system_graph(sg_id, repo)
    result = services.get_birnbaum_importances(sg, rq.data, data_source)
    if node_id is None:
        return dict(name="node_importance_sensitivity",
                    payload=result,
                    node_id=node_id,
                    data_source=data_source)
    else:
        return dict(name="node_importance_sensitivity",
                    payload={node_id: result[node_id]},
                    node_id=node_id,
                    data_source=data_source)
Ejemplo n.º 4
0
def test_get_birnbaum_importance(minimal: SystemGraph):
    data = {
        "nodes": {
            "x1": {
                "risk": 0.5
            },
            "x2": {
                "risk": 0.5
            },
            "x3": {
                "risk": 0.5
            }
        }
    }
    b_imps = services.get_birnbaum_importances(minimal, data, data_src="data")
    assert len(b_imps) != 0
Ejemplo n.º 5
0
def main():
    args = parse_args()

    repo = FakeRepository()

    with open(args.input) as infile:
        sg = load_system_graph_json_str(infile.read())

    print("*** System Graph ***")
    pprint(dump_system_graph_json(sg))

    print("\n\n*** Birnbaum Structural Importances ***")
    pprint(get_birnbaum_structural_importances(sg, repo))

    print("\n\n*** Birnbaum Importances ***")
    pprint(get_birnbaum_importances(sg, repo))

    print("\n\n*** Risk ***")
    pprint(get_risk(sg, repo))