This project is created as part of the course "M. Grum: Advanced AI-based Application Systems" by "Prof. Dr.-Ing. Marcus Grum - Junior Chair for Business Information Science, esp. AI-based Application Systems" at "University of Potsdam"
This project aims to forecast customer churn using an Artificial Neural Network (ANN) model and compare its performance with an Ordinary Least Squares (OLS) regression model. The dataset is sourced from Kaggle containing over 2,000 records and includes numerical features like CreditScore, Age, Balance, and EstimatedSalary, along with categorical attributes such as Geography, Gender, and Card Type. The target variable, Exited, indicates whether a customer has left the bank. The data is split into 80% training and 20% testing, with the model trained over 20 epochs using a batch size of 32 to optimize predictions. The comparison with OLS helps evaluate the effectiveness of ANN in predicting churn more accurately.
Contains scripting files related to scraping and preprocessing dataset and files related to creating ann/ols model and applying those models to activation data.
Contains ".csv" files, including a preprocesssed dataset, along with separate files for training, testing, and activation.
Contains all dockerfile for building images.
Contains model files along with performance indicators and visualizations for both ann and ols model.
Contains docker-compose files that enable the application of the ann/ols model trained on activation data.
-
to scrap and process the data:
python3.11 code/data_scraping_and_prep/data_scraping.pydata files will be saved to:
data/customer_churn_dataset/joint_data_collection.csv
data/customer_churn_dataset/training_data.csv
data/customer_churn_dataset/test_data.csv
data/customer_churn_dataset/activation_data.csv
-
to train ann model:
python3.11 code/annRequests/create_annSolution.py -
to train ols model:
python3.11 code/olsRequests/create_olsSolution.py
- Build the image:
docker build -t <DOCKERNAME>/learningbase_bankcustomerchurnprediction -f images/learningBase_BankCustomerChurnPrediction/Dockerfile . - Test the image:
docker run --rm -it <DOCKERNAME>/knowledgebase_bankcustomerchurnprediction /bin/sh - Push the image:
docker push <DOCKERNAME>/learningbase_bankcustomerchurnprediction
- Build the image:
docker build -t <DOCKERNAME>/activationbase_bankcustomerchurnprediction -f images/activationBase_BankCustomerChurnPrediction/Dockerfile . - Test the image:
docker run --rm -it <DOCKERNAME>/activationbase_bankcustomerchurnprediction /bin/sh - Push the image:
docker push <DOCKERNAME>/activationbase_bankcustomerchurnprediction
- Build the image:
docker build -t <DOCKERNAME>/knowledgebase_bankcustomerchurnprediction -f images/knowledgeBase_BankCustomerChurnPrediction/Dockerfile . - Test the image:
docker run --rm -it <DOCKERNAME>/knowledgebase_bankcustomerchurnprediction /bin/sh - Push the image:
docker push <DOCKERNAME>/knowledgebase_bankcustomerchurnprediction
- Build the image:
docker build -t <DOCKERNAME>/codebase_bankcustomerchurnprediction_ann -f images/codeBase_BankCustomerChurnPrediction_ann/Dockerfile . - Test the image:
docker run --rm -it <DOCKERNAME>/codebase_bankcustomerchurnprediction_ann /bin/sh - Push the image:
docker push <DOCKERNAME>/codebase_bankcustomerchurnprediction_ann
- Build the image:
docker build -t <DOCKERNAME>/codebase_bankcustomerchurnprediction_ols -f images/codeBase_BankCustomerChurnPrediction_ols/Dockerfile . - Test the image:
docker run --rm -it <DOCKERNAME>/codebase_bankcustomerchurnprediction_ols /bin/sh - Push the image:
docker push <DOCKERNAME>/codebase_bankcustomerchurnprediction_ols`