Showing preview only (994K chars total). Download the full file or copy to clipboard to get everything.
Repository: juniorcl/transaction-fraud-detection
Branch: main
Commit: 401167c15672
Files: 11
Total size: 47.9 MB
Directory structure:
gitextract_ql5qvdyw/
├── .gitignore
├── LICENSE
├── README.md
├── api/
│ ├── fraud/
│ │ └── Fraud.py
│ └── handler.py
├── data/
│ └── raw/
│ └── fraud_0.1origbase.csv
├── functions/
│ ├── minmaxscaler_cycle1.joblib
│ └── onehotencoder_cycle1.joblib
├── models/
│ └── model_cycle1.joblib
├── notebooks/
│ └── transaction-fraud-detection-cycle1.ipynb
└── requirements.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 Clébio Oliveira Júnior
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# Transaction Fraud Detection
A data science project to predict whether a transaction is a fraud or not.
<div align="center">
<img alt="Transaction Fraud Detection" src="./reports/figures/high-angle-credit-card-with-hook-phishing.jpg" width="100%" height="300">
</div>
<br>
## 1.0 Business Problem
The Blocker Fraud Company is a company specialized in detecting fraud in financial transactions made through mobile devices. The company has a service called "Blocker Fraud" which guarantees the blocking of fraudulent transactions.
The business model of the company is of the Service type with the monetization made by the performance of the service provided, in other words, the user pays a fixed fee on the success in detecting fraud in the customer's transactions.
However, the Blocker Fraud Company is expanding in Brazil and to acquire customers more quickly, it has adopted a very aggressive strategy. The strategy works as follows:
1. The company will receive 25% of the value of each transaction truly detected as fraud;
1. The company will receive 5% of the value of each transaction detected as fraud, but the transaction is truly legitimate.
1. The company will return 100% of the value to the customer, for each transaction detected as legitimate, however the transaction is truly a fraud.
With this aggressive strategy, the company assumes the risks of failing to detect fraud and is remunerated for assertive fraud detection.
For the client, it is an excellent business to hire the Blocker Fraud Company. Although the fee charged is very high on success, 25%, the company reduces its costs with fraudulent transactions detected correctly and even the damage caused by an error in the anti-fraud service will be covered by the Blocker Fraud Company itself.
For the company, in addition to getting many customers with this risky strategy to guarantee reimbursement in the event of a failure to detect customer fraud, it depends only on the precision and accuracy of the models built by its Data Scientists, in other words, how much the more accurate the “Blocker Fraud” model, the greater the company's revenue. However, if the model has low accuracy, the company could have a huge loss.
## 2.0 Business Assumptions
Fraud prevention is the implementation of a strategy to detect fraudulent transactions or banking actions and prevent these actions from causing financial damage and the reputation of the client and the financial institution.
There are always financial frauds and They can happen through virtual and physical ways. So the investment in security has been increasing.
The losses caused by fraud can reach R\$ 1 billion - which corresponds to half the amount that institutions invest in technology systems aimed at information security every year, according to [Febraban's 2020 Banking Technology Survey](https://blog.simply.com.br/tecnologia-bancaria-2020/).
## 3.0 Solution Strategy
My solution to solve this problem will be the development of a data science project. This project will have a machine learning model which can predict whether a transaction is fraudulent or not.
**Step 01. Data Description:** In this first section the data will be collected and studied. The missing values will be threated or removed. Finally, a initial data description will carried out to know the data. Therefore some calculations of descriptive statistics will be made, such as kurtosis, skewness, media, fashion, median and standard desviation.
**Step 02. Feature Engineering:** In this section, a mind map will be created to assist the creation of the hypothesis and the creation of new features. These assumptions will help in exploratory data analysis and may improve the model scores.
**Step 03. Data Filtering:** Data filtering is used to remove columns or rows that are not part of the business. For example, columns with customer ID, hash code or rows with age that does not consist of human age.
**Step 04. Exploratory Data Analysis:** The exploratory data analysis section consists of univariate analysis, bivariate analysis and multivariate analysis to assist in understanding of the database. The hypothesis created in step 02 will be tested in the bivariate analysis.
**Step 05. Data Preparation:** In this fifth section, the data will be prepared for machine learning modeling. Therefore, they will be transformed to improve the learning of the machine learning model, thus they can be encoded, oversampled, subsampled or rescaled.
**Step 06. Feature Selection:** After the data preparation in this section algorithms, like Boruta, will select the best columns to be used for the training of the machine learning model. This reduces the dimensionality of the database and decreases the chances of overfiting.
**Step 07. Machine Learning Modeling:** Step 07 aims to train the machine learning algorithms and how they can predict the data. For validation the model is trained, validated and applied to cross validation to know the learning capacity of the model.
**Step 08. Hyparameter Fine Tuning:** Firstly selected the best model to be applied in the project, it's important to make a fine tuning of the parameters to improve its scores. The same model performance methods apllied in the step 07 are used.
**Step 09. Conclusions:** This is a conclusion stage which the generation capacity model is tested using unseen data. In addition, some business questions are answered to show the applicability of the model in the business context.
**Step 10. Model Deploy:** This is the final step of the data science project. So, in this step the flask api is created and the model and the functions are saved to be implemented in the api.
## 4.0 Top 3 Data Insights
* #### All the fraud amount is greater than 10.000.
**TRUE:** The values are greater than 10.000. But it's important to note that the no-fraud values is greater than 100.000 also.

* #### 60% of fraud transaction occours using cash-out-type method.
**FALSE:** The fraud transaction occours in transfer and cash-out type. However they're almost the same value.

* #### Values greater than 100.000 occours using transfers-type method.
**FALSE:** The majority transactions occours in trasnfer-type, however transactions greater than 100.000 occour in cash-out and cash-in too.

## 5.0 Machine Learning Applied
Here's all cross validation results of the machine learning models with their default parameters. The cross validation method is important to show the capacity of the model to learn.
#### Dummy Model
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:-----------:|:-----------:|:-----------:|:--------------:|
| 0.499 +/- 0.0 | 0.0 +/- 0.0 | 0.0 +/- 0.0 | 0.0 +/- 0.0 | -0.001 +/- 0.0 |
#### Logistic Regression
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:-----------:|:---------------:|:---------------:|:---------------:|
| 0.565 +/- 0.009 | 1.0 +/- 0.0 | 0.129 +/- 0.017 | 0.229 +/- 0.027 | 0.228 +/- 0.027 |
#### K Nearest Neighbors
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:---------------:|:---------------:|:---------------:|:---------------:|
| 0.705 +/- 0.037 | 0.942 +/- 0.022 | 0.409 +/- 0.074 | 0.568 +/- 0.073 | 0.567 +/- 0.073 |
#### Support Vector Machine
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:-----------:|:--------------:|:----------------:|:---------------:|
| 0.595 +/- 0.013 | 1.0 +/- 0.0 | 0.19 +/- 0.026 | 0.319 +/- 0.0373 | 0.319 +/- 0.037 |
#### Random Forest
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:---------------:|:---------------:|:---------------:|:---------------:|
| 0.865 +/- 0.017 | 0.972 +/- 0.014 | 0.731 +/- 0.033 | 0.834 +/- 0.022 | 0.833 +/- 0.022 |
#### XGBoost
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:---------------:|:---------------:|:--------------:|:--------------:|
| 0.88 +/- 0.016 | 0.963 +/- 0.008 | 0.761 +/- 0.033 | 0.85 +/- 0.023 | 0.85 +/- 0.023 |
#### LightGBM
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:------------:|:---------------:|:---------------:|:---------------:|
| 0.701 +/- 0.089 | 0.18 +/- 0.1 | 0.407 +/- 0.175 | 0.241 +/- 0.128 | 0.239 +/- 0.129 |
## 6.0 Machine Learning Performance
The chosen model was **XGBoost** and it was tuned to improve their parameters and scores. Below there's a table with the capacity of the model to learn.
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:---------------:|:---------------:|:---------------:|:---------------:|
| 0.881 +/- 0.017 | 0.963 +/- 0.007 | 0.763 +/- 0.035 | 0.851 +/- 0.023 | 0.851 +/- 0.023 |
It's possible to determinize the capacity of the model to generalize using unseen data. In other words, capcity of the model to classify new data as shown.
| Balanced Accuracy | Precision | Recall | F1 | Kappa |
|:-----------------:|:---------:|:------:|:-----:|:-----:|
| 0.915 | 0.944 | 0.829 | 0.883 | 0.883 |
## 7.0 Business Results
* #### The company receives 25% of each transaction value truly detected as fraud.
The company can receive R\$ 60,613,782.88 detecting fraud transactions.
* #### The company receives 5% of each transaction value detected as fraud, however the transaction is legitimate.
For wrong decisions, the company can receive R\$ 183,866.98.
* #### The company gives back 100% of the value for the customer in each transaction detected as legitimate, however the transaction is actually a fraud.
The company must return the amount of R\$ 3,546,075.42.
* #### What is the model's Precision and Accuracy?
For unseen data, the values of balanced accuracy is equal 91.5% and precision is equal 94.4%.
* #### How reliable is the model in classifying transactions as legitimate or fraudulent?
The model can detect 76.3% +/- 3.5% of the fraud. However it detected 0.829 of the frauds from a unseen data.
* #### What is the revenue expected by the company classify 100% of transactions with the model?
Using the model the company can revenue R\$ 60,797,649.86. Using the currently method to detect fraud the revenue is 0.00.
* #### What is the loss expected by the Company if it classifies 100% of the transactions with the model?
For wrong classifications the company must return the amount of R\$ 3,546,075.42. In contrast, for wrong classifications using the currently method, the company must return the amount of R\$ 246,001,206.94.
* #### What is the profit expected by the blocker fraud company when using the model?
The company can expect the profit of R\$ 57,251,574.44. The profit value of the currently method is R\$ -246,001,206.94.
## 8.0 Conclusions
The data is extremaly unbalanced, however it was possible to make all the data analysis and create with good scores.
The company may expect a revenue of R\$ 57,251,574.44. This result may show the capacity of a project of data science and help the company.
## 9.0 Lessons Learned
* Even when the classes are unbalanced, it's possible to create a model with good scores.
* It is possible to create a model that can classify classes with less than 1% of samples.
## 10.0 Next Steps
* Test at most more 10 hypothesis.
* Implement oversampling or subsampling techiniques to improve the model scores.
* Implement the api on the heroku plataform.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details
================================================
FILE: api/fraud/Fraud.py
================================================
import joblib
import inflection
import pandas as pd
class Fraud:
def __init__(self):
self.minmaxscaler = joblib.load('../parameters/minmaxscaler_cycle1.joblib')
self.onehotencoder = joblib.load('../parameters/onehotencoder_cycle1.joblib')
def data_cleaning(self, df1):
cols_old = df1.columns.tolist()
snakecase = lambda i: inflection.underscore(i)
cols_new = list(map(snakecase, cols_old))
df1.columns = cols_new
return df1
def feature_engineering(self, df2):
# step
df2['step_days'] = df2['step'].apply(lambda i: i/24)
df2['step_weeks'] = df2['step'].apply(lambda i: i/(24*7))
# difference between initial balance before the transaction and new balance after the transaction
df2['diff_new_old_balance'] = df2['newbalance_orig'] - df2['oldbalance_org']
# difference between initial balance recipient before the transaction and new balance recipient after the transaction.
df2['diff_new_old_destiny'] = df2['newbalance_dest'] - df2['oldbalance_dest']
# name orig and name dest
df2['name_orig'] = df2['name_orig'].apply(lambda i: i[0])
df2['name_dest'] = df2['name_dest'].apply(lambda i: i[0])
return df2.drop(columns=['name_orig', 'name_dest',
'step_weeks', 'step_days'], axis=1)
def data_preparation(self, df3):
# OneHotEncoder
df3 = self.onehotencoder.transform(df3)
# Rescaling
num_columns = ['amount', 'oldbalance_org', 'newbalance_orig', 'oldbalance_dest',
'newbalance_dest', 'diff_new_old_balance', 'diff_new_old_destiny']
df3[num_columns] = self.minmaxscaler.transform(df3[num_columns])
# selected columns
final_columns_selected = ['step', 'oldbalance_org', 'newbalance_orig', 'newbalance_dest',
'diff_new_old_balance', 'diff_new_old_destiny', 'type_TRANSFER']
return df3[final_columns_selected]
def get_prediction(self, model, original_data, test_data):
pred = model.predict(test_data)
original_data['prediction'] = pred
return original_data.to_json(orient="records", date_format="iso")
================================================
FILE: api/handler.py
================================================
import joblib
import pandas as pd
from fraud.Fraud import Fraud
from flask import Flask, request, Response
# loading model
model = joblib.load('../models/model_cycle1.joblib')
# initialize API
app = Flask(__name__)
@app.route('/fraud/predict', methods=['POST'])
def churn_predict():
test_json = request.get_json()
if test_json: # there is data
if isinstance(test_json, dict): # unique example
test_raw = pd.DataFrame(test_json, index=[0])
else: # multiple example
test_raw = pd.DataFrame(test_json, columns=test_json[0].keys())
# Instantiate Rossmann class
pipeline = Fraud()
# data cleaning
df1 = pipeline.data_cleaning(test_raw)
# feature engineering
df2 = pipeline.feature_engineering(df1)
# data preparation
df3 = pipeline.data_preparation(df2)
# prediction
df_response = pipeline.get_prediction(model, test_raw, df3)
return df_response
else:
return Reponse('{}', status=200, mimetype='application/json')
if __name__ == '__main__':
app.run('0.0.0.0')
================================================
FILE: data/raw/fraud_0.1origbase.csv
================================================
[File too large to display: 47.0 MB]
================================================
FILE: notebooks/transaction-fraud-detection-cycle1.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# i. Business Understanding"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true,
"hidden": true
},
"source": [
"## i.i Blocker Fraud Company"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* The Blocker Fraud Company is a company specialized in detecting fraud in financial transactions made through mobile devices. The company has a service called “Blocker Fraud” with no guarantee of blocking fraudulent transactions.\n",
"\n",
"* And the business model of the company is of the Service type with the monetization made by the performance of the service provided, that is, the user pays a fixed fee on the success in detecting fraud in the customer's transactions."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### i.i.i Expansion Problem"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"Blocker Fraud Company is expanding in Brazil and to acquire customers more quickly, it has adopted a very aggressive strategy. The strategy works as follows:\n",
"1. The company will receive 25% of the value of each transaction that is truly detected as fraud.\n",
"1. The company will receive 5% of the value of each transaction detected as fraud, but the transaction is truly legitimate.\n",
"1. The company will return 100% of the value to the customer, for each transaction detected as legitimate, however the transaction is truly a fraud."
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true,
"hidden": true
},
"source": [
"## i.ii The Challenge"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"You need to deliver to the CEO of Blocker Fraud Company a production model in which your access will be done via API, that is, customers will send their transactions via API so that your model classifies them as fraudulent or legitimate."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### i.ii.i Business Questions"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"1. What is the model's Precision and Accuracy?\n",
"1. How Reliable is the model in classifying transactions as legitimate or fraudulent?\n",
"1. What is the Expected Billing by the Company if we classify 100% of transactions with the model?\n",
"1. What is the Loss Expected by the Company in case of model failure?\n",
"1. What is the Profit Expected by the Blocker Fraud Company when using the model?"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# 0.0 Imports and Helper Functions"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 0.1 Imports"
]
},
{
"cell_type": "code",
"execution_count": 229,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:33.819432Z",
"start_time": "2021-01-11T18:47:33.805991Z"
},
"hidden": true
},
"outputs": [],
"source": [
"import joblib\n",
"import warnings\n",
"import inflection\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from scipy import stats\n",
"from boruta import BorutaPy\n",
"from category_encoders import OneHotEncoder\n",
"\n",
"from IPython.display import Image\n",
"from IPython.core.display import HTML \n",
"\n",
"from xgboost import XGBClassifier\n",
"from lightgbm import LGBMClassifier\n",
"\n",
"from sklearn.svm import SVC\n",
"from sklearn.dummy import DummyClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.linear_model import LogisticRegression\n",
"\n",
"from sklearn.metrics import balanced_accuracy_score, precision_score, classification_report\n",
"from sklearn.metrics import recall_score, f1_score, make_scorer, cohen_kappa_score\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.model_selection import GridSearchCV, train_test_split, StratifiedKFold"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 0.2 Helper Functions"
]
},
{
"cell_type": "code",
"execution_count": 230,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:34.604129Z",
"start_time": "2021-01-11T18:47:34.599974Z"
},
"hidden": true
},
"outputs": [],
"source": [
"warnings.filterwarnings('ignore')\n",
"\n",
"seed = 42\n",
"np.random.seed(seed)"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:34.811059Z",
"start_time": "2021-01-11T18:47:34.792000Z"
},
"hidden": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"data": {
"text/html": [
"<style>.container { width:100% !important; }</style>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def jupyter_settings():\n",
" %matplotlib inline\n",
" %pylab inline\n",
" \n",
" sns.set(font_scale=1.6)\n",
" \n",
" plt.style.use('seaborn-darkgrid')\n",
" plt.rcParams['figure.figsize'] = [25, 12]\n",
" plt.rcParams['font.size'] = 16\n",
" \n",
" display( HTML('<style>.container { width:100% !important; }</style>'))\n",
" pd.options.display.max_columns = None\n",
" pd.options.display.max_rows = None\n",
" pd.set_option('display.expand_frame_repr', False)\n",
" \n",
"jupyter_settings()"
]
},
{
"cell_type": "code",
"execution_count": 232,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:35.035622Z",
"start_time": "2021-01-11T18:47:35.024369Z"
},
"hidden": true
},
"outputs": [],
"source": [
"def ml_scores(model_name, y_true, y_pred):\n",
" \n",
" accuracy = balanced_accuracy_score(y_true, y_pred)\n",
" precision = precision_score(y_true, y_pred)\n",
" recall = recall_score(y_true, y_pred)\n",
" f1 = f1_score(y_true, y_pred)\n",
" kappa = cohen_kappa_score(y_true, y_pred)\n",
" \n",
" return pd.DataFrame({'Balanced Accuracy': np.round(accuracy, 3), \n",
" 'Precision': np.round(precision, 3), \n",
" 'Recall': np.round(recall, 3),\n",
" 'F1': np.round(f1, 3),\n",
" 'Kappa': np.round(kappa, 3)}, \n",
" index=[model_name])"
]
},
{
"cell_type": "code",
"execution_count": 233,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:35.233972Z",
"start_time": "2021-01-11T18:47:35.222569Z"
},
"hidden": true
},
"outputs": [],
"source": [
"def calcCramerV(x, y):\n",
" cm = pd.crosstab(x, y).values\n",
" n = cm.sum()\n",
" r, k = cm.shape\n",
" \n",
" chi2 = stats.chi2_contingency(cm)[0]\n",
" chi2corr = max(0, chi2 - (k-1)*(r-1)/(n-1))\n",
" \n",
" kcorr = k - (k-1)**2/(n-1)\n",
" rcorr = r - (r-1)**2/(n-1)\n",
" \n",
" return np.sqrt((chi2corr/n) / (min(kcorr-1, rcorr-1)))"
]
},
{
"cell_type": "code",
"execution_count": 234,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:35.431569Z",
"start_time": "2021-01-11T18:47:35.406476Z"
},
"hidden": true
},
"outputs": [],
"source": [
"def ml_cv_results(model_name, model, x, y, verbose=1):\n",
" \n",
" '''initial'''\n",
" balanced_accuracies = []\n",
" precisions = []\n",
" recalls = []\n",
" f1s = []\n",
" kappas = []\n",
" \n",
" mm = MinMaxScaler()\n",
" \n",
" x_ = x.to_numpy()\n",
" y_ = y.to_numpy()\n",
" \n",
" count = 0\n",
" \n",
" '''cross-validation'''\n",
" skf = StratifiedKFold(n_splits=5, shuffle=True)\n",
" \n",
" for index_train, index_test in skf.split(x_, y_):\n",
" ## Showing the Fold\n",
" if verbose > 0:\n",
" count += 1\n",
" print('Fold K=%i' % (count))\n",
" \n",
" ## selecting train and test\n",
" x_train, x_test = x.iloc[index_train], x.iloc[index_test]\n",
" y_train, y_test = y.iloc[index_train], y.iloc[index_test]\n",
" \n",
" ## applying the scale\n",
" x_train = mm.fit_transform(x_train)\n",
" x_test = mm.transform(x_test)\n",
" \n",
" ## training the model\n",
" model.fit(x_train, y_train)\n",
" y_pred = model.predict(x_test)\n",
"\n",
" ## saving the metrics\n",
" balanced_accuracies.append(balanced_accuracy_score(y_test, y_pred))\n",
" precisions.append(precision_score(y_test, y_pred))\n",
" recalls.append(recall_score(y_test, y_pred))\n",
" f1s.append(f1_score(y_test, y_pred))\n",
" kappas.append(cohen_kappa_score(y_test, y_pred))\n",
" \n",
" \n",
" '''results''' \n",
" accuracy_mean, accuracy_std = np.round(np.mean(balanced_accuracies), 3), np.round(np.std(balanced_accuracies), 3)\n",
" precision_mean, precision_std = np.round(np.mean(precisions), 3), np.round(np.std(precisions), 3)\n",
" recall_mean, recall_std = np.round(np.mean(recalls), 3), np.round(np.std(recalls), 3)\n",
" f1_mean, f1_std = np.round(np.mean(f1s), 3), np.round(np.std(f1s), 3)\n",
" kappa_mean, kappa_std = np.round(np.mean(kappas), 3), np.round(np.std(kappas), 3)\n",
" \n",
" ## saving the results in a dataframe\n",
" return pd.DataFrame({\"Balanced Accuracy\": \"{} +/- {}\".format(accuracy_mean, accuracy_std),\n",
" \"Precision\": \"{} +/- {}\".format(precision_mean, precision_std),\n",
" \"Recall\": \"{} +/- {}\".format(recall_mean, recall_std),\n",
" \"F1\": \"{} +/- {}\".format(f1_mean, f1_std),\n",
" \"Kappa\": \"{} +/- {}\".format(kappa_mean, kappa_std)},\n",
" index=[model_name])"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# 1.0 Data Description"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.1 Loading Data"
]
},
{
"cell_type": "code",
"execution_count": 235,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.450936Z",
"start_time": "2021-01-11T18:47:36.044298Z"
},
"hidden": true
},
"outputs": [],
"source": [
"df1 = pd.read_csv('../database/fraud_0.1origbase.csv')"
]
},
{
"cell_type": "code",
"execution_count": 236,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.474072Z",
"start_time": "2021-01-11T18:47:37.453989Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>step</th>\n",
" <th>type</th>\n",
" <th>amount</th>\n",
" <th>nameOrig</th>\n",
" <th>oldbalanceOrg</th>\n",
" <th>newbalanceOrig</th>\n",
" <th>nameDest</th>\n",
" <th>oldbalanceDest</th>\n",
" <th>newbalanceDest</th>\n",
" <th>isFraud</th>\n",
" <th>isFlaggedFraud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>283</td>\n",
" <td>CASH_IN</td>\n",
" <td>210329.84</td>\n",
" <td>C1159819632</td>\n",
" <td>3778062.79</td>\n",
" <td>3988392.64</td>\n",
" <td>C1218876138</td>\n",
" <td>1519266.60</td>\n",
" <td>1308936.76</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>132</td>\n",
" <td>CASH_OUT</td>\n",
" <td>215489.19</td>\n",
" <td>C1372369468</td>\n",
" <td>21518.00</td>\n",
" <td>0.00</td>\n",
" <td>C467105520</td>\n",
" <td>6345756.55</td>\n",
" <td>6794954.89</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>355</td>\n",
" <td>DEBIT</td>\n",
" <td>4431.05</td>\n",
" <td>C1059822709</td>\n",
" <td>20674.00</td>\n",
" <td>16242.95</td>\n",
" <td>C76588246</td>\n",
" <td>80876.56</td>\n",
" <td>85307.61</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>135</td>\n",
" <td>CASH_OUT</td>\n",
" <td>214026.20</td>\n",
" <td>C1464960643</td>\n",
" <td>46909.73</td>\n",
" <td>0.00</td>\n",
" <td>C1059379810</td>\n",
" <td>13467450.36</td>\n",
" <td>13681476.56</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>381</td>\n",
" <td>CASH_OUT</td>\n",
" <td>8858.45</td>\n",
" <td>C831134427</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>C579876929</td>\n",
" <td>1667180.58</td>\n",
" <td>1676039.03</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" step type amount nameOrig oldbalanceOrg newbalanceOrig nameDest oldbalanceDest newbalanceDest isFraud isFlaggedFraud\n",
"0 283 CASH_IN 210329.84 C1159819632 3778062.79 3988392.64 C1218876138 1519266.60 1308936.76 0 0\n",
"1 132 CASH_OUT 215489.19 C1372369468 21518.00 0.00 C467105520 6345756.55 6794954.89 0 0\n",
"2 355 DEBIT 4431.05 C1059822709 20674.00 16242.95 C76588246 80876.56 85307.61 0 0\n",
"3 135 CASH_OUT 214026.20 C1464960643 46909.73 0.00 C1059379810 13467450.36 13681476.56 0 0\n",
"4 381 CASH_OUT 8858.45 C831134427 0.00 0.00 C579876929 1667180.58 1676039.03 0 0"
]
},
"execution_count": 236,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.head()"
]
},
{
"cell_type": "code",
"execution_count": 237,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.491715Z",
"start_time": "2021-01-11T18:47:37.476639Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>step</th>\n",
" <th>type</th>\n",
" <th>amount</th>\n",
" <th>nameOrig</th>\n",
" <th>oldbalanceOrg</th>\n",
" <th>newbalanceOrig</th>\n",
" <th>nameDest</th>\n",
" <th>oldbalanceDest</th>\n",
" <th>newbalanceDest</th>\n",
" <th>isFraud</th>\n",
" <th>isFlaggedFraud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>636257</th>\n",
" <td>351</td>\n",
" <td>CASH_OUT</td>\n",
" <td>28761.10</td>\n",
" <td>C742050657</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>C568407561</td>\n",
" <td>328534.52</td>\n",
" <td>357295.62</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>636258</th>\n",
" <td>184</td>\n",
" <td>CASH_OUT</td>\n",
" <td>167820.71</td>\n",
" <td>C561181412</td>\n",
" <td>62265.0</td>\n",
" <td>0.00</td>\n",
" <td>C1852953580</td>\n",
" <td>106429.48</td>\n",
" <td>274250.18</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>636259</th>\n",
" <td>35</td>\n",
" <td>PAYMENT</td>\n",
" <td>8898.12</td>\n",
" <td>C1773417333</td>\n",
" <td>30808.0</td>\n",
" <td>21909.88</td>\n",
" <td>M445701551</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>636260</th>\n",
" <td>277</td>\n",
" <td>CASH_OUT</td>\n",
" <td>176147.90</td>\n",
" <td>C1423233247</td>\n",
" <td>83669.0</td>\n",
" <td>0.00</td>\n",
" <td>C1328739120</td>\n",
" <td>0.00</td>\n",
" <td>176147.90</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>636261</th>\n",
" <td>304</td>\n",
" <td>CASH_OUT</td>\n",
" <td>95142.89</td>\n",
" <td>C874575079</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>C666451134</td>\n",
" <td>431380.07</td>\n",
" <td>526522.96</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" step type amount nameOrig oldbalanceOrg newbalanceOrig nameDest oldbalanceDest newbalanceDest isFraud isFlaggedFraud\n",
"636257 351 CASH_OUT 28761.10 C742050657 0.0 0.00 C568407561 328534.52 357295.62 0 0\n",
"636258 184 CASH_OUT 167820.71 C561181412 62265.0 0.00 C1852953580 106429.48 274250.18 0 0\n",
"636259 35 PAYMENT 8898.12 C1773417333 30808.0 21909.88 M445701551 0.00 0.00 0 0\n",
"636260 277 CASH_OUT 176147.90 C1423233247 83669.0 0.00 C1328739120 0.00 176147.90 0 0\n",
"636261 304 CASH_OUT 95142.89 C874575079 0.0 0.00 C666451134 431380.07 526522.96 0 0"
]
},
"execution_count": 237,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.tail()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.2 Columns"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 1.2.1 Column Descriptions"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"**step:** maps a unit of time in the real world. In this case 1 step is 1 hour of time. Total steps 744 (30 days simulation).\n",
"\n",
"**type:** CASH-IN, CASH-OUT, DEBIT, PAYMENT and TRANSFER.\n",
"\n",
"**amount:** amount of the transaction in local currency.\n",
"\n",
"**nameOrig:** customer who started the transaction\n",
"\n",
"**oldbalanceOrg:** initial balance before the transaction\n",
"\n",
"**newbalanceOrig:** new balance after the transaction\n",
"\n",
"**nameDest:** customer who is the recipient of the transaction\n",
"\n",
"**oldbalanceDest:** initial balance recipient before the transaction. Note that there is not information for customers that start with M (Merchants).\n",
"\n",
"**newbalanceDest:** new balance recipient after the transaction. Note that there is not information for customers that start with M (Merchants).\n",
"\n",
"**isFraud:** This is the transactions made by the fraudulent agents inside the simulation. In this specific dataset the fraudulent behavior of the agents aims to profit by taking control or customers accounts and try to empty the funds by transferring to another account and then cashing out of the system.\n",
"\n",
"**isFlaggedFraud:** The business model aims to control massive transfers from one account to another and flags illegal attempts. An illegal attempt in this dataset is an attempt to transfer more than 200.000 in a single transaction."
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2020-12-12T21:31:42.617142Z",
"start_time": "2020-12-12T21:31:42.609502Z"
},
"hidden": true
},
"source": [
"### 1.2.2 Column Rename"
]
},
{
"cell_type": "code",
"execution_count": 238,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.498900Z",
"start_time": "2021-01-11T18:47:37.494994Z"
},
"hidden": true
},
"outputs": [],
"source": [
"cols_old = df1.columns.tolist()\n",
"\n",
"snakecase = lambda x: inflection.underscore(x)\n",
"cols_new = list(map(snakecase, cols_old))\n",
"\n",
"df1.columns = cols_new"
]
},
{
"cell_type": "code",
"execution_count": 239,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.505663Z",
"start_time": "2021-01-11T18:47:37.501235Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['step', 'type', 'amount', 'name_orig', 'oldbalance_org',\n",
" 'newbalance_orig', 'name_dest', 'oldbalance_dest', 'newbalance_dest',\n",
" 'is_fraud', 'is_flagged_fraud'],\n",
" dtype='object')"
]
},
"execution_count": 239,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.columns"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.3 Data Dimension"
]
},
{
"cell_type": "code",
"execution_count": 240,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:37.851622Z",
"start_time": "2021-01-11T18:47:37.847980Z"
},
"hidden": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of Rows: 636262\n",
"Number of Cols: 11\n"
]
}
],
"source": [
"print('Number of Rows: {}'.format(df1.shape[0]))\n",
"print('Number of Cols: {}'.format(df1.shape[1]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.4 Data Types and Structure"
]
},
{
"cell_type": "code",
"execution_count": 241,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:38.334664Z",
"start_time": "2021-01-11T18:47:38.201896Z"
},
"hidden": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 636262 entries, 0 to 636261\n",
"Data columns (total 11 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 step 636262 non-null int64 \n",
" 1 type 636262 non-null object \n",
" 2 amount 636262 non-null float64\n",
" 3 name_orig 636262 non-null object \n",
" 4 oldbalance_org 636262 non-null float64\n",
" 5 newbalance_orig 636262 non-null float64\n",
" 6 name_dest 636262 non-null object \n",
" 7 oldbalance_dest 636262 non-null float64\n",
" 8 newbalance_dest 636262 non-null float64\n",
" 9 is_fraud 636262 non-null int64 \n",
" 10 is_flagged_fraud 636262 non-null int64 \n",
"dtypes: float64(5), int64(3), object(3)\n",
"memory usage: 53.4+ MB\n"
]
}
],
"source": [
"df1.info()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.5 Check NA"
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:38.655459Z",
"start_time": "2021-01-11T18:47:38.542451Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"step 0.0\n",
"type 0.0\n",
"amount 0.0\n",
"name_orig 0.0\n",
"oldbalance_org 0.0\n",
"newbalance_orig 0.0\n",
"name_dest 0.0\n",
"oldbalance_dest 0.0\n",
"newbalance_dest 0.0\n",
"is_fraud 0.0\n",
"is_flagged_fraud 0.0\n",
"dtype: float64"
]
},
"execution_count": 242,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.isna().mean()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.6 Fill Out NA"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"There's no NaN values to fill."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.7 Change Data Type"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
" I will change the values 0 and 1 to 'yes' and 'no'. It'll help on the data description and analysis sections."
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:39.517461Z",
"start_time": "2021-01-11T18:47:39.450119Z"
},
"hidden": true
},
"outputs": [],
"source": [
"df1['is_fraud'] = df1['is_fraud'].map({1: 'yes', 0: 'no'})\n",
"df1['is_flagged_fraud'] = df1['is_flagged_fraud'].map({1: 'yes', 0: 'no'})"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 1.8 Description Statistics"
]
},
{
"cell_type": "code",
"execution_count": 244,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:39.985703Z",
"start_time": "2021-01-11T18:47:39.840317Z"
},
"hidden": true
},
"outputs": [],
"source": [
"num_attributes = df1.select_dtypes(exclude='object')\n",
"cat_attributes = df1.select_dtypes(include='object')"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 1.8.1 Numerical Attributes"
]
},
{
"cell_type": "code",
"execution_count": 245,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:40.716577Z",
"start_time": "2021-01-11T18:47:40.217657Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>25%</th>\n",
" <th>50%</th>\n",
" <th>75%</th>\n",
" <th>max</th>\n",
" <th>range</th>\n",
" <th>variation coefficient</th>\n",
" <th>skew</th>\n",
" <th>kurtosis</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>step</th>\n",
" <td>636262.0</td>\n",
" <td>2.429319e+02</td>\n",
" <td>1.423309e+02</td>\n",
" <td>1.0</td>\n",
" <td>155.000</td>\n",
" <td>238.000</td>\n",
" <td>3.340000e+02</td>\n",
" <td>7.420000e+02</td>\n",
" <td>7.410000e+02</td>\n",
" <td>0.585888</td>\n",
" <td>0.375052</td>\n",
" <td>0.324437</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>636262.0</td>\n",
" <td>1.800585e+05</td>\n",
" <td>6.069714e+05</td>\n",
" <td>0.0</td>\n",
" <td>13407.425</td>\n",
" <td>74815.770</td>\n",
" <td>2.084988e+05</td>\n",
" <td>5.722962e+07</td>\n",
" <td>5.722962e+07</td>\n",
" <td>3.370967</td>\n",
" <td>29.577107</td>\n",
" <td>1546.661043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>oldbalance_org</th>\n",
" <td>636262.0</td>\n",
" <td>8.317937e+05</td>\n",
" <td>2.885636e+06</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>14239.000</td>\n",
" <td>1.072998e+05</td>\n",
" <td>4.368662e+07</td>\n",
" <td>4.368662e+07</td>\n",
" <td>3.469173</td>\n",
" <td>5.243428</td>\n",
" <td>32.766036</td>\n",
" </tr>\n",
" <tr>\n",
" <th>newbalance_orig</th>\n",
" <td>636262.0</td>\n",
" <td>8.528354e+05</td>\n",
" <td>2.921296e+06</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>1.435652e+05</td>\n",
" <td>4.367380e+07</td>\n",
" <td>4.367380e+07</td>\n",
" <td>3.425393</td>\n",
" <td>5.173614</td>\n",
" <td>31.932547</td>\n",
" </tr>\n",
" <tr>\n",
" <th>oldbalance_dest</th>\n",
" <td>636262.0</td>\n",
" <td>1.096212e+06</td>\n",
" <td>3.375389e+06</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>131539.745</td>\n",
" <td>9.384820e+05</td>\n",
" <td>3.551855e+08</td>\n",
" <td>3.551855e+08</td>\n",
" <td>3.079138</td>\n",
" <td>20.622388</td>\n",
" <td>1074.335293</td>\n",
" </tr>\n",
" <tr>\n",
" <th>newbalance_dest</th>\n",
" <td>636262.0</td>\n",
" <td>1.221809e+06</td>\n",
" <td>3.656213e+06</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>214712.725</td>\n",
" <td>1.109230e+06</td>\n",
" <td>3.555534e+08</td>\n",
" <td>3.555534e+08</td>\n",
" <td>2.992460</td>\n",
" <td>19.623903</td>\n",
" <td>928.694204</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% 50% 75% max range variation coefficient skew kurtosis\n",
"step 636262.0 2.429319e+02 1.423309e+02 1.0 155.000 238.000 3.340000e+02 7.420000e+02 7.410000e+02 0.585888 0.375052 0.324437\n",
"amount 636262.0 1.800585e+05 6.069714e+05 0.0 13407.425 74815.770 2.084988e+05 5.722962e+07 5.722962e+07 3.370967 29.577107 1546.661043\n",
"oldbalance_org 636262.0 8.317937e+05 2.885636e+06 0.0 0.000 14239.000 1.072998e+05 4.368662e+07 4.368662e+07 3.469173 5.243428 32.766036\n",
"newbalance_orig 636262.0 8.528354e+05 2.921296e+06 0.0 0.000 0.000 1.435652e+05 4.367380e+07 4.367380e+07 3.425393 5.173614 31.932547\n",
"oldbalance_dest 636262.0 1.096212e+06 3.375389e+06 0.0 0.000 131539.745 9.384820e+05 3.551855e+08 3.551855e+08 3.079138 20.622388 1074.335293\n",
"newbalance_dest 636262.0 1.221809e+06 3.656213e+06 0.0 0.000 214712.725 1.109230e+06 3.555534e+08 3.555534e+08 2.992460 19.623903 928.694204"
]
},
"execution_count": 245,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"describe = num_attributes.describe().T\n",
"\n",
"describe['range'] = (num_attributes.max() - num_attributes.min()).tolist()\n",
"describe['variation coefficient'] = (num_attributes.std() / num_attributes.mean()).tolist()\n",
"describe['skew'] = num_attributes.skew().tolist()\n",
"describe['kurtosis'] = num_attributes.kurtosis().tolist()\n",
"\n",
"describe"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* All the data has a coeficient of variation greater than 25%, therefore they aren't homogeneous.\n",
"\n",
"* The step variable starts from 1 hour to 742 hour (30 days).\n",
"\n",
"* Some variables are higher shap and right skewed.\n",
"\n",
"* 50% of the newbalance_orig is 0. Maybe there are some transfers that don't go to the destination.\n",
"\n",
"* The skew is higher positive, therefore the values may be in less values."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 1.8.2 Categorical Attributes"
]
},
{
"cell_type": "code",
"execution_count": 246,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:42.821513Z",
"start_time": "2021-01-11T18:47:40.809829Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>name_orig</th>\n",
" <th>name_dest</th>\n",
" <th>is_fraud</th>\n",
" <th>is_flagged_fraud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>636262</td>\n",
" <td>636262</td>\n",
" <td>636262</td>\n",
" <td>636262</td>\n",
" <td>636262</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>5</td>\n",
" <td>636171</td>\n",
" <td>457224</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>CASH_OUT</td>\n",
" <td>C241218843</td>\n",
" <td>C2083562754</td>\n",
" <td>no</td>\n",
" <td>no</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>224216</td>\n",
" <td>2</td>\n",
" <td>14</td>\n",
" <td>635441</td>\n",
" <td>636260</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" type name_orig name_dest is_fraud is_flagged_fraud\n",
"count 636262 636262 636262 636262 636262\n",
"unique 5 636171 457224 2 2\n",
"top CASH_OUT C241218843 C2083562754 no no\n",
"freq 224216 2 14 635441 636260"
]
},
"execution_count": 246,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_attributes.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* The majority type is cash_out with 2237500.\n",
"\n",
"* There's a lot of variability in name_orig, so it could be hard to use one hot encoding.\n",
"\n",
"* There's less name_orig than name_dest. There's more users sending than receiving, however use one hot encoding will not help.\n",
"\n",
"* There's more fraud than the flagged fraud, it shows that the current method can't recognize fraud efficiently."
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# 2.0 Feature Engineering"
]
},
{
"cell_type": "code",
"execution_count": 247,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:42.876765Z",
"start_time": "2021-01-11T18:47:42.823469Z"
},
"hidden": true
},
"outputs": [],
"source": [
"df2 = df1.copy()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 2.1 Mind Map"
]
},
{
"cell_type": "code",
"execution_count": 248,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:42.884372Z",
"start_time": "2021-01-11T18:47:42.878669Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 248,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image('../images/Fraud-mindmap.png')"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 2.2 Hypothesis Creation"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 2.2.1 User"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* 90% of the twentyone-year-old users did a fraud transiction.\n",
"\n",
"* The majority fraud transiction occours for the same initial letter user.\n",
"\n",
"* The fraud amount is greater than 10.000.\n",
"\n",
"* The 60% of the age is greater than 30 year old."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 2.2.2 Type"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* 60% of fraud transaction occours using cash-out-type method.\n",
"\n",
"* The majority transfers occours using tranfers-type method.\n",
"\n",
"* Values greater than 100.000 occours using transfers-type method.\n",
"\n",
"* Payment type occurs with values lower than 100.000"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 2.2.3 Origin and Destiny Transactions"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* 60% of the difference between origin destiny transactions is equal 0 for frauds.\n",
"\n",
"* Origin values are greater than destiny values for fraud transaction."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 2.2.4 Time"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"* Fraud transactions occours at least in 3 days.\n",
"\n",
"* 40% of the cash-out transactions occours less than 1 day.\n",
"\n",
"* 60% of the transaction less than 100.000 occours at least 10 days.\n",
"\n",
"* The transactions greater than 10.000 occours at most in 2 weeks. "
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 2.3 Hipothesys List"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"1. The majority fraud transiction occours for the same initial letter user.\n",
"\n",
"1. All the fraud amount is greater than 10.000.\n",
"\n",
"1. 60% of fraud transaction occours using cash-out-type method.\n",
"\n",
"1. The majority transfers occours using tranfers-type method.\n",
"\n",
"1. Fraud transactions occours at least in 3 days."
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 2.4 Feature Engineering"
]
},
{
"cell_type": "code",
"execution_count": 249,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:44.922596Z",
"start_time": "2021-01-11T18:47:43.999043Z"
},
"hidden": true
},
"outputs": [],
"source": [
"# step\n",
"df2['step_days'] = df2['step'].apply(lambda i: i/24)\n",
"df2['step_weeks'] = df2['step'].apply(lambda i: i/(24*7))\n",
"\n",
"# difference between initial balance before the transaction and new balance after the transaction\n",
"df2['diff_new_old_balance'] = df2['newbalance_orig'] - df2['oldbalance_org']\n",
"\n",
"# difference between initial balance recipient before the transaction and new balance recipient after the transaction.\n",
"df2['diff_new_old_destiny'] = df2['newbalance_dest'] - df2['oldbalance_dest']\n",
"\n",
"# name orig and name dest\n",
"df2['name_orig'] = df2['name_orig'].apply(lambda i: i[0])\n",
"df2['name_dest'] = df2['name_dest'].apply(lambda i: i[0])"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# 3.0 Selecting Columns"
]
},
{
"cell_type": "code",
"execution_count": 250,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:44.957038Z",
"start_time": "2021-01-11T18:47:44.924834Z"
},
"hidden": true
},
"outputs": [],
"source": [
"df3 = df2.copy()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 3.1 Selecting Columns"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"I'll use all the columns for data analysis"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 3.2 Selecting Lines"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"I'll use all the lines."
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
},
"source": [
"# 4.0 Exploratory Data Analisys"
]
},
{
"cell_type": "code",
"execution_count": 251,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:45.536329Z",
"start_time": "2021-01-11T18:47:45.479614Z"
},
"hidden": true
},
"outputs": [],
"source": [
"df4 = df3.copy()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"## 4.1 Univariate Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {
"hidden": true
},
"source": [
"### 4.1.1 Response Variable"
]
},
{
"cell_type": "code",
"execution_count": 252,
"metadata": {
"ExecuteTime": {
"end_time": "2021-01-11T18:47:46.652434Z",
"start_time": "2021-01-11T18:47:46.010096Z"
},
"hidden": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABbUAAALECAYAAAA/5d2mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+dElEQVR4nO3debRe86H/8c9JcoJICBGJITVFQiSIJAhCDVfUJaRa1NQWLUqiqKnG69Y81Ny4V1pza6yfGJoYioarREtaBFVFEkMmCYnItH9/qHOdm4RGhnO+8nqtddby7P199vk+Z53v2nnenrN3TVVVVQAAAAAAoABNGnoCAAAAAADwrxK1AQAAAAAohqgNAAAAAEAxRG0AAAAAAIohagMAAAAAUAxRGwAAAACAYjRr6AksSbNmzc6kSdMaehpQrJVWamENwUKwhmDhWEOw8KwjWDjWECwca4gF0bZtq/nuW6o+qd2sWdOGngIUzRqChWMNwcKxhmDhWUewcKwhWDjWEIvKUhW1AQAAAAAom6gNAAAAAEAxRG0AAAAAAIohagMAAAAAUAxRGwAAAACAYojaAAAAAAAUQ9QGAAAAAKAYojYAAAAAAMUQtQEAAAAAKIaoDQAAAABAMURtAAAAAACKIWoDAAAAAFAMURsAAAAAgGKI2gAAAAAAFEPUBgAAAACgGKI2AAAAAADFELUBAAAAACiGqA0AAAAAQDFEbQAAAAAAiiFqAwAAAABQDFEbAAAAAIBiiNoAAAAAABRD1AYAAAAAoBiiNgAAAAAAxRC1AQAAAAAohqgNAAAAAEAxRG0AAAAAAIohagMAAAAAUAxRGwAAAACAYojaAAAAAAAUQ9QGAAAAAKAYNVVVVQ09iSVlxszZaV7btKGnAQAAAAAwT9M/npkPpkxv6Gk0uLZtW813X7MlOI8G17y2afY74eaGngYAAAAAwDzdcsH++SCi9udx+REAAAAAAIohagMAAAAAUAxRGwAAAACAYojaAAAAAAAUQ9QGAAAAAKAYojYAAAAAAMUQtQEAAAAAKIaoDQAAAABAMURtAAAAAACKIWoDAAAAAFAMURsAAAAAgGKI2gAAAAAAFEPUBgAAAACgGKI2AAAAAADFELUBAAAAACiGqA0AAAAAQDFEbQAAAAAAiiFqAwAAAABQDFEbAAAAAIBiiNoAAAAAABRD1AYAAAAAoBiiNgAAAAAAxRC1AQAAAAAohqgNAAAAAEAxRG0AAAAAAIohagMAAAAAUAxRGwAAAACAYojaAAAAAAAUQ9QGAAAAAKAYojYAAAAAAMUQtQEAAAAAKIaoDQAAAABAMURtAAAAAACKIWoDAAAAAFAMURsAAAAAgGKI2gAAAAAAFEPUBgAAAACgGKI2AAAAAADFELUBAAAAACiGqA0AAAAAQDFEbQAAAAAAiiFqAwAAAABQDFEbAAAAAIBiiNoAAAAAABRD1AYAAAAAoBiiNgAAAAAAxRC1AQAAAAAohqgNAAAAAEAxRG0AAAAAAIohagMAAAAAUAxRGwAAAACAYojaAAAAAAAUQ9QGAAAAAKAYojYAAAAAAMUQtQEAAAAAKIaoDQAAAABAMURtAAAAAACKIWoDAAAAAFAMURsAAAAAgGKI2gAAAAAAFEPUBgAAAACgGKI2AAAAAADFELUBAAAAACiGqA0AAAAAQDFEbQAAAAAAiiFqAwAAAABQDFEbAAAAAIBiiNoAAAAAABRD1AYAAAAAoBiiNgAAAAAAxRC1AQAAAAAohqgNAAAAAEAxRG0AAAAAAIo
gitextract_ql5qvdyw/ ├── .gitignore ├── LICENSE ├── README.md ├── api/ │ ├── fraud/ │ │ └── Fraud.py │ └── handler.py ├── data/ │ └── raw/ │ └── fraud_0.1origbase.csv ├── functions/ │ ├── minmaxscaler_cycle1.joblib │ └── onehotencoder_cycle1.joblib ├── models/ │ └── model_cycle1.joblib ├── notebooks/ │ └── transaction-fraud-detection-cycle1.ipynb └── requirements.txt
SYMBOL INDEX (7 symbols across 2 files)
FILE: api/fraud/Fraud.py
class Fraud (line 5) | class Fraud:
method __init__ (line 7) | def __init__(self):
method data_cleaning (line 11) | def data_cleaning(self, df1):
method feature_engineering (line 21) | def feature_engineering(self, df2):
method data_preparation (line 39) | def data_preparation(self, df3):
method get_prediction (line 53) | def get_prediction(self, model, original_data, test_data):
FILE: api/handler.py
function churn_predict (line 13) | def churn_predict():
Condensed preview — 11 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,011K chars).
[
{
"path": ".gitignore",
"chars": 1799,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "LICENSE",
"chars": 1079,
"preview": "MIT License\n\nCopyright (c) 2021 Clébio Oliveira Júnior\n\nPermission is hereby granted, free of charge, to any person obta"
},
{
"path": "README.md",
"chars": 12042,
"preview": "# Transaction Fraud Detection\n\nA data science project to predict whether a transaction is a fraud or not.\n\n<div align=\"c"
},
{
"path": "api/fraud/Fraud.py",
"chars": 2316,
"preview": "import joblib\nimport inflection\nimport pandas as pd\n\nclass Fraud:\n \n def __init__(self):\n self.minmaxscaler"
},
{
"path": "api/handler.py",
"chars": 1205,
"preview": "import joblib\nimport pandas as pd\nfrom fraud.Fraud import Fraud\nfrom flask import Flask, request, Response\n\n# loading mo"
},
{
"path": "notebooks/transaction-fraud-detection-cycle1.ipynb",
"chars": 972032,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {\n \"heading_collapsed\": true\n },\n \"source\": [\n \"#"
},
{
"path": "requirements.txt",
"chars": 1364,
"preview": "argon2-cffi==20.1.0\nasync-generator==1.10\nattrs==20.3.0\nbackcall==0.2.0\nbleach==3.2.1\nBoruta==0.3\ncategory-encoders==2.2"
}
]
// ... and 4 more files (download for full content)
About this extraction
This page contains the full source code of the juniorcl/transaction-fraud-detection GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 11 files (47.9 MB), approximately 589.8k tokens, and a symbol index with 7 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.