This repository creates a web application to predict if a customer is going to commit fraud. It is for academic purposes and shouldn't really be used in real life. It takes a trained machine learning model created with scikit-learn and serves it using Flask. Feel free to improve the model and/or user interface. An example of the app can be seen at https://pml-detect-fraud.herokuapp.com.
All required Python packages can be found in the requirements.txt file. Additionally, the provided Makefile can be used to created a virtual environment by running make venv. You will also need a Heroku account and have installed the Heroku CLI. For more information on the Heroku CLI, go to https://devcenter.heroku.com/articles/heroku-cli#download-and-install.
You may want to run the app using Flask locally before deploying it to Heroku, especially if you have made any changes to the code. To run locally:
- clone the repository.
- in the repository, run
make deploy. - open the link provided in the command line.
If you are using Windows, you can:
- create and activate the virtual environment.
set FLASK_APP=fraud_detection/flask_app/app.pyin the command line.- run
python -m flask run.
Alternatively, you can deploy using Docker.
docker build -t fraud_detection .docker run -d -p 5000:5000 fraud_detection
Make sure your app is ready to be deployed to Heroku by running Flask locally. To deploy to Heroku:
- clone the repository (if you haven't yet).
heroku loginand enter your credentials.heroku createorheroku create app-namewhere app-name is a custom app name.git push heroku master.heroku openor open the app online through your Heroku profile.
This project is distributed under the GNU General Public License. The file data/Fraud_Data.csv does not fall under the license and was obtained from Kaggle. Please see LICENSE for more information.