Inspiration

Engineering a software that is able to predict whether a transaction between a bank and their clients will succeed or not without defining any heuristics or human intervention.

What it does

The two models can classify what a client's transaction status is. Currently, it can only perform on deposits and withdrawals. From testing, the models seems to learn that transactions from a reliable source is more likely to be executed, increasing this likelihood if the range of deposit or withdraw was seen before.

How I built it

I first had to preprocess the Deposit and Withdrawal datasets, thus making sure that it was compatible to be fed into the two models. The shallow model is a random forest classifier, which is an ensemble learning extension to decision trees. I chose this model since it can provide insight on how the output was computed, meaning that the status that this model would predict would be explainable. This transparency is very important in the field of finance. I trained this model so that with the given dataset, it receives above 99% accuracy on all data distributions. The deep model is a vanilla 3 layer model, and I developed this model because I initially thought this would perform better. It unfortunately does not, receiving around 94% accuracy on all data example. Once the models was trained, I made a UI via terminal/cmd as well as with Flask. The terminal/cmd UI runs more efficiently from running a couple timeit tests, but the difference was very insignificant. I forked a web template for the index page, and I developed the extension pages.

Challenges I ran into

The hardest part of development was preprocessing through the dataset, and making sure the models architecture and parameters were developed properly to be able to learn from the data. I also did not know how to use flask, so it was difficult to work with that while learning it.

Accomplishments that I'm proud of

I managed to complete the basic prototype of a vey large scale project of trying to automate preemptive classification of transaction success.

What I learned

I learned how to work with data better, and I learn to more optimally develop a machine learning model. I also learned how to use Flask.

What's next for CapitalOne_StatusNet

There is still much to do. I have yet to train the models on the Transfer, Loan, and Purchase datasets, which I know have very important information that will allow the software to classify more accurately. The Account dataset could also allow the models to learn many heuristics that I noticed the models haven't realized yet, and they might be caught autonomously with this dataset. The UI is fairly undeveloped, but this is more of a backend software that can easily be integrated with already developed Python backend applications. This software also requires many dependencies, so using Dockers to package all of that together would be a good idea. The Flask UI only runs on local, so deploying it onto GCP or some other host is something to do.

Built With

Share this project:

Updates