import streamlit as st from typing import OrderedDict from src.features.build_features import initialise_data from src.models.xgboost_model import xgboost_class from src.models.logistic_model import logistic_class from src.models.util_model_comparison import model_comparison_view from src.models.util_strategy_table import strategy_table_view def main(): st.write("Source code: https://github.com/pkiage/tool-credit-risk-modelling") currency_options = ["USD", "KES", "GBP"] model_options = ["XGBoost", "Logistic"] currency = st.sidebar.selectbox( label="What currency will you be using?", options=currency_options ) st.title("GUI for Credit Risk Modelling") st.title("Data") (_dataset, split_dataset) = initialise_data() st.title("Modelling") models_selected_list = st.sidebar.multiselect( label="Select model", options=model_options, default=model_options ) models_selected_set = set(models_selected_list) model_classes = OrderedDict() if "Logistic" in models_selected_set: logistic_model_class = logistic_class(split_dataset, currency) model_classes["Logistic"] = logistic_model_class if "XGBoost" in models_selected_set: xgboost_model_class = xgboost_class(split_dataset, currency) model_classes["XGBoost"] = xgboost_model_class model_comparison_view(split_dataset, model_classes) strategy_table_view(currency, model_classes) if __name__ == "__main__": main()