sd_cart_flu.py

 1"""
 2Created on May 26, 2015
 3
 4@author: jhkwakkel
 5"""
 6
 7import matplotlib.pyplot as plt
 8
 9import ema_workbench.analysis.cart as cart
10from ema_workbench import ema_logging, load_results
11
12ema_logging.log_to_stderr(level=ema_logging.INFO)
13
14
15def classify(data):
16    # get the output for deceased population
17    result = data["deceased_population_region_1"]
18
19    # if deceased population is higher then 1.000.000 people,
20    # classify as 1
21    classes = result[:, -1] > 1000000
22
23    return classes
24
25
26# load data
27fn = "./data/1000 flu cases with policies.tar.gz"
28results = load_results(fn)
29experiments, outcomes = results
30
31# extract results for 1 policy
32logical = experiments["policy"] == "no policy"
33new_experiments = experiments[logical]
34new_outcomes = {}
35for key, value in outcomes.items():
36    new_outcomes[key] = value[logical]
37
38results = (new_experiments, new_outcomes)
39
40# perform cart on modified results tuple
41
42cart_alg = cart.setup_cart(results, classify, mass_min=0.05)
43cart_alg.build_tree()
44
45# print cart to std_out
46print(cart_alg.stats_to_dataframe())
47print(cart_alg.boxes_to_dataframe())
48
49# visualize
50cart_alg.show_boxes(together=False)
51cart_alg.show_tree()
52plt.show()