Inspiration

Spending behaviors are more unique than you think. We wanted to use machine learning to capitalize on the plentiful data that we as individuals have with our bank accounts. Protecting one's finances is one of the most important yet neglected duties that we have. We never believe that we can become a victim until it happens to us.

What it does

FiscAlert reads a data set on the user's spending habits and analyzes certain features such as their time of spending, amount they've spent, the distances between the current transaction and the previous few transactions, etc. From the data set it trains a model which can detect unusual behavior for future transactions and flags them as potential fraud. As we add in future data entries, FiscAlert adjusts its model to learn from this future data as well. FiscAlert not only protects you from fraud, but also warns you when you've spent too much or if you have purchased something unusual (based on parameters you set).

How I built it

We extracted features from a typical bank transaction entry and used them to train an anomaly detection algorithm. An initial data set is required by the user to establish the mean and standard deviations of each feature. We then started with an arbitrary epsilon (we flag the entry as fraud if the product of the probabilities of each feature is less than epsilon) and tuned it to the most optimal value. We computed statistics (such as the F_1 score and the accuracy) and adjusted the epsilon to increase these metrics. We started with a small data set and extrapolated upon that to create larger artificial data sets and were able to train our model with more accuracy.

Challenges I ran into

It was difficult to find a data set that suited our needs so we needed to create our own data set. We did not have time to create an entire data set that could train a model well so we needed to spend time to computationally create an artificial yet accurate data set. This proved to be more challenging than we thought and we spent quite some time dealing with creating this data rather than operating on it and fine tuning our UI and algorithm.

Accomplishments that I'm proud of

Machine learning is sometimes difficult to implement because a program could run bug-free but produce highly inaccurate results. I am very proud that we were able to implement an algorithm in our program and achieve an accuracy rate of over 97% and an F_1 Score of around 0.9 (the closer to 1 the better!).

What I learned

This was the first time that we worked with a machine learning project. It's often more challenging to implement an algorithm and produce accurate results than to simply understand the concepts. Being able to implement it first hand gave us a lot of insight on how large of a data set we need and what techniques we need to use to tune the learning model. We also learned that machine learning is very applicable to a variety of fields and can produce surprising results!

What's next for FiscAlert

There are still a couple of lose ends that we could not tie during the hackathon. There are a lot more features we wished to implement and we had a better vision for its UI. We're hoping to polish up the program complete a full fledged web application for FiscAlert in the future!

Share this project:

Updates