Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -14,33 +14,21 @@ explainer = shap.Explainer(loaded_model) # PLEASE DO NOT CHANGE THIS.
|
|
| 14 |
|
| 15 |
# Create the main function for server
|
| 16 |
# Create the main function for server
|
| 17 |
-
|
|
|
|
| 18 |
|
| 19 |
-
new_row = pd.DataFrame.from_dict({'EAL_SCORE':EAL_SCORE,'SOVI_SCORE':SOVI_SCORE,
|
| 20 |
-
'DROUGHT_RISKS':DROUGHT_RISKS,'EARTHQUAKE_RISKS':EARTHQUAKE_RISKS,'HURICANE_RISKS':HURICANE_RISKS,
|
| 21 |
-
'TORNADO_RISKS':TORNADO_RISKS,'WILDFIRE_RISKS':WILDFIRE_RISKS,'WINTERWEATHER_RISKS':WINTERWEATHER_RISKS,
|
| 22 |
'SOCIAL':SOCIAL,'ECONOMY':ECONOMY,'HOUSING_INFRASTRUCTURE':HOUSING_INFRASTRUCTURE,
|
| 23 |
-
'
|
| 24 |
|
| 25 |
prob = loaded_model.predict_proba(new_row)
|
| 26 |
|
| 27 |
# compute SHAP values
|
| 28 |
explainer = shap.TreeExplainer(loaded_model)
|
| 29 |
shap_values = explainer.shap_values(new_row,check_additivity=False)
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
|
| 35 |
-
# plot = shap.waterfall_plot(shap.Explanation(values=shap_values[0][0],
|
| 36 |
-
# base_values=explainer.expected_value[0], data=X_test.iloc[0],
|
| 37 |
-
# feature_names=X_test.columns.tolist()))
|
| 38 |
-
|
| 39 |
-
# shap_values = explainer(new_row, check_additivity=False)
|
| 40 |
-
# plot = shap.force_plot(shap_values[0], matplotlib=True, figsize=(30,30), show=False)
|
| 41 |
-
# plot = shap.plots.waterfall(shap_values[0], max_display=6, show=False)
|
| 42 |
-
# plot = shap.waterfall_plot(explainer.base_values[0], shap_values[0][0], X[0])
|
| 43 |
-
# plot = shap.plots.bar(shap_values[0], max_display=6, order=shap.Explanation.abs, show_data='auto', show=False)
|
| 44 |
|
| 45 |
plt.tight_layout()
|
| 46 |
local_plot = plt.gcf()
|
|
@@ -67,21 +55,15 @@ with gr.Blocks(title=title) as demo:
|
|
| 67 |
gr.Markdown("""---""")
|
| 68 |
with gr.Row():
|
| 69 |
with gr.Column():
|
|
|
|
| 70 |
EAL_SCORE = gr.Slider(label="EAL Score", minimum=0, maximum=100, value=20, step=5)
|
| 71 |
SOVI_SCORE = gr.Slider(label="SOVI Score", minimum=0, maximum=100, value=20, step=5)
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
WINTERWEATHER_RISKS = gr.Slider(label="WINTER WEATHER Score", minimum=0, maximum=100, value=20, step=5)
|
| 79 |
-
SOCIAL = gr.Slider(label="Social Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 80 |
-
ECONOMY = gr.Slider(label="Economic Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 81 |
-
HOUSING_INFRASTRUCTURE = gr.Slider(label="Housing Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 82 |
-
COMMUNNITY_CAPITAL = gr.Slider(label="Community Capital Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 83 |
-
INSTITUTIONAL = gr.Slider(label="Institutional Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 84 |
-
ENVIRONMENT = gr.Slider(label="Environment Score", minimum=0, maximum=1, value=.5, step=.1)
|
| 85 |
submit_btn = gr.Button("Analyze")
|
| 86 |
with gr.Column(visible=True) as output_col:
|
| 87 |
label = gr.Label(label = "RISK RATING")
|
|
@@ -89,26 +71,19 @@ with gr.Blocks(title=title) as demo:
|
|
| 89 |
|
| 90 |
submit_btn.click(
|
| 91 |
main_func,
|
| 92 |
-
[EAL_SCORE,SOVI_SCORE,
|
| 93 |
[label,local_plot], api_name="Climate Risk Model"
|
| 94 |
)
|
| 95 |
|
| 96 |
gr.Markdown("### Click on any of the examples below to see how it works:")
|
| 97 |
-
gr.
|
| 98 |
-
|
| 99 |
-
[
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
[
|
| 105 |
-
|
| 106 |
-
gr.Examples([[21.06, 15.37, 58.77, 2.32, .5035, 0, 11.98, 4.957, 6.808, .7231, .5359, .2884, .328, .407, .5015]],
|
| 107 |
-
[EAL_SCORE,SOVI_SCORE,RESL_SCORE,DROUGHT_RISKS,EARTHQUAKE_RISKS,HURICANE_RISKS,TORNADO_RISKS,WILDFIRE_RISKS,WINTERWEATHER_RISKS,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 108 |
-
[label,local_plot], main_func, cache_examples=True)
|
| 109 |
-
gr.Markdown("Falls Church, Virginia")
|
| 110 |
-
gr.Examples([[6.947, 4.178, 56.86, 0, .1587, .5027, 1.071, 0, 0, .8181, .5221, .3878, .2463, .389, .3921]],
|
| 111 |
-
[EAL_SCORE,SOVI_SCORE,RESL_SCORE,DROUGHT_RISKS,EARTHQUAKE_RISKS,HURICANE_RISKS,TORNADO_RISKS,WILDFIRE_RISKS,WINTERWEATHER_RISKS,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 112 |
-
[label,local_plot], main_func, cache_examples=True)
|
| 113 |
|
| 114 |
demo.launch()
|
|
|
|
| 14 |
|
| 15 |
# Create the main function for server
|
| 16 |
# Create the main function for server
|
| 17 |
+
|
| 18 |
+
def main_func(CLIMATE_SCENARIO, EAL_SCORE,SOVI_SCORE,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT):
|
| 19 |
|
| 20 |
+
new_row = pd.DataFrame.from_dict({'CLIMATE_SCENARIO': CLIMATE_SCENARIO, 'EAL_SCORE':EAL_SCORE,'SOVI_SCORE':SOVI_SCORE,
|
|
|
|
|
|
|
| 21 |
'SOCIAL':SOCIAL,'ECONOMY':ECONOMY,'HOUSING_INFRASTRUCTURE':HOUSING_INFRASTRUCTURE,
|
| 22 |
+
'COMMUNITY_CAPITAL':COMMUNITY_CAPITAL,'INSTITUTIONAL':INSTITUTIONAL,'ENVIRONMENT':ENVIRONMENT}, orient = 'index').transpose()
|
| 23 |
|
| 24 |
prob = loaded_model.predict_proba(new_row)
|
| 25 |
|
| 26 |
# compute SHAP values
|
| 27 |
explainer = shap.TreeExplainer(loaded_model)
|
| 28 |
shap_values = explainer.shap_values(new_row,check_additivity=False)
|
| 29 |
+
plot = shap.summary_plot(shap_values[0], new_row.values, feature_names = new_row.columns)
|
| 30 |
+
|
|
|
|
|
|
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
plt.tight_layout()
|
| 34 |
local_plot = plt.gcf()
|
|
|
|
| 55 |
gr.Markdown("""---""")
|
| 56 |
with gr.Row():
|
| 57 |
with gr.Column():
|
| 58 |
+
CLIMATE_SCENARIO = gr.Slider(label="Climate Scenario", minimum=0, maximum=2, value=0, step=1)
|
| 59 |
EAL_SCORE = gr.Slider(label="EAL Score", minimum=0, maximum=100, value=20, step=5)
|
| 60 |
SOVI_SCORE = gr.Slider(label="SOVI Score", minimum=0, maximum=100, value=20, step=5)
|
| 61 |
+
SOCIAL = gr.Slider(label="Social", minimum=0, maximum=1, value=.5, step=.1)
|
| 62 |
+
ECONOMY = gr.Slider(label="Economy", minimum=0, maximum=1, value=.5, step=.1)
|
| 63 |
+
HOUSING_INFRASTRUCTURE = gr.Slider(label="Housing Infrastructure", minimum=0, maximum=1, value=.5, step=.1)
|
| 64 |
+
COMMUNITY_CAPITAL = gr.Slider(label="Community Capital", minimum=0, maximum=1, value=.5, step=.1)
|
| 65 |
+
INSTITUTIONAL = gr.Slider(label="Institutional", minimum=0, maximum=1, value=.5, step=.1)
|
| 66 |
+
ENVIRONMENT = gr.Slider(label="Environment", minimum=0, maximum=1, value=.5, step=.1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
submit_btn = gr.Button("Analyze")
|
| 68 |
with gr.Column(visible=True) as output_col:
|
| 69 |
label = gr.Label(label = "RISK RATING")
|
|
|
|
| 71 |
|
| 72 |
submit_btn.click(
|
| 73 |
main_func,
|
| 74 |
+
[CLIMATE_SCENARIO,EAL_SCORE,SOVI_SCORE,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 75 |
[label,local_plot], api_name="Climate Risk Model"
|
| 76 |
)
|
| 77 |
|
| 78 |
gr.Markdown("### Click on any of the examples below to see how it works:")
|
| 79 |
+
gr.Examples([[0, 46.23, 63.85, .564, .4703, .3068, .2161, .3623, .6264]],
|
| 80 |
+
[CLIMATE_SCENARIO,EAL_SCORE,SOVI_SCORE,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 81 |
+
[label,local_plot], main_func, cache_examples=True, label="Miami-Dade County, Florida")
|
| 82 |
+
gr.Examples([[0, 21.05, 15.37, .7231, .5359, .2884, .3828, .4070, .5015]],
|
| 83 |
+
[CLIMATE_SCENARIO,EAL_SCORE,SOVI_SCORE,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 84 |
+
[label,local_plot], main_func, cache_examples=True, label="Washington County, Minnesota")
|
| 85 |
+
gr.Examples([[6.929, 4.178, .8181, .5221, .3878, .2463, .389,.3921]],
|
| 86 |
+
[CLIMATE_SCENARIO,EAL_SCORE,SOVI_SCORE,SOCIAL,ECONOMY,HOUSING_INFRASTRUCTURE,COMMUNITY_CAPITAL,INSTITUTIONAL,ENVIRONMENT],
|
| 87 |
+
[label,local_plot], main_func, cache_examples=True, label="Falls Church, Virginia")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
|
| 89 |
demo.launch()
|