{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's have a look at how to implement a logistic regression model in Python. First, we need to import the required packages"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:01.031208Z",
"iopub.status.busy": "2026-01-19T18:30:01.030863Z",
"iopub.status.idle": "2026-01-19T18:30:04.173958Z",
"shell.execute_reply": "2026-01-19T18:30:04.173415Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.preprocessing import StandardScaler, MinMaxScaler\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score, recall_score, precision_score, roc_curve\n",
"pd.set_option('display.max_columns', 50) # Display up to 50 columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's download the dataset automatically, unzip it, and place it in a folder called `data` if you haven't done so already"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:04.176490Z",
"iopub.status.busy": "2026-01-19T18:30:04.176194Z",
"iopub.status.idle": "2026-01-19T18:30:04.180376Z",
"shell.execute_reply": "2026-01-19T18:30:04.179863Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset already downloaded!\n"
]
}
],
"source": [
"from io import BytesIO\n",
"from urllib.request import urlopen\n",
"from zipfile import ZipFile\n",
"import os.path\n",
"\n",
"# Check if the file exists\n",
"if not os.path.isfile('data/card_transdata.csv'):\n",
"\n",
" print('Downloading dataset...')\n",
"\n",
" # Define the dataset to be downloaded\n",
" zipurl = 'https://www.kaggle.com/api/v1/datasets/download/dhanushnarayananr/credit-card-fraud'\n",
"\n",
" # Download and unzip the dataset in the data folder\n",
" with urlopen(zipurl) as zipresp:\n",
" with ZipFile(BytesIO(zipresp.read())) as zfile:\n",
" zfile.extractall('data')\n",
"\n",
" print('DONE!')\n",
"\n",
"else:\n",
"\n",
" print('Dataset already downloaded!')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then, we can load the data into a DataFrame using the `read_csv` function from the `pandas` library"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:04.218825Z",
"iopub.status.busy": "2026-01-19T18:30:04.218552Z",
"iopub.status.idle": "2026-01-19T18:30:05.027779Z",
"shell.execute_reply": "2026-01-19T18:30:05.027142Z"
}
},
"outputs": [],
"source": [
"df = pd.read_csv('data/card_transdata.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that it is common to call this variable `df` which is short for DataFrame.\n",
"\n",
"This is a **dataset of credit card transactions** from [Kaggle.com](https://www.kaggle.com/datasets/dhanushnarayananr/credit-card-fraud/data). The target variable $y$ is `fraud`, which indicates whether the transaction is fraudulent or not. The other variables are the features $x$ of the transactions.\n",
"\n",
"\n",
"### Data Exploration & Preprocessing\n",
"\n",
"The first step whenever you load a new dataset is to familiarize yourself with it. You need to understand what the variables represent, what the target variable is, and what the data looks like. This is called **data exploration**. Depending on the dataset, you might need to preprocess it (e.g., check for missing values and duplicates, or create new variables) before you can use it to train a machine-learning model. This is called **data preprocessing**.\n",
"\n",
"#### Basic Dataframe Operations {-}\n",
"\n",
"Let's see how many rows and columns the dataset has"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.030391Z",
"iopub.status.busy": "2026-01-19T18:30:05.030138Z",
"iopub.status.idle": "2026-01-19T18:30:05.036027Z",
"shell.execute_reply": "2026-01-19T18:30:05.035373Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(1000000, 8)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dataset has 1 million rows (observations) and 8 columns (variables)! Now, let's have a look at the first few rows of the dataset with the `head()` method"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.038455Z",
"iopub.status.busy": "2026-01-19T18:30:05.038237Z",
"iopub.status.idle": "2026-01-19T18:30:05.048596Z",
"shell.execute_reply": "2026-01-19T18:30:05.048072Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
0
\n",
"
1
\n",
"
2
\n",
"
3
\n",
"
4
\n",
"
\n",
" \n",
" \n",
"
\n",
"
distance_from_home
\n",
"
57.877857
\n",
"
10.829943
\n",
"
5.091079
\n",
"
2.247564
\n",
"
44.190936
\n",
"
\n",
"
\n",
"
distance_from_last_transaction
\n",
"
0.311140
\n",
"
0.175592
\n",
"
0.805153
\n",
"
5.600044
\n",
"
0.566486
\n",
"
\n",
"
\n",
"
ratio_to_median_purchase_price
\n",
"
1.945940
\n",
"
1.294219
\n",
"
0.427715
\n",
"
0.362663
\n",
"
2.222767
\n",
"
\n",
"
\n",
"
repeat_retailer
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
used_chip
\n",
"
1.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
used_pin_number
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
\n",
"
\n",
"
online_order
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
fraud
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 \\\n",
"distance_from_home 57.877857 10.829943 5.091079 2.247564 \n",
"distance_from_last_transaction 0.311140 0.175592 0.805153 5.600044 \n",
"ratio_to_median_purchase_price 1.945940 1.294219 0.427715 0.362663 \n",
"repeat_retailer 1.000000 1.000000 1.000000 1.000000 \n",
"used_chip 1.000000 0.000000 0.000000 1.000000 \n",
"used_pin_number 0.000000 0.000000 0.000000 0.000000 \n",
"online_order 0.000000 0.000000 1.000000 1.000000 \n",
"fraud 0.000000 0.000000 0.000000 0.000000 \n",
"\n",
" 4 \n",
"distance_from_home 44.190936 \n",
"distance_from_last_transaction 0.566486 \n",
"ratio_to_median_purchase_price 2.222767 \n",
"repeat_retailer 1.000000 \n",
"used_chip 1.000000 \n",
"used_pin_number 0.000000 \n",
"online_order 1.000000 \n",
"fraud 0.000000 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head().T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you would like to see more entries in the dataset, you can use the `head()` method with an argument corresponding to the number of rows, e.g.,"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.050978Z",
"iopub.status.busy": "2026-01-19T18:30:05.050735Z",
"iopub.status.idle": "2026-01-19T18:30:05.065361Z",
"shell.execute_reply": "2026-01-19T18:30:05.064714Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
distance_from_home
\n",
"
distance_from_last_transaction
\n",
"
ratio_to_median_purchase_price
\n",
"
repeat_retailer
\n",
"
used_chip
\n",
"
used_pin_number
\n",
"
online_order
\n",
"
fraud
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
57.877857
\n",
"
0.311140
\n",
"
1.945940
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
1
\n",
"
10.829943
\n",
"
0.175592
\n",
"
1.294219
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
2
\n",
"
5.091079
\n",
"
0.805153
\n",
"
0.427715
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
3
\n",
"
2.247564
\n",
"
5.600044
\n",
"
0.362663
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
4
\n",
"
44.190936
\n",
"
0.566486
\n",
"
2.222767
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
5
\n",
"
5.586408
\n",
"
13.261073
\n",
"
0.064768
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
6
\n",
"
3.724019
\n",
"
0.956838
\n",
"
0.278465
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
7
\n",
"
4.848247
\n",
"
0.320735
\n",
"
1.273050
\n",
"
1.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
8
\n",
"
0.876632
\n",
"
2.503609
\n",
"
1.516999
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
9
\n",
"
8.839047
\n",
"
2.970512
\n",
"
2.361683
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
10
\n",
"
14.263530
\n",
"
0.158758
\n",
"
1.136102
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
11
\n",
"
13.592368
\n",
"
0.240540
\n",
"
1.370330
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
12
\n",
"
765.282559
\n",
"
0.371562
\n",
"
0.551245
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
13
\n",
"
2.131956
\n",
"
56.372401
\n",
"
6.358667
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
1.0
\n",
"
\n",
"
\n",
"
14
\n",
"
13.955972
\n",
"
0.271522
\n",
"
2.798901
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
15
\n",
"
179.665148
\n",
"
0.120920
\n",
"
0.535640
\n",
"
1.0
\n",
"
1.0
\n",
"
1.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
16
\n",
"
114.519789
\n",
"
0.707003
\n",
"
0.516990
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
17
\n",
"
3.589649
\n",
"
6.247458
\n",
"
1.846451
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
18
\n",
"
11.085152
\n",
"
34.661351
\n",
"
2.530758
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
19
\n",
"
6.194671
\n",
"
1.142014
\n",
"
0.307217
\n",
"
1.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
0.0
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" distance_from_home distance_from_last_transaction \\\n",
"0 57.877857 0.311140 \n",
"1 10.829943 0.175592 \n",
"2 5.091079 0.805153 \n",
"3 2.247564 5.600044 \n",
"4 44.190936 0.566486 \n",
"5 5.586408 13.261073 \n",
"6 3.724019 0.956838 \n",
"7 4.848247 0.320735 \n",
"8 0.876632 2.503609 \n",
"9 8.839047 2.970512 \n",
"10 14.263530 0.158758 \n",
"11 13.592368 0.240540 \n",
"12 765.282559 0.371562 \n",
"13 2.131956 56.372401 \n",
"14 13.955972 0.271522 \n",
"15 179.665148 0.120920 \n",
"16 114.519789 0.707003 \n",
"17 3.589649 6.247458 \n",
"18 11.085152 34.661351 \n",
"19 6.194671 1.142014 \n",
"\n",
" ratio_to_median_purchase_price repeat_retailer used_chip \\\n",
"0 1.945940 1.0 1.0 \n",
"1 1.294219 1.0 0.0 \n",
"2 0.427715 1.0 0.0 \n",
"3 0.362663 1.0 1.0 \n",
"4 2.222767 1.0 1.0 \n",
"5 0.064768 1.0 0.0 \n",
"6 0.278465 1.0 0.0 \n",
"7 1.273050 1.0 0.0 \n",
"8 1.516999 0.0 0.0 \n",
"9 2.361683 1.0 0.0 \n",
"10 1.136102 1.0 1.0 \n",
"11 1.370330 1.0 1.0 \n",
"12 0.551245 1.0 1.0 \n",
"13 6.358667 1.0 0.0 \n",
"14 2.798901 1.0 0.0 \n",
"15 0.535640 1.0 1.0 \n",
"16 0.516990 1.0 0.0 \n",
"17 1.846451 1.0 0.0 \n",
"18 2.530758 1.0 0.0 \n",
"19 0.307217 1.0 0.0 \n",
"\n",
" used_pin_number online_order fraud \n",
"0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 \n",
"2 0.0 1.0 0.0 \n",
"3 0.0 1.0 0.0 \n",
"4 0.0 1.0 0.0 \n",
"5 0.0 0.0 0.0 \n",
"6 0.0 1.0 0.0 \n",
"7 1.0 0.0 0.0 \n",
"8 0.0 0.0 0.0 \n",
"9 0.0 1.0 0.0 \n",
"10 0.0 1.0 0.0 \n",
"11 0.0 1.0 0.0 \n",
"12 0.0 0.0 0.0 \n",
"13 0.0 1.0 1.0 \n",
"14 0.0 1.0 0.0 \n",
"15 1.0 1.0 0.0 \n",
"16 0.0 0.0 0.0 \n",
"17 0.0 0.0 0.0 \n",
"18 0.0 1.0 0.0 \n",
"19 0.0 0.0 0.0 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that analogously you can also use the `tail()` method to see the last few rows of the dataset.\n",
"\n",
"We can also check what the variables in our dataset are called"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.067738Z",
"iopub.status.busy": "2026-01-19T18:30:05.067523Z",
"iopub.status.idle": "2026-01-19T18:30:05.071432Z",
"shell.execute_reply": "2026-01-19T18:30:05.070974Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['distance_from_home', 'distance_from_last_transaction',\n",
" 'ratio_to_median_purchase_price', 'repeat_retailer', 'used_chip',\n",
" 'used_pin_number', 'online_order', 'fraud'],\n",
" dtype='object')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and the data types of the variables"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.073519Z",
"iopub.status.busy": "2026-01-19T18:30:05.073302Z",
"iopub.status.idle": "2026-01-19T18:30:05.077640Z",
"shell.execute_reply": "2026-01-19T18:30:05.077187Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"distance_from_home float64\n",
"distance_from_last_transaction float64\n",
"ratio_to_median_purchase_price float64\n",
"repeat_retailer float64\n",
"used_chip float64\n",
"used_pin_number float64\n",
"online_order float64\n",
"fraud float64\n",
"dtype: object"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, all our variables are floating-point numbers (`float`). This means that they are numbers that have a fractional part such as 1.5, 3.14, etc. The number after `float`, `64` in this case refers to the number of bits that are used to represent this number in the computer's memory. With 64 bits you can store more decimals than you could with, for example, 32, meaning that the results of computations can be more precise. But for the topics discussed in this course, this is not very important. Other common data types that you might encounter are integers (`int`) such as 1, 3, 5, etc., or strings (`str`) such as `'hello'`, `'world'`, etc.\n",
"\n",
"Let's dig deeper into the dataset and see some summary statistics"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.079867Z",
"iopub.status.busy": "2026-01-19T18:30:05.079660Z",
"iopub.status.idle": "2026-01-19T18:30:05.332089Z",
"shell.execute_reply": "2026-01-19T18:30:05.331541Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
count
\n",
"
mean
\n",
"
std
\n",
"
min
\n",
"
25%
\n",
"
50%
\n",
"
75%
\n",
"
max
\n",
"
\n",
" \n",
" \n",
"
\n",
"
distance_from_home
\n",
"
1000000.0
\n",
"
26.628792
\n",
"
65.390784
\n",
"
0.004874
\n",
"
3.878008
\n",
"
9.967760
\n",
"
25.743985
\n",
"
10632.723672
\n",
"
\n",
"
\n",
"
distance_from_last_transaction
\n",
"
1000000.0
\n",
"
5.036519
\n",
"
25.843093
\n",
"
0.000118
\n",
"
0.296671
\n",
"
0.998650
\n",
"
3.355748
\n",
"
11851.104565
\n",
"
\n",
"
\n",
"
ratio_to_median_purchase_price
\n",
"
1000000.0
\n",
"
1.824182
\n",
"
2.799589
\n",
"
0.004399
\n",
"
0.475673
\n",
"
0.997717
\n",
"
2.096370
\n",
"
267.802942
\n",
"
\n",
"
\n",
"
repeat_retailer
\n",
"
1000000.0
\n",
"
0.881536
\n",
"
0.323157
\n",
"
0.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
used_chip
\n",
"
1000000.0
\n",
"
0.350399
\n",
"
0.477095
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
used_pin_number
\n",
"
1000000.0
\n",
"
0.100608
\n",
"
0.300809
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
online_order
\n",
"
1000000.0
\n",
"
0.650552
\n",
"
0.476796
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
1.000000
\n",
"
\n",
"
\n",
"
fraud
\n",
"
1000000.0
\n",
"
0.087403
\n",
"
0.282425
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
0.000000
\n",
"
1.000000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" count mean std min \\\n",
"distance_from_home 1000000.0 26.628792 65.390784 0.004874 \n",
"distance_from_last_transaction 1000000.0 5.036519 25.843093 0.000118 \n",
"ratio_to_median_purchase_price 1000000.0 1.824182 2.799589 0.004399 \n",
"repeat_retailer 1000000.0 0.881536 0.323157 0.000000 \n",
"used_chip 1000000.0 0.350399 0.477095 0.000000 \n",
"used_pin_number 1000000.0 0.100608 0.300809 0.000000 \n",
"online_order 1000000.0 0.650552 0.476796 0.000000 \n",
"fraud 1000000.0 0.087403 0.282425 0.000000 \n",
"\n",
" 25% 50% 75% max \n",
"distance_from_home 3.878008 9.967760 25.743985 10632.723672 \n",
"distance_from_last_transaction 0.296671 0.998650 3.355748 11851.104565 \n",
"ratio_to_median_purchase_price 0.475673 0.997717 2.096370 267.802942 \n",
"repeat_retailer 1.000000 1.000000 1.000000 1.000000 \n",
"used_chip 0.000000 0.000000 1.000000 1.000000 \n",
"used_pin_number 0.000000 0.000000 0.000000 1.000000 \n",
"online_order 0.000000 1.000000 1.000000 1.000000 \n",
"fraud 0.000000 0.000000 0.000000 1.000000 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe().T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the `describe()` method we can see the count, mean, standard deviation, minimum, 25th percentile, median, 75th percentile, and maximum values of each variable in the dataset.\n",
"\n",
"\n",
"#### Checking for Missing Values and Duplicated Rows {-}\n",
"\n",
"It is also important to check for missing values and duplicated rows in the dataset. Missing values can be problematic for machine learning models, as they might not be able to handle them. Duplicated rows can also be problematic, as they might introduce bias in the model.\n",
"\n",
"We can check for missing values (NA) that are encoded as None or `numpy.NaN` (Not a Number) with the `isna()` method. This method returns a boolean DataFrame (i.e., a DataFrame with `True` and `False` values) with the same shape as the original DataFrame, where `True` values indicate missing values."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.334511Z",
"iopub.status.busy": "2026-01-19T18:30:05.334264Z",
"iopub.status.idle": "2026-01-19T18:30:05.348574Z",
"shell.execute_reply": "2026-01-19T18:30:05.348042Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
distance_from_home
\n",
"
distance_from_last_transaction
\n",
"
ratio_to_median_purchase_price
\n",
"
repeat_retailer
\n",
"
used_chip
\n",
"
used_pin_number
\n",
"
online_order
\n",
"
fraud
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
1
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
2
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
3
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
4
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
999995
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
999996
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
999997
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
999998
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
999999
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
False
\n",
"
\n",
" \n",
"
\n",
"
1000000 rows × 8 columns
\n",
"
"
],
"text/plain": [
" distance_from_home distance_from_last_transaction \\\n",
"0 False False \n",
"1 False False \n",
"2 False False \n",
"3 False False \n",
"4 False False \n",
"... ... ... \n",
"999995 False False \n",
"999996 False False \n",
"999997 False False \n",
"999998 False False \n",
"999999 False False \n",
"\n",
" ratio_to_median_purchase_price repeat_retailer used_chip \\\n",
"0 False False False \n",
"1 False False False \n",
"2 False False False \n",
"3 False False False \n",
"4 False False False \n",
"... ... ... ... \n",
"999995 False False False \n",
"999996 False False False \n",
"999997 False False False \n",
"999998 False False False \n",
"999999 False False False \n",
"\n",
" used_pin_number online_order fraud \n",
"0 False False False \n",
"1 False False False \n",
"2 False False False \n",
"3 False False False \n",
"4 False False False \n",
"... ... ... ... \n",
"999995 False False False \n",
"999996 False False False \n",
"999997 False False False \n",
"999998 False False False \n",
"999999 False False False \n",
"\n",
"[1000000 rows x 8 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isna()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or to make it easier to see, we can sum the number of missing values for each variable"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.350883Z",
"iopub.status.busy": "2026-01-19T18:30:05.350653Z",
"iopub.status.idle": "2026-01-19T18:30:05.363295Z",
"shell.execute_reply": "2026-01-19T18:30:05.362785Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"distance_from_home 0\n",
"distance_from_last_transaction 0\n",
"ratio_to_median_purchase_price 0\n",
"repeat_retailer 0\n",
"used_chip 0\n",
"used_pin_number 0\n",
"online_order 0\n",
"fraud 0\n",
"dtype: int64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isna().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Luckily, there seem to be no missing values. However, you need to be careful! Sometimes missing values are encoded as empty strings `''` or `numpy.inf` (infinity), which are not considered missing values by the `isna()` method. If you suspect that this might be the case, you need to make additional checks.\n",
"\n",
"As an alternative, we could also look at the `info()` method, which provides a summary of the DataFrame, including the number of non-null values in each column. If there are missing values, the number of non-null values will be less than the number of rows in the dataset."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.365642Z",
"iopub.status.busy": "2026-01-19T18:30:05.365410Z",
"iopub.status.idle": "2026-01-19T18:30:05.383066Z",
"shell.execute_reply": "2026-01-19T18:30:05.382480Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 1000000 entries, 0 to 999999\n",
"Data columns (total 8 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 distance_from_home 1000000 non-null float64\n",
" 1 distance_from_last_transaction 1000000 non-null float64\n",
" 2 ratio_to_median_purchase_price 1000000 non-null float64\n",
" 3 repeat_retailer 1000000 non-null float64\n",
" 4 used_chip 1000000 non-null float64\n",
" 5 used_pin_number 1000000 non-null float64\n",
" 6 online_order 1000000 non-null float64\n",
" 7 fraud 1000000 non-null float64\n",
"dtypes: float64(8)\n",
"memory usage: 61.0 MB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also check for duplicated rows with the `duplicated()` method. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.385503Z",
"iopub.status.busy": "2026-01-19T18:30:05.385268Z",
"iopub.status.idle": "2026-01-19T18:30:05.739682Z",
"shell.execute_reply": "2026-01-19T18:30:05.739047Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
distance_from_home
\n",
"
distance_from_last_transaction
\n",
"
ratio_to_median_purchase_price
\n",
"
repeat_retailer
\n",
"
used_chip
\n",
"
used_pin_number
\n",
"
online_order
\n",
"
fraud
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [distance_from_home, distance_from_last_transaction, ratio_to_median_purchase_price, repeat_retailer, used_chip, used_pin_number, online_order, fraud]\n",
"Index: []"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.loc[df.duplicated()]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Luckily, there are also no duplicated rows.\n",
"\n",
"\n",
"#### Data Visualization {-}\n",
"\n",
"Let's continue with some data visualization. We can use the `matplotlib` library to create plots. We have already imported the library at the beginning of the notebook.\n",
"\n",
"Let's start by plotting the distribution of the target variable `fraud` which can only take values zero and one. We can type"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.743224Z",
"iopub.status.busy": "2026-01-19T18:30:05.742900Z",
"iopub.status.idle": "2026-01-19T18:30:05.758836Z",
"shell.execute_reply": "2026-01-19T18:30:05.758065Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"fraud\n",
"0.0 912597\n",
"1.0 87403\n",
"Name: count, dtype: int64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['fraud'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"to get the count of each value. We can also use the `normalize=True` argument to get the fraction of observations instead of the count"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.761937Z",
"iopub.status.busy": "2026-01-19T18:30:05.761645Z",
"iopub.status.idle": "2026-01-19T18:30:05.776433Z",
"shell.execute_reply": "2026-01-19T18:30:05.775428Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"fraud\n",
"0.0 0.912597\n",
"1.0 0.087403\n",
"Name: proportion, dtype: float64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['fraud'].value_counts(normalize=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then plot it as follows"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.779506Z",
"iopub.status.busy": "2026-01-19T18:30:05.779239Z",
"iopub.status.idle": "2026-01-19T18:30:05.941761Z",
"shell.execute_reply": "2026-01-19T18:30:05.941157Z"
}
},
"outputs": [
{
"data": {
"image/png": "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jMzMzGL7/PYOpj179hiDBg0yQkJCDC8vL8Pf39/o3r27sWHDBof9/vWvfxm///3vDS8vL0OS/a6ZouOdPXv2hucyjGt33ERFRRkffPCB0apVK8PT09MIDQ014uPji+1//Phxo1+/foavr6/RoEED45lnnjE2btxY7G6pnJwc48EHHzTq1q1r2Gw2h3OqhDt/vvrqK2PAgAGGn5+f4enpabRr185YsWKFQ5+iu6Xef/99h/aiO5Z+278kycnJRq9evYxatWoZNWvWNDp37mx8/PHHJR7PzN1S1+sryXjqqadK3LZ8+XKjefPmhpeXl3H77bcbcXFxxrJly4rd2ZSfn29MmTLFCA4ONmrWrGl0797dSElJKXa3lGEYxq5du4zOnTsbXl5eRqNGjYzJkycbb7zxBndLocqyGcYNbsMAAACoQphzAwAALIVwAwAALIVwAwAALMWt4WbHjh0aMGCAgoKCZLPZSlyr4be2b9+uiIgI+4P6Fi9eXP6FAgCAKsOt4ebChQtq166dXn/9daf6nzx5Uvfee68iIyN16NAh/e1vf9O4ceP04YcflnOlAACgqqg0d0vZbDatX79e999/f6l9nn32WW3YsEHHjh2zt0VHR+vw4cPFniUDAABuTVVqEb89e/bYn6tS5O6779ayZct05coV1ahRo9g++fn5DkuQX716VTk5OfL396/wBbgAAEDZGIah8+fPKygoSNWqXf/CU5UKNxkZGQ5PrpWkwMBAFRQUKCsrq8QHzcXFxWnmzJkVVSIAAChHaWlpatKkyXX7VKlwIxV/mFzRVbXSRmFiY2MVExNjf5+bm6umTZsqLS1Nvr6+5VcoAABwmby8PAUHB6tOnTo37Fulwk2jRo2KPak2MzNT1atXtz+F+Le8vLxKfO6Kr68v4QYAgCrGmSklVWqdmy5duigpKcmhbfPmzerYsWOJ820AAMCtx63h5ueff1ZKSopSUlIkXbvVOyUlRampqZKuXVIaMWKEvX90dLROnz6tmJgYHTt2TMuXL9eyZcs0adIkd5QPAAAqIbdeltq/f7969uxpf180N2bkyJF66623lJ6ebg86khQWFqZNmzZpwoQJWrhwoYKCgrRgwQINHjy4wmsHAACVU6VZ56ai5OXlyc/PT7m5ucy5AQCgijDz+7tKzbkBAAC4EcINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwlOruLgAVJ/S5je4uARXo1Owod5cAAG7ByA0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUt4ebhIQEhYWFydvbWxEREUpOTr5u/9WrV6tdu3by8fFR48aNNXr0aGVnZ1dQtQAAoLJza7hJTEzU+PHjNXXqVB06dEiRkZHq37+/UlNTS+y/c+dOjRgxQmPGjNHXX3+t999/X/v27dPYsWMruHIAAFBZuTXcxMfHa8yYMRo7dqxatmyp+fPnKzg4WIsWLSqx/969exUaGqpx48YpLCxMd911lx5//HHt37+/gisHAACVldvCzeXLl3XgwAH169fPob1fv37avXt3ift07dpVP/zwgzZt2iTDMPTTTz/pgw8+UFRUVKnnyc/PV15ensMLAABYl9vCTVZWlgoLCxUYGOjQHhgYqIyMjBL36dq1q1avXq2hQ4fK09NTjRo1Ut26dfXaa6+Vep64uDj5+fnZX8HBwS79HAAAoHJx+4Rim83m8N4wjGJtRY4ePapx48Zp2rRpOnDggD799FOdPHlS0dHRpR4/NjZWubm59ldaWppL6wcAAJVLdXedOCAgQB4eHsVGaTIzM4uN5hSJi4tTt27dNHnyZElS27ZtVatWLUVGRuqFF15Q48aNi+3j5eUlLy8v138AAABQKblt5MbT01MRERFKSkpyaE9KSlLXrl1L3OfixYuqVs2xZA8PD0nXRnwAAADcelkqJiZGS5cu1fLly3Xs2DFNmDBBqamp9stMsbGxGjFihL3/gAEDtG7dOi1atEgnTpzQrl27NG7cOP3xj39UUFCQuz4GAACoRNx2WUqShg4dquzsbM2aNUvp6elq3bq1Nm3apJCQEElSenq6w5o3o0aN0vnz5/X6669r4sSJqlu3rnr16qWXX37ZXR8BAABUMjbjFruek5eXJz8/P+Xm5srX19fd5VSo0Oc2ursEVKBTs0tfIgEAqhozv7/dfrcUAACAKxFuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApZgON2+//bY2btxofz9lyhTVrVtXXbt21enTp11aHAAAgFmmw81LL72kmjVrSpL27Nmj119/Xa+88ooCAgI0YcIElxcIAABgRnWzO6SlpSk8PFyS9NFHH+nBBx/UY489pm7duqlHjx6urg8AAMAU0yM3tWvXVnZ2tiRp8+bN6tOnjyTJ29tbly5dcm11AAAAJpkeuenbt6/Gjh2r3//+9zp+/LiioqIkSV9//bVCQ0NdXR8AAIAppkduFi5cqC5duujs2bP68MMP5e/vL0k6cOCA/vSnP7m8QAAAADNMj9zUrVtXr7/+erH2mTNnuqQgAACAm2E63EjSuXPn9OWXXyozM1NXr161t9tsNj388MMuKw4AAMAs0+Hm448/1p///GdduHBBderUkc1ms28j3AAAAHczPedm4sSJeuSRR3T+/HmdO3dO//3vf+2vnJyc8qgRAADAaabDzZkzZzRu3Dj5+PiURz0AAAA3xXS4ufvuu7V///7yqAUAAOCmmZ5zExUVpcmTJ+vo0aNq06aNatSo4bB94MCBLisOAADALNPh5tFHH5UkzZo1q9g2m82mwsLCm68KAACgjEyHm1/f+g0AAFDZmJ5zAwAAUJmVKdxs375dAwYMUHh4uO644w4NHDhQycnJrq4NAADANNPhZtWqVerTp498fHw0btw4Pf3006pZs6Z69+6tNWvWlEeNAAAATrMZhmGY2aFly5Z67LHHNGHCBIf2+Ph4vfnmmzp27JhLC3S1vLw8+fn5KTc3V76+vu4up0KFPrfR3SWgAp2aHeXuEgDAZcz8/jY9cnPixAkNGDCgWPvAgQN18uRJs4cDAABw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S5cuqXv37goPD1edOnX04osvlkeNAAAATjN9t5Svr6927typrVu36uDBg7p69ao6dOigPn36lEd9AAAAppgON0V69eqlXr16Sbq27g0AAEBlYPqy1Msvv6zExET7+yFDhsjf31+33XabDh8+7NLiAAAAzDIdbpYsWaLg4GBJUlJSkpKSkvTPf/5T/fv31+TJk11eIAAAgBmmL0ulp6fbw80nn3yiIUOGqF+/fgoNDVWnTp1cXiAAAIAZpkdu6tWrp7S0NEnSp59+ap9IbBiGCgsLXVsdAACASaZHbh544AENHz5cd9xxh7Kzs9W/f39JUkpKisLDw11eIAAAgBmmw828efMUGhqqtLQ0vfLKK6pdu7aka5ernnzySZcXCAAAYIbpcFOjRg1NmjSpWPv48eNdUQ8AAMBNKdM6N99++61ee+01HTt2TDabTS1atNAzzzyj5s2bu7o+AAAAU0xPKP7ggw/UunVrHThwQO3atVPbtm118OBBtW7dWu+//3551AgAAOA00yM3U6ZMUWxsrGbNmuXQPn36dD377LN66KGHXFYcAACAWaZHbjIyMjRixIhi7X/5y1+UkZHhkqIAAADKynS46dGjh5KTk4u179y5U5GRkS4pCgAAoKycuiy1YcMG+9cDBw7Us88+qwMHDqhz586SpL179+r999/XzJkzy6dKAAAAJ9kMwzBu1KlaNecGeGw2W6VfpTgvL09+fn7Kzc2Vr6+vu8upUKHPbXR3CahAp2ZHubsEAHAZM7+/nRq5uXr1qksKAwAAKG+m59wAAABUZqbCTUFBgf7xj3+oQ4cOql27turUqaMOHTpozpw5unLlSnnVCAAA4DSn17m5dOmS+vbtqz179qhPnz76f//v/8kwDH3zzTd69tlntWHDBm3evFne3t7lWS8AAMB1OR1u4uLilJaWpkOHDqlt27YO2w4fPqyBAwdq9uzZmjFjhqtrBAAAcJrTl6Xee+89xcfHFws2ktSuXTvNmTNHa9ascWlxAAAAZjkdblJTU/XHP/6x1O2dO3dWamqqS4oCAAAoK6fDja+vrzIzM0vdnpGRccutGwMAACofp8NNz5499dJLL5W6ffbs2erRo4cragIAACgzpycUT58+XZ06dVLnzp0VExOjFi1aSJKOHj2qefPm6ejRo9q7d2+5FQoAAOAMp8PN7373OyUlJWnMmDEa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u6RGjx6tV199lfVsAABApWR6zs38+fNVUFBQrD0nJ+eGC/wBAACUN9PhZtiwYXrvvfeKta9du1bDhg1zSVEAAABlZTrcfPHFF+rZs2ex9h49euiLL75wSVEAAABlZTrc5Ofnl3hZ6sqVK7p06ZJLigIAACgr0+HmD3/4g954441i7YsXL1ZERIRLigIAACgrp++WKvLiiy+qT58+Onz4sHr37i1J2rJli/bt26fNmze7vEAAAAAzTI/cdOvWTXv27FFwcLDWrl2rjz/+WOHh4fr3v/+tyMjI8qgRAADAaaZHbiSpffv2Wr16tatrAQAAuGllCjdFLl26pCtXrji0sbgfAABwJ9OXpS5evKinn35aDRs2VO3atVWvXj2HFwAAgDuZDjeTJ0/W1q1blZCQIC8vLy1dulQzZ85UUFCQVq5cWR41AgAAOM30ZamPP/5YK1euVI8ePfTII48oMjJS4eHhCgkJ0erVq/XnP/+5POoEAABwiumRm5ycHIWFhUm6Nr8mJydHknTXXXdpx44drq0OAADAJNPh5vbbb9epU6ckSb/73e+0du1aSddGdOrWrevK2gAAAEwzHW5Gjx6tw4cPS5JiY2Ptc28mTJigyZMnu7xAAAAAM0zPuZkwYYL96549e+qbb77R/v371axZM7Vr186lxQEAAJhlauTmypUr6tmzp44fP25va9q0qR544AGCDQAAqBRMhZsaNWroyJEjstls5VUPAADATTE952bEiBFatmxZedQCAABw00zPubl8+bKWLl2qpKQkdezYUbVq1XLYHh8f77LiAAAAzDIdbo4cOaIOHTpIksPcG0lcrgIAAG7ndLg5ceKEwsLCtG3btvKsBwAA4KY4Pefmjjvu0NmzZ+3vhw4dqp9++qlcigIAACgrp8ONYRgO7zdt2qQLFy64vCAAAICbYfpuKQAAgMrM6XBjs9mKTRhmAjEAAKhsnJ5QbBiGRo0aJS8vL0nSL7/8oujo6GK3gq9bt861FQIAAJjgdLgZOXKkw/u//OUvLi8GAADgZjkdblasWFGedQAAALgEE4oBAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAICluD3cJCQkKCwsTN7e3oqIiFBycnKpfdetW6e+ffuqQYMG8vX1VZcuXfTZZ59VYLUAAKCyc2u4SUxM1Pjx4zV16lQdOnRIkZGR6t+/v1JTU0vsv2PHDvXt21ebNm3SgQMH1LNnTw0YMECHDh2q4MoBAEBlZTMMw3DXyTt16qQOHTpo0aJF9raWLVvq/vvvV1xcnFPHaNWqlYYOHapp06Y51T8vL09+fn7Kzc2Vr69vmequqkKf2+juElCBTs2OcncJAOAyZn5/u23k5vLlyzpw4ID69evn0N6vXz/t3r3bqWNcvXpV58+fV/369Uvtk5+fr7y8PIcXAACwLreFm6ysLBUWFiowMNChPTAwUBkZGU4dY+7cubpw4YKGDBlSap+4uDj5+fnZX8HBwTdVNwAAqNzcPqHYZrM5vDcMo1hbSd59913NmDFDiYmJatiwYan9YmNjlZuba3+lpaXddM0AAKDyqu6uEwcEBMjDw6PYKE1mZmax0ZzfSkxM1JgxY/T++++rT58+1+3r5eUlLy+vm64XAABUDW4bufH09FRERISSkpIc2pOSktS1a9dS93v33Xc1atQorVmzRlFRTJgEAACO3DZyI0kxMTF6+OGH1bFjR3Xp0kVvvPGGUlNTFR0dLenaJaUzZ85o5cqVkq4FmxEjRujVV19V586d7aM+NWvWlJ+fn9s+BwAAqDzcGm6GDh2q7OxszZo1S+np6WrdurU2bdqkkJAQSVJ6errDmjdLlixRQUGBnnrqKT311FP29pEjR+qtt96q6PIBAEAl5NZ1btyBdW5wq2CdGwBWUiXWuQEAACgPhBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAp1d1dAADg5oU+t9HdJaACnZod5e4SKjVGbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKW4PdwkJCQoLCxM3t7eioiIUHJy8nX7b9++XREREfL29tbtt9+uxYsXV1ClAACgKnBruElMTNT48eM1depUHTp0SJGRkerfv79SU1NL7H/y5Ende++9ioyM1KFDh/S3v/1N48aN04cffljBlQMAgMrKreEmPj5eY8aM0dixY9WyZUvNnz9fwcHBWrRoUYn9Fy9erKZNm2r+/Plq2bKlxo4dq0ceeURz5syp4MoBAEBl5bZwc/nyZR04cED9+vVzaO/Xr592795d4j579uwp1v/uu+/W/v37deXKlXKrFQAAVB3V3XXirKwsFRYWKjAw0KE9MDBQGRkZJe6TkZFRYv+CggJlZWWpcePGxfbJz89Xfn6+/X1ubq4kKS8v72Y/QpVzNf+iu0tABboV/xu/lfHzfWu5FX++iz6zYRg37Ou2cFPEZrM5vDcMo1jbjfqX1F4kLi5OM2fOLNYeHBxstlSgSvGb7+4KAJSXW/nn+/z58/Lz87tuH7eFm4CAAHl4eBQbpcnMzCw2OlOkUaNGJfavXr26/P39S9wnNjZWMTEx9vdXr15VTk6O/P39rxuiYA15eXkKDg5WWlqafH193V0OABfi5/vWYhiGzp8/r6CgoBv2dVu48fT0VEREhJKSkjRo0CB7e1JSku67774S9+nSpYs+/vhjh7bNmzerY8eOqlGjRon7eHl5ycvLy6Gtbt26N1c8qhxfX1/+5wdYFD/ft44bjdgUcevdUjExMVq6dKmWL1+uY8eOacKECUpNTVV0dLSka6MuI0aMsPePjo7W6dOnFRMTo2PHjmn58uVatmyZJk2a5K6PAAAAKhm3zrkZOnSosrOzNWvWLKWnp6t169batGmTQkJCJEnp6ekOa96EhYVp06ZNmjBhghYuXKigoCAtWLBAgwcPdtdHAAAAlYzNcGbaMVBF5efnKy4uTrGxscUuTwKo2vj5RmkINwAAwFLc/mwpAAAAVyLcAAAASyHcAAAASyHcAAAASyHcAAAAS3H7s6WA8lBYWKisrCzZbDb5+/vLw8PD3SUBACoIIzewlPXr16tbt27y8fFRUFCQGjduLB8fH3Xr1k0fffSRu8sD4CKFhYX66aeflJmZqcLCQneXg0qGcAPLWLJkiYYNG6a2bdsqMTFRO3fuVHJyshITE9W2bVsNGzZMb775prvLBHAT+AMGzmARP1hGeHi4YmNjNWbMmBK3L1++XC+++KK+//77Cq4MgCssWbJE48aN0yOPPKK7775bgYGBMgxDmZmZ+uyzz7RixQq99tprevTRR91dKtyMcAPLqFmzplJSUtS8efMSt3/zzTf6/e9/r0uXLlVwZQBcgT9g4CwuS8EyWrVqpTfeeKPU7W+++aZatWpVgRUBcKUzZ87orrvuKnV7165d9eOPP1ZgRaisuFsKljF37lxFRUXp008/Vb9+/RQYGCibzaaMjAwlJSXp9OnT2rRpk7vLBFBGRX/AzJ07t8Tt/AGDIlyWgqWcOnVKixYt0t69e5WRkSFJatSokbp06aLo6GiFhoa6t0AAZbZ9+3ZFRUUpJCTkun/AREZGurtUuBnhBgBQZfAHDJxBuAEAAJbChGLcMkaOHKlevXq5uwwAQDkj3OCWERQUpJCQEHeXAaCc8AcMinC3FG4ZcXFx7i4BQDkKCgpStWr8zQ7m3MBifvjhBy1atEi7d+9WRkaGbDabAgMD1bVrVz3xxBNq0qSJu0sEAJQzwg0sY+fOnerfv7+Cg4Ptt4kWLc2elJSktLQ0/fOf/1S3bt3cXSqAcpCWlqbp06dr+fLl7i4Fbka4gWX84Q9/0F133aV58+aVuH3ChAnauXOn9u3bV8GVAagIhw8fVocOHXhKOAg3sA6eLQVY24YNG667/cSJE5o4cSLhBkwohnU0btxYu3fvLjXc7NmzR40bN67gqgC4yv333y+bzabr/U1us9kqsCJUVoQbWMakSZMUHR2tAwcOqG/fvsWWZl+6dKnmz5/v7jIBlFHjxo21cOFC3X///SVuT0lJUURERMUWhUqJcAPLePLJJ+Xv76958+ZpyZIl9qFpDw8PRUREaOXKlRoyZIibqwRQVhERETp48GCp4eZGozq4dTDnBpZ05coVZWVlSZICAgJUo0YNN1cE4GYlJyfrwoULuueee0rcfuHCBe3fv1/du3ev4MpQ2RBuAACApbCUIwAAsBTCDQAAsBTCDQAAsBTCDQD8yqhRo0q9GwdA1UC4AVApjBo1SjabrdjrP//5j7tLA1DFsM4NgErjnnvu0YoVKxzaGjRo4PD+8uXL8vT0rMiyAFQxjNwAqDS8vLzUqFEjh1fv3r319NNPKyYmRgEBAerbt68kKT4+Xm3atFGtWrUUHBysJ598Uj///LP9WDNmzFD79u0djj9//nyFhoba3xcWFiomJkZ169aVv7+/pkyZwiJwgAUQbgBUem+//baqV6+uXbt2acmSJZKkatWqacGCBTpy5Ijefvttbd26VVOmTDF13Llz52r58uVatmyZdu7cqZycHK1fv748PgKACsRlKQCVxieffKLatWvb3/fv31+SFB4erldeecWh7/jx4+1fh4WF6X//93/1xBNPKCEhwenzzZ8/X7GxsRo8eLAkafHixfrss89u4hMAqAwINwAqjZ49e2rRokX297Vq1dKf/vQndezYsVjfbdu26aWXXtLRo0eVl5engoIC/fLLL7pw4YJq1ap1w3Pl5uYqPT1dXbp0sbdVr15dHTt25NIUUMVxWQpApVGrVi2Fh4fbX40bN7a3/9rp06d17733qnXr1vrwww914MABLVy4UNK154pJ1y5b/TakFG0DYG2EGwBVzv79+1VQUKC5c+eqc+fOuvPOO/Xjjz869GnQoIEyMjIcAk5KSor9az8/PzVu3Fh79+61txUUFOjAgQPlXj+A8kW4AVDlNGvWTAUFBXrttdd04sQJvfPOO1q8eLFDnx49eujs2bN65ZVX9P3332vhwoX65z//6dDnr3/9q2bPnq3169frm2++0ZNPPqlz585V4CcBUB4INwCqnPbt2ys+Pl4vv/yyWrdurdWrVysuLs6hT8uWLZWQkKCFCxeqXbt2+vLLLzVp0iSHPhMnTtSIESM0atQodenSRXXq1NGgQYMq8qMAKAc2g5lzAADAQhi5AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlkK4AQAAlvL/Ac+QgSu7Rqb/AAAAAElFTkSuQmCC",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['fraud'].value_counts(normalize=True).plot(kind='bar')\n",
"plt.xlabel('Fraud')\n",
"plt.ylabel('Fraction of Observations')\n",
"plt.title('Distribution of Fraud')\n",
"ax = plt.gca()\n",
"ax.set_ylim([0.0, 1.0])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, we can plot it as a pie chart"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:05.944531Z",
"iopub.status.busy": "2026-01-19T18:30:05.944223Z",
"iopub.status.idle": "2026-01-19T18:30:06.010674Z",
"shell.execute_reply": "2026-01-19T18:30:06.010130Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.value_counts(\"fraud\").plot.pie(autopct = \"%.1f\")\n",
"plt.ylabel('')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our dataset seems to be quite imbalanced, as only 8.7% of the transactions are fraudulent. This is a common problem in fraud detection datasets, as fraudulent transactions are usually very rare. We will need to **keep this in mind** when evaluating our machine learning model: the accuracy measure will be very high even for bad models, as the model can just predict that all transactions are not fraudulent and still get an accuracy of 91.3%.\n",
"\n",
"Let's look at some distributions. Most of the variables in the dataset are binary (0 or 1) variables. However, we also have some continuous variables. Let's plot the distribution of the variable `ratio_to_median_purchase_price`, which is a continuous variable."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:06.013256Z",
"iopub.status.busy": "2026-01-19T18:30:06.013032Z",
"iopub.status.idle": "2026-01-19T18:30:06.176004Z",
"shell.execute_reply": "2026-01-19T18:30:06.175472Z"
}
},
"outputs": [
{
"data": {
"image/png": "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q+HqliTL0xMtGlXn1NirMWPGyNfXt6OH06nRq7ahX96jV96jV95rz141rjhdTqcIVnPmzNGbb76pnTt3qk+fPub28PBwSV/NBkVERJjbq6qqzJmi8PBw1dXVqbq62mPWqqqqSsOHDzdrPv300ybn/eyzzzyOs3v3bo/91dXVcrvdHjWNs1dfP4/UdFatkd1u91g6bOTr69sufyCuBptc9VcXrK6XP9z2+h18E9GrtqFf3qNX3qNX3muPXnl7vA59V6BhGJo9e7Zef/11vfvuu02W0gYMGKDw8HCPKb26ujrt2LHDDE0xMTHy9fX1qKmoqFB5eblZExcXp5qaGn3wwQdmze7du1VTU+NRU15eroqKCrMmLy9PdrtdMTExZs3OnTs9PoIhLy9PTqezyRIhAAC4/nRosJo1a5Y2bdqkV199VYGBgaqsrFRlZaUuXLgg6avltXnz5mnFihXKyclReXm5UlJS1LNnTyUlJUmSHA6Hpk+frvnz56ugoED79u3TI488oiFDhpjvEhw0aJDGjh2r1NRUFRcXq7i4WKmpqZowYYKioqIkSQkJCRo8eLCSk5O1b98+FRQUaMGCBUpNTTWX7JKSkmS325WSkqLy8nLl5ORoxYoVvCMQAABI6uClwHXr1kmSRo4c6bF9w4YNSklJkSQ9+eSTunDhgmbOnKnq6moNHTpUeXl5CgwMNOufe+45de/eXVOmTNGFCxc0evRoZWVlycfHx6zZvHmz5s6da757cNKkSVq7dq2538fHR1u3btXMmTN17733yt/fX0lJSVq1apVZ43A4lJ+fr1mzZik2NlbBwcFKS0vzuIcKAABcvzo0WHnzieU2m03p6elKT09vsaZHjx7KzMxUZmZmizW9evXSpk2bWj1X37599dZbb7VaM2TIEO3cubPVGgAAcH3iuwIBAAAsQrACAACwCMEKAADAIgQrAAAAixCsAAAALEKwAgAAsAjBCgAAwCIEKwAAAIsQrAAAACxyRcHqlltu0alTp5psP336tG655ZarHhQAAEBXdEXB6vjx46qvr2+y3eVy6Z///OdVDwoAAKAratN3Bb755pvmv99++205HA7zcX19vQoKCtS/f3/LBgcAANCVtClYPfTQQ5K++mLkadOmeezz9fVV//79tXr1assGBwAA0JW0KVg1NDRIkgYMGKA9e/YoJCSkXQYFAADQ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8cwzzxgOh8N4/fXXjbKyMuOHP/yhERERYdTW1nbwyK+91np15swZY/78+UZhYaFx7Ngx47333jPi4uKM3r17X5e9evzxxw2Hw2Fs377dqKioMH/Onz9v1nBtfeVyveLa+peFCxcaO3fuNI4dO2bs37/f+OlPf2p069bNyMvLMwyj468pgtU3xG9+8xujX79+hp+fn/Htb3/b4y26+MrUqVONiIgIw9fX13A6ncbkyZONAwcOdPSwOoX33nvPkNTkZ9q0aYZhfPW2+CVLlhjh4eGG3W437r//fqOsrKxjB91BWuvV+fPnjYSEBOPmm282fH19jb59+xrTpk0zTpw40dHD7hDN9UmSsWHDBrOGa+srl+sV19a/PProo+Z/726++WZj9OjRZqgyjI6/pmyGYRjXZm4MAADgm417rAAAACxCsAIAALAIwQoAAMAiBCsAAACLEKwAAAAsQrACAACwCMEKAADAIgQrAAAAixCsgOvc8ePHZbPZVFpa2tFDuWbS09N19913m49TUlL00EMPddh42lv//v21Zs2ajh6GJS793QGdDcEK6AJSUlJks9lks9nUvXt39e3bV48//riqq6vbfJxLA0RkZKQqKioUHR19xePLysrSjTfeeMXP/7r+/fvLZrMpOzu7yb477rhDNptNWVlZlpyr0fPPP2/5MZvT+NpsNpt69uyp6Ohovfjii+1+3s4oKyvL7IXNZlNERISmTJmiY8eOtfq8BQsWqKCg4BqNEmg7ghXQRYwdO1YVFRU6fvy4fv/73+v//t//q5kzZ171cX18fBQeHq7u3btbMEprREZGasOGDR7biouLVVlZqYCAAMvP53A4LAuGl7Ns2TJVVFRo//79euihh/TYY4/ptddeu+Ljud1uC0d3bQUFBamiokKffPKJXn31VZWWlmrSpEmqr69vUmsYhr788kvdcMMNuummmzpgtIB3CFZAF2G32xUeHq4+ffooISFBU6dOVV5enrm/vr5e06dP14ABA+Tv76+oqCg9//zz5v709HRt3LhR//M//2POEmzfvr3ZpcAdO3boO9/5jux2uyIiIvT000/ryy+/bHZc27dv17//+7+rpqbGPG56erokqbq6Wj/60Y8UHBysnj17aty4cTp69OhlX+vDDz+sHTt26OTJk+a2l19+WQ8//HCTAFhTU6Of/OQnCg0NVVBQkEaNGqUPP/zQo+aZZ55RWFiYAgMDNX36dF28eNFj/6Uzebm5ubrvvvt044036qabbtKECRP097//3dzf2LPXX39d8fHx6tmzp+666y4VFRVd9rUFBgYqPDxct912m375y1/q9ttv1xtvvCGp+SW7u+++2+ynJNlsNv32t7/Vgw8+qICAAP3yl7+UJL355puKjY1Vjx49FBISosmTJ3sc5/z583r00UcVGBiovn376ne/+53H/qeeekoDBw5Uz549dcstt2jx4sUeoe3DDz9UfHy8AgMDFRQUpJiYGO3du9fcX1hYqPvvv1/+/v6KjIzU3Llzde7cuVZ7YbPZFB4eroiICMXHx2vJkiUqLy/X3/72N23fvl02m01vv/22YmNjZbfb9f777ze7FPjyyy/rjjvuMK/X2bNnm/u8uT4AKxGsgC7oH//4h3Jzc+Xr62tua2hoUJ8+ffTHP/5RBw8e1M9//nP99Kc/1R//+EdJXy2hTJkyxZz5qqio0PDhw5sc+5///Ke+973v6Z577tGHH36odevW6aWXXjL/A36p4cOHa82aNebsQ0VFhRYsWCDpq8Cyd+9evfnmmyoqKpJhGPre97532VmWsLAwJSYmauPGjZK+CgWvvfaaHn30UY86wzA0fvx4VVZWatu2bSopKdG3v/1tjR49Wl988YUk6Y9//KOWLFmi5cuXa+/evYqIiNALL7zQ6vnPnTuntLQ07dmzRwUFBerWrZu+//3vq6GhwaNu0aJFWrBggUpLSzVw4ED98Ic/bDGAtqRHjx5tnnVasmSJHnzwQZWVlenRRx/V1q1bNXnyZI0fP1779u1TQUGBYmNjPZ6zevVqxcbGat++fZo5c6Yef/xx/fWvfzX3BwYGKisrSwcPHtTzzz+v9evX67nnnjP3P/zww+rTp4/27NmjkpISPf300+b1V1ZWpsTERE2ePFn79+/Xa6+9pl27dnkEHG/4+/tL8pyFe/LJJ7Vy5UodOnRId955Z5PnrFu3TrNmzdJPfvITlZWV6c0339Rtt90mybvrA7CcAaDTmzZtmuHj42MEBAQYPXr0MCQZkoyMjIxWnzdz5kzjf//v/+1xnAcffNCj5tixY4YkY9++fYZhGMZPf/pTIyoqymhoaDBrfvOb3xg33HCDUV9f3+x5NmzYYDgcDo9tR44cMSQZf/7zn81tn3/+ueHv72/88Y9/bHHM/fr1M5577jnjjTfeMG699VajoaHB2Lhxo/Gtb33LMAzDcDgcxoYNGwzDMIyCggIjKCjIuHjxoscxbr31VuPFF180DMMw4uLijMcee8xj/9ChQ4277rqr1b58XVVVlSHJKCsrMwzjXz37/e9/b9YcOHDAkGQcOnTosq/NMAzD7XYbGzZsMCQZL7zwQpP9je666y5jyZIl5mNJxrx58zxq4uLijIcffrjV8z7yyCPm44aGBiM0NNRYt25di8959tlnjZiYGPNxYGCgkZWV1WxtcnKy8ZOf/MRj2/vvv29069bNuHDhQrPPufSaOXnypDFs2DCjT58+hsvlMt577z1DkvHGG294PG/JkiUevzun02ksWrSo2XN4c30AVmPGCugi4uPjVVpaqt27d2vOnDlKTEzUnDlzPGp++9vfKjY2VjfffLNuuOEGrV+/XidOnGjTeQ4dOqS4uDjZbDZz27333quzZ8/q448/btNxunfvrqFDh5rbbrrpJkVFRenQoUOXff748eN19uxZ7dy5Uy+//HKT2SpJKikp0dmzZ3XTTTfphhtuMH+OHTtmLt01vp6vu/Txpf7+978rKSlJt9xyi4KCgjRgwABJatLLr8+gRERESJKqqqpaPfZTTz2lG264Qf7+/po1a5b+8z//UzNmzGj1OZe6dDaqtLRUo0ePbvU5Xx9r4xLc18f6f/7P/9F9992n8PBw3XDDDVq8eLHH601LS9OPf/xjPfDAA3rmmWc8lkZLSkqUlZXl8TtITExUQ0NDqzej19TU6IYbblBAQIAiIyNVV1en119/XX5+fi2+1q+rqqrSJ5980uJr9+b6AKzWee5WBdCqgIAAc4nj17/+teLj47V06VL94he/kPTVktcTTzyh1atXKy4uToGBgfrVr36l3bt3t+k8hmF4hKrGbZKabL/ccbw9fnO6d++u5ORkLVmyRLt371ZOTk6TmoaGBkVERGj79u1N9l3NzegTJ05UZGSk1q9fL6fTqYaGBkVHR6uurs6j7utLsY2v6dLlwkv953/+p1JSUtSzZ09FRER49KJbt25N+tbcMuGlN/A3LqG15utjbRxv41iLi4v1gx/8QEuXLlViYqIcDoeys7O1evVqsz49PV1JSUnaunWr/vSnP2nJkiXKzs42l0hnzJihuXPnNjlv3759WxxTYGCg/vKXv6hbt24KCwtr9o0Jrb1Z4XKvu72uD6A1BCugi1qyZInGjRunxx9/XE6nU++//76GDx/u8U7BS/9fuZ+fX7PvuPq6wYMHa8uWLR4BqLCwUIGBgerdu3ezz2nuuIMHD9aXX36p3bt3m/dynTp1SkeOHNGgQYO8eo2PPvqoVq1apalTpyo4OLjJ/m9/+9uqrKxU9+7d1b9//2aPMWjQIBUXF+tHP/qRua24uLjFc546dUqHDh3Siy++qO9+97uSpF27dnk1Xm+EhISYAflSN998syoqKszHtbW1l/34Aemr2aiCggL9+7//+xWN6c9//rP69eunRYsWmds++uijJnUDBw7UwIED9cQTT+iHP/yhNmzYoO9///v69re/rQMHDrT4ulrSrVu3Nj/n6wIDA9W/f38VFBQoPj6+yX5vrg/AaiwFAl3UyJEjdccdd2jFihWSpNtuu0179+7V22+/rSNHjmjx4sXas2ePx3P69++v/fv36/Dhw/r888+bnQ2ZOXOmTp48qTlz5uivf/2r/ud//kdLlixRWlqaunVr/n8y+vfvr7Nnz6qgoECff/65zp8/r9tvv10PPvigUlNTtWvXLn344Yd65JFH1Lt3bz344INevcZBgwbp888/b/LRC40eeOABxcXF6aGHHtLbb7+t48ePq7CwUD/72c/Md6z9x3/8h15++WW9/PLLOnLkiJYsWaIDBw60eM7g4GDddNNN+t3vfqe//e1vevfdd5WWlubVeK/WqFGj9Morr+j9999XeXm5pk2bJh8fn8s+b8mSJfqv//ovLVmyRIcOHVJZWZmeffZZr89722236cSJE8rOztbf//53/frXv/aYIbxw4YJmz56t7du366OPPtKf//xn7dmzxwzITz31lIqKijRr1iyVlpbq6NGjevPNN5ssVbeH9PR0rV69Wr/+9a919OhR/eUvf1FmZqYk764PwGoEK6ALS0tL0/r163Xy5Ek99thjmjx5sqZOnaqhQ4fq1KlTTT7nKjU1VVFRUeZ9WH/+85+bHLN3797atm2bPvjgA91111167LHHNH36dP3sZz9rcRzDhw/XY489pqlTp+rmm282/6O+YcMGxcTEaMKECYqLi5NhGNq2bVuTZanW3HTTTS0u+dhsNm3btk3333+/Hn30UQ0cOFA/+MEPdPz4cYWFhUmSpk6dqp///Od66qmnFBMTo48++kiPP/54i+fr1q2bsrOzVVJSoujoaD3xxBP61a9+5fV4r8bChQt1//33a8KECfre976nhx56SLfeeutlnzdy5Ej993//t958803dfffdGjVqVJuWgB988EE98cQTmj17tu6++24VFhZq8eLF5n4fHx+dOnVKP/rRjzRw4EBNmTJF48aN09KlSyV9NWO2Y8cOHT16VN/97nf1rW99S4sXLzbvO2tP06ZN05o1a/TCCy/ojjvu0IQJE8yP9PDm+gCsZjNauhECAAAAbcKMFQAAgEUIVgAAABYhWAEAAFiEYAUAAGARghUAAIBFCFYAAAAWIVgBAABYhGAFAABgEYIVAACARQhWAAAAFiFYAQAAWOT/AV7QMuJtd9LWAAAAAElFTkSuQmCC",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['ratio_to_median_purchase_price'].hist(bins = 50, range=[0, 30])\n",
"plt.xlabel('Ratio to Median Purchase Price')\n",
"plt.ylabel('Count')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also plot the distribution of the variable `ratio_to_median_purchase_price` by the target variable `fraud` to see if there are any differences between fraudulent and non-fraudulent transactions"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:06.178519Z",
"iopub.status.busy": "2026-01-19T18:30:06.178285Z",
"iopub.status.idle": "2026-01-19T18:30:06.528537Z",
"shell.execute_reply": "2026-01-19T18:30:06.528001Z"
}
},
"outputs": [
{
"data": {
"image/png": "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7dsHg8EgiykuLkZpaakUk5mZCbVaDV9fXylmz549skdoZGZmQqfTwdPTs+0HgoiIiAhmTsymT5+OjRs3YvPmzbC3t4der4der0d1dTUAoLKyEgkJCcjNzcXp06exa9cujBs3Di4uLnjyyScBABqNBlOnTkV8fDyys7Nx8OBBPPvss+jfv790l2bfvn0xevRoREVFIS8vD3l5eYiKikJoaCi8vb0BAMHBwejXrx8iIiJw8OBBZGdnIyEhAVFRUVIvV3h4ONRqNSIjI1FcXIz09HQkJyfzjkwiIiJqF2ZNzFatWgWDwYDAwEC4u7tL0+effw4AsLS0RFFREcaPH48+ffpgypQp6NOnD3Jzc2Fvby+tZ9myZZgwYQImTZqEYcOGoXv37vj6669haWkpxWzatAn9+/dHcHAwgoODMWDAAGzYsEEqt7S0xLZt29CtWzcMGzYMkyZNwoQJE7B48WIpRqPRICsrC2fPnoWfnx+io6MRFxcnG0NGRERE1FYqwcfWm1RFRQU0Gg0MBsMtx5t5vr5NNn/63bEdWTWiTut2vnednZKPBds86sxa+91TxOB/IiIiIlLQ4zKIiIhuxB406orYY0ZERESkEEzMiIiIiBSCiRkRERGRQnCM2V2E4y2IiIg6N/aYERERESkEEzMiIiIihWBiRkRERKQQTMyIiIiIFIKJGREREZFCMDEjIiIiUggmZkREREQKwcSMiIiISCGYmBEREREpBBMzIiIiIoVgYkZERESkEEzMiIiIiBSCiRkRERGRQjAxIyIiIlIIJmZERERECsHEjIiIiEghmJgRERERKQQTMyIiIiKFYGJGREREpBBMzIiIiIgUgokZERERkUIwMSMiIiJSCCZmRERERArBxIyIiIhIIZiYERERESkEEzMiIiIihWBiRkR0h65du4Y333wTXl5esLW1xQMPPID58+ejvr5eihFCICkpCTqdDra2tggMDMThw4dl6zEajZg5cyZcXFxgZ2eHsLAwnD17VhZTXl6OiIgIaDQaaDQaRERE4MqVK6bYTSIyASZmRER36L333sPq1auxcuVKHD16FAsXLsSiRYuwYsUKKWbhwoVYunQpVq5cifz8fGi1WgQFBeHXX3+VYmJjY5Geno60tDTk5OSgsrISoaGhqKurk2LCw8NRWFiIjIwMZGRkoLCwEBERER2yX56vb5NNRNTx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cOAAhg8fLs03vGh3ypQpWLVqFYqKivDpp5/iypUrcHd3x/Dhw/H55583eSCjlZUVJk2ahOrqaowcORKpqalNHsgYExMj3b0ZFhaGlStXSuWWlpbYtm0boqOjMWzYMNja2iI8PByLFy+WYjQaDbKysjB9+nT4+fnB0dERcXFxspcDExEREd0JleCj602qoqICGo0GBoPhluPNPF9v+SaH0++Obc+qEXVat/O96+yU3AbdanumqANRR2ntd69Nr2QiIiIiovbHxIyIiIhIIZiYERERESkEEzMiIiIihWBiRkRERKQQt/24DCIiovbQlrswiTo7JmZERHTXapzc8fEZdLfjpUwiIiIihWBiRkRERKQQTMyIiIiIFIKJGREREZFCcPD/XYyDXomIiDoX9pgRERERKQQTMyIiIiKFYGJGREREpBBMzIiIiIgUgokZERERkUIwMSMiIiJSCCZmRERERArBxIyIiIhIIZiYERERESkEEzMiIiIihWBiRkRERKQQTMyIiIiIFIKJGREREZFCMDEjIiIiUggmZkREREQKwcSMiIiISCGYmBEREREpBBMzIiIiIoVgYkZERESkEEzMiIiIiBSCiRkRERGRQjAxIyIiIlIIK3NXgIiIqL14vr5NNn/63bFmqglR27DHjIiIiEghmJgRERERKQQTMyKidpSSkgKVSoXY2FhpmRACSUlJ0Ol0sLW1RWBgIA4fPiz7nNFoxMyZM+Hi4gI7OzuEhYXh7Nmzspjy8nJERERAo9FAo9EgIiICV65cMcFeEZGpMDEjImon+fn5+PDDDzFgwADZ8oULF2Lp0qVYuXIl8vPzodVqERQUhF9//VWKiY2NRXp6OtLS0pCTk4PKykqEhoairq5OigkPD0dhYSEyMjKQkZGBwsJCREREmGz/iKjjMTEjImoHlZWVmDx5MtauXQtHR0dpuRACy5cvx9y5czFx4kT4+Phg/fr1+O2337B582YAgMFgwMcff4wlS5Zg1KhRePTRR7Fx40YUFRVh+/btAICjR48iIyMDH330Efz9/eHv74+1a9fiX//6F44dO2aWfSai9sfEjIioHUyfPh1jx47FqFGjZMtPnToFvV6P4OBgaZlarUZAQAD27t0LACgoKEBtba0sRqfTwcfHR4rJzc2FRqPB4MGDpZghQ4ZAo9FIMc0xGo2oqKiQTUSkXHxcBhHR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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,2)\n",
"df['ratio_to_median_purchase_price'].hist(bins = 50, range=[0, 30], by=df['fraud'], ax = ax)\n",
"ax[0].set_xlabel('Ratio to Median Purchase Price')\n",
"ax[1].set_xlabel('Ratio to Median Purchase Price')\n",
"ax[0].set_ylabel('Count')\n",
"ax[0].set_title('No Fraud')\n",
"ax[1].set_title('Fraud')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are indeed some differences between fraudulent and non-fraudulent transactions. For example, fraudulent transactions seem to have a higher ratio to the median purchase price, which is expected as fraudsters might try to make large transactions to maximize their profit.\n",
"\n",
"We can also look at the correlation between the variables in the dataset. The correlation is a measure of how two variables move together"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:06.530824Z",
"iopub.status.busy": "2026-01-19T18:30:06.530595Z",
"iopub.status.idle": "2026-01-19T18:30:06.688216Z",
"shell.execute_reply": "2026-01-19T18:30:06.687600Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" distance_from_home \\\n",
"distance_from_home 1.000000 \n",
"distance_from_last_transaction -0.001068 \n",
"ratio_to_median_purchase_price -0.000152 \n",
"repeat_retailer 0.559724 \n",
"used_chip -0.000118 \n",
"used_pin_number -0.000338 \n",
"online_order -0.001812 \n",
"fraud 0.095032 \n",
"\n",
" distance_from_last_transaction \\\n",
"distance_from_home -0.001068 \n",
"distance_from_last_transaction 1.000000 \n",
"ratio_to_median_purchase_price -0.000111 \n",
"repeat_retailer -0.001352 \n",
"used_chip -0.000165 \n",
"used_pin_number 0.000555 \n",
"online_order -0.001076 \n",
"fraud 0.034661 \n",
"\n",
" ratio_to_median_purchase_price \\\n",
"distance_from_home -0.000152 \n",
"distance_from_last_transaction -0.000111 \n",
"ratio_to_median_purchase_price 1.000000 \n",
"repeat_retailer 0.001202 \n",
"used_chip -0.000099 \n",
"used_pin_number 0.000251 \n",
"online_order -0.000376 \n",
"fraud 0.342838 \n",
"\n",
" repeat_retailer used_chip used_pin_number \\\n",
"distance_from_home 0.559724 -0.000118 -0.000338 \n",
"distance_from_last_transaction -0.001352 -0.000165 0.000555 \n",
"ratio_to_median_purchase_price 0.001202 -0.000099 0.000251 \n",
"repeat_retailer 1.000000 -0.001345 -0.000417 \n",
"used_chip -0.001345 1.000000 -0.001393 \n",
"used_pin_number -0.000417 -0.001393 1.000000 \n",
"online_order -0.000532 -0.000219 -0.000291 \n",
"fraud -0.001357 -0.060975 -0.100293 \n",
"\n",
" online_order fraud \n",
"distance_from_home -0.001812 0.095032 \n",
"distance_from_last_transaction -0.001076 0.034661 \n",
"ratio_to_median_purchase_price -0.000376 0.342838 \n",
"repeat_retailer -0.000532 -0.001357 \n",
"used_chip -0.000219 -0.060975 \n",
"used_pin_number -0.000291 -0.100293 \n",
"online_order 1.000000 0.191973 \n",
"fraud 0.191973 1.000000 "
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr('spearman') # Spearman correlation (for monotonic relationships)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is still a bit hard to read. We can visualize the correlation matrix with a heatmap using the Seaborn library, which we have already imported at the beginning of the notebook."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:07.727627Z",
"iopub.status.busy": "2026-01-19T18:30:07.726539Z",
"iopub.status.idle": "2026-01-19T18:30:08.991483Z",
"shell.execute_reply": "2026-01-19T18:30:08.990963Z"
}
},
"outputs": [
{
"data": {
"image/png": "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GxoaYt++fWjXrh2cnJywbt067NixA/Xr1wcATJ48GaqqqnB2doapqWmJC68XqlmzJmbPno1p06bB3Ny81JVWGjZsiOXLl2PRokVwcXHB9u3bi737tzTa2tq4fv06+vTpA0dHR4wcORJjx47F999/L9P4AeDnn3/G119/jdGjR6NevXoYMWKEpMZb1vFs2bIFTZo0wVdffQUPDw+IxWKEh4cXKf8gIiIixRg9ejTS0tKQk5OD+Ph4yapmwLvJ3cjISKnzx40bh6tXr+LVq1e4d+8efv31V9SsWVOua4rE8hZGE1GF9SIrS+gQFEJPX1/oEIiISAHGrbqisL5W+7korK/y8tl3XiQiIiIiqoyYWMspOjpaahm+Dx9C69KlS4mxzZ8/v9yvP2rUqBKvX3jDABEREVUNilxuTxmwFEROr1+/xt27d0s87uDg8BmjKeru3bt4/fp1sceMjIxgZGRUrtfPzMxEVgnlCPr6+jAzMyvX61d1LAUhIqKKxG+14kpBVo2r+KUgakIHoGy0tLQET55LI2+RvaKZmZkxeSYiIqIqiYk1EREREZULedefVnassSYiIiIiUgAm1kRERERECsBSECIiIiIqFypVqxKEM9ZERERERIrAGWsiIiIiKhdV7N5FzlgTERERESkCE2siIiIiIgVgKQgRERERlQsRqlYtCGesiYiIiIgUgDPWRERERFQuuNweERERERHJjYk1EREREZECsBSEiCqcF1lZQoegEHr6+kKHQEQkKK5jTUREREREcmNiTURERESkACwFISIiIqJyIapitSCcsSYiIiIiUgDOWBMRERFRueA61kREREREJDcm1kRERERECsBSECIiIiIqF1Xs3kXOWBMRERERKQJnrImIiIioXHDGmoiIiIiI5MbEmoiIiIhIAVgKQkRERETlQqWK1YJwxpqIiIiISAGYWBMRERERKQBLQYiIiIioXFSxShDhZqxtbW0REhIi1OUrlKCgIDRs2FDy3NfXF97e3oLF8zlV5rGKRCIcOHBA6DCIiIjoMyn3GevQ0FBMmDABz549k2o/d+4cdHR0FHKNoKAgHDhwAAkJCQrpT2grV66EWCwWOgz6RBkZGahevbrQYRAREdFn8kmJdW5uLtTV1T/qtaampp9y6UrNwMBA6BAU4lN+P5RZ4bgtLCyEDoWIiEhQLAUphaenJ8aOHQt/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O3cOgYGBWLVqleB0TadQKB77UKK2tjYUCoWARERE9BAbayLSCOXl5XjttdcAAAcOHMD06dNhb28PX19fZGVlCU7XdKNHj0ZAQACuXr2qqv35558ICgpqlUezExFJCRtrItIIFhYWyM3NhVwux8GDBzF27FgAQG1traQOiNm2bRtu374Na2tr9OjRA3Z2drCxscHt27fx5Zdfio5HRKTRuI81EWmEuXPnwsvLC5aWlpDJZBg3bhwA4MSJE5Lax7pr167IyMhAfHw8zp07B6VSCQcHB9UfCkREJA4fXiQijRETE4PLly9j+vTp6NKlCwAgIiICxsbGmDx5suB0REQkdWysiYhauK1bt2LBggXQ1dVVnST5JNxyj4hIHDbWRNRqtZaG1MbGBunp6ejYsaPqJMnHkclkKC4ufoXJiIjoUWysiajVYkNKRESvEhtrIiIJCQ4OxrJly9C+fXu1+t27d7Fx40Z8/PHHgpIREREbayJqtZYsWdKk98lkMmzevPklp3kxtLS0UFpaCnNzc7V6eXk5zM3NIZfLBSUjIiJut0dErdbp06fVXp86dQpyuRy9evUCAOTn50NLSwuDBg0SEe+ZKJVKyGSyBvXMzEyYmpoKSERERA+xsSaiVisxMVH1fUhICAwMDBAREQETExMAQGVlJebOnYuRI0eKithkJiYmkMlkkMlksLe3V2uu5XI57ty5g0WLFglMSEREHAUhIo1gZWWFw4cPo2/fvmr17OxsuLu7qx0R3hJFRERAqVRi3rx52LJlC4yMjFTXdHR0YG1tjeHDhwtMSEREXLEmIo1QXV2N69evN2isy8rKcPv2bUGpms7HxwfAg51OXFxcoK2tLTgRERH9HVesiUgjeHt749ixY9i8eTOGDRsGADh+/DiWL18OV1dXRERECE7YfHfv3kV9fb1azdDQUFAaIiJiY01EGqG2thbLli1DeHi4qhlt27YtfH19sXHjRujr6wtO2DS1tbX48MMPsWfPHpSXlze4zl1BiIjEYWNNRBqlpqYGRUVFUCqVsLOzk0xD/dAHH3yAxMREBAcHw9vbG1999RX+/PNPbN++HevXr8fMmTNFRyQi0lhsrImIJKRbt26IjIzEqFGjYGhoiIyMDNjZ2eHHH39EVFQUDhw4IDoiEZHGaiM6ABERNV1FRYXqeHZDQ0NUVFQAAN544w0kJyeLjEZEpPHYWBMRSYitrS0uXrwIAHBwcMCePXsAAPv374exsbG4YERExFEQIiIpCQ0NhZaWFvz9/ZGYmIiJEydCLpfj/v37CAkJQUBAgOiIREQai401EZFE1NfXw93dHdu3b4e9vT0AoKSkBOnp6ejRowcGDBggOCERkWbjATFERBKhra2N7OxstePMu3Xrhm7duglMRURED3HGmohIQry9vbFr1y7RMYiI6DG4Yk1EJCF1dXXYuXMn4uPj4ezs3GAf7pCQEEHJiIiIjTURkYRkZ2fDyckJAJCfn6927dERESIievX48CIRERER0QvAGWsiIiIioheAjTURERER0QvAxpqIiIiI6AVgY01ERERE9AKwsSYiIiIiegHYWBMRERERvQBsrImIiIiIXoD/Axr9PEvvJoPSAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"corr = df.corr('spearman')\n",
"cmap = sns.diverging_palette(10, 255, as_cmap=True) # Create a color map\n",
"mask = np.triu(np.ones_like(corr, dtype=bool)) # Create a mask to only show the lower triangle of the matrix\n",
"sns.heatmap(corr, cmap=cmap, vmax=1, center=0, mask=mask) # Create a heatmap of the correlation matrix (Note: vmax=1 makes sure that the color map goes up to 1 and center=0 are used to center the color map at 0)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note how `ratio_to_median_purchase_price` is positively correlated with `fraud`, which is expected as we saw in the previous plot that fraudulent transactions have a higher ratio to the median purchase price. Furthermore, `used_chip` and `used_pin_number` are negatively correlated with `fraud`, which makes sense as transactions, where the chip or the pin is used, are supposed to be more secure.\n",
"\n",
"We can also plot boxplots to visualize the distribution of the variables"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:08.993838Z",
"iopub.status.busy": "2026-01-19T18:30:08.993591Z",
"iopub.status.idle": "2026-01-19T18:30:18.162348Z",
"shell.execute_reply": "2026-01-19T18:30:18.161106Z"
}
},
"outputs": [
{
"data": {
"image/png": "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rVv16aefKiAgQGPHjtW+ffvUqFGjW5b95JNPNGfOHK1Zs0bh4eE6ffq0fvjhB0nSunXr1LBhQz333HNWY+5SU1PVtGlTjR49Wl5eXvrPf/6jvn37qkaNGrr33nuN5VasWKHhw4frm2++0e7duxUdHa3WrVvr4YcfVlZWljp16qRLly5p1apVqlmzpg4fPmyM6zpw4IA6dOigadOmaenSpTp37pyGDBmiIUOGaNmyZbftf926dRozZowOHjyodevWycXFxbht5syZmjBhgvFJd9++fXryySc1efJk9ezZU3FxcYqJiZGfn5+io6ON+82ZM0czZszQhAkTNGfOHPXt21etW7dW//79NXPmTI0ePVr9+vXToUOHcj26n9PVq1c1a9YsrVy5Uo6OjurTp49GjBih1atXS5LefPNNzZ49W2+//bYaN26sd999V127dtWhQ4dUq1YtYz2TJk1SbGysqlevrv79+6t3797y8vLSm2++KXd3dz355JOaOHGiFi1aJElavHixJk2apPnz56tx48b6/vvvNXDgQFWoUEHPPPPMLXWmpaUpLS3NmE5JScm3N5hHUlKSvUsATL8fmr1+3JmsrCydPXtWTz31lN5//32lp6fr999/1/79+9W4cWP16dNHMTEx2r9/vyTp9OnTmjRpkhwdHfX9998b087OzlbL5rxv48aNS7w3gnsJunz5spYuXar33ntPDz/8sKQbATooKCjX5U+ePKmAgAA99NBDKleunKpXr64WLVpIknx9feXk5CRPT08FBAQY96lWrZpGjBhhTL/44ovatGmTPv74Y6vgHhkZqUmTJkmSatWqpfnz5+vLL7/Uww8/rC1btujbb7/VkSNHVLt2bUlSjRo1jPvOnDlTTz31lDG2vlatWpo7d67atWunRYsWGV9P5cbX11fu7u5ycXGxqluSHnjgAavan376aT344IOaMGGCJKl27do6fPiwZs6caRXcO3furOeff16SjCDcvHlzPfHEE5Kk0aNHKyoqSmfOnLllm7m5fv263nrrLdWsWVOSNGTIEE2dOtW4fdasWRo9erR69eolSXrttde0detWxcbGasGCBcZyI0aMUIcOHSRJf//739W7d299+eWXat26tSRpwIABWr58ubH8tGnTNHv2bP31r3+VJN1zzz06fPiw3n777VyD+yuvvKIpU6bk2w/Mafr0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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"selector = ['distance_from_home', 'distance_from_last_transaction', 'ratio_to_median_purchase_price'] # Select the variables we want to plot\n",
"plt.figure()\n",
"ax = sns.boxplot(data = df[selector], orient = 'h') \n",
"ax.set(xscale = \"log\") # Set the x-axis to a logarithmic scale to better visualize the data\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Boxplots are a good way to visualize the distribution of a variable, as they show the median, the interquartile range, and the outliers. Each of the distributions shown in the boxplots above has a long right tail, which explains the large number of outliers. However, you have to be careful: you cannot just remove these outliers since these are likely to be fraudulent transactions.\n",
"\n",
"Let's see how many fraudulent transactions we would remove if we blindly remove the outliers according to the interquartile range"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.166789Z",
"iopub.status.busy": "2026-01-19T18:30:18.166272Z",
"iopub.status.idle": "2026-01-19T18:30:18.254321Z",
"shell.execute_reply": "2026-01-19T18:30:18.252904Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"fraud\n",
"1.0 53092\n",
"0.0 31294\n",
"Name: count, dtype: int64"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Compute the interquartile range\n",
"Q1 = df['ratio_to_median_purchase_price'].quantile(0.25)\n",
"Q3 = df['ratio_to_median_purchase_price'].quantile(0.75)\n",
"IQR = Q3 - Q1\n",
"\n",
"# Identify outliers based on the interquartile range\n",
"threshold = 1.5\n",
"outliers = df[(df['ratio_to_median_purchase_price'] < Q1 - threshold * IQR) | (df['ratio_to_median_purchase_price'] > Q3 + threshold * IQR)]\n",
"\n",
"# Count the number of fraudulent transactions among our selected outliers\n",
"outliers['fraud'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.259671Z",
"iopub.status.busy": "2026-01-19T18:30:18.259242Z",
"iopub.status.idle": "2026-01-19T18:30:18.276833Z",
"shell.execute_reply": "2026-01-19T18:30:18.275923Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"fraud\n",
"0.0 912597\n",
"1.0 87403\n",
"Name: count, dtype: int64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['fraud'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"53092 of 87403 (more than half!) of our fraudulent transactions would be removed if we would have blindly removed the outliers according to the interquartile range. This is a significant number of observations, which would likely hurt the performance of our machine-learning model. Therefore, we should not remove these outliers. It would make the imbalance of our dataset even worse.\n",
"\n",
"\n",
"#### Splitting the Data into Training and Test Sets {-}\n",
"\n",
"Before we can train a machine learning model, we need to split our dataset into a training set and a test set. "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.280482Z",
"iopub.status.busy": "2026-01-19T18:30:18.280064Z",
"iopub.status.idle": "2026-01-19T18:30:18.295695Z",
"shell.execute_reply": "2026-01-19T18:30:18.294956Z"
}
},
"outputs": [],
"source": [
"X = df.drop('fraud', axis=1) # All variables except `fraud`\n",
"y = df['fraud'] # Only our fraud variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The training set is used to train the model, while the test set is used to evaluate the model. We will use the `train_test_split` function from the `sklearn.model_selection` module to split our dataset. We will use 70% of the data for training and 30% for testing. We will also set the `stratify` argument to `y` to make sure that the distribution of the target variable is the same in the training and test sets. Otherwise, we might randomly not have any fraudulent transactions in the test set, which would make it impossible to correctly evaluate our model."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.298852Z",
"iopub.status.busy": "2026-01-19T18:30:18.298541Z",
"iopub.status.idle": "2026-01-19T18:30:18.981900Z",
"shell.execute_reply": "2026-01-19T18:30:18.981168Z"
}
},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size = 0.3, random_state = 42)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Scaling Features {-}\n",
"\n",
"To improve the performance of our machine learning model, we should scale the features. This is especially important for models that are sensitive to the scale of the features, such as logistic regression. We will use the `StandardScaler` class from the `sklearn.preprocessing` module to scale the features. The `StandardScaler` class scales the features so that they have a mean of 0 and a standard deviation of 1. Since we don't want to scale features that are binary (0 or 1), we will define a small function that scales only the features that we want"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.985497Z",
"iopub.status.busy": "2026-01-19T18:30:18.984909Z",
"iopub.status.idle": "2026-01-19T18:30:18.990025Z",
"shell.execute_reply": "2026-01-19T18:30:18.989382Z"
}
},
"outputs": [],
"source": [
"def scale_features(scaler, df, col_names, only_transform=False):\n",
"\n",
" # Extract the features we want to scale\n",
" features = df[col_names] \n",
"\n",
" # Fit the scaler to the features and transform them\n",
" if only_transform:\n",
" features = scaler.transform(features.values)\n",
" else:\n",
" features = scaler.fit_transform(features.values)\n",
"\n",
" # Replace the original features with the scaled features\n",
" df[col_names] = features"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then, we need to run the function"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:18.992761Z",
"iopub.status.busy": "2026-01-19T18:30:18.992479Z",
"iopub.status.idle": "2026-01-19T18:30:19.040990Z",
"shell.execute_reply": "2026-01-19T18:30:19.040369Z"
}
},
"outputs": [],
"source": [
"col_names = ['distance_from_home', 'distance_from_last_transaction', 'ratio_to_median_purchase_price'] \n",
"scaler = StandardScaler() \n",
"scale_features(scaler, X_train, col_names)\n",
"scale_features(scaler, X_test, col_names, only_transform=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that we only fit the scaler to the training set and then transform both the training and test set. This ensures that the same values for the features produce the same output in the training and test set. Otherwise, if we fit the scaler to the test data as well, the meaning of certain values in the test set might change, which would make it impossible to evaluate the model correctly.\n",
"\n",
":::{.callout-note}\n",
"### Mini-Exercise\n",
"Try switching to `MinMaxScaler` instead of `StandardScaler` and see how it affects the performance of the model. `MinMaxScaler` scales the features so that they are between 0 and 1.\n",
":::\n",
"\n",
"\n",
"### Implementing Logistic Regression\n",
"\n",
"Now that we have explored and preprocessed our dataset, we can move on to the next step: training a machine learning model. We will use a logistic regression model to predict whether a transaction is fraudulent or not.\n",
"\n",
"Using the `LogisticRegression` class from the `sklearn.linear_model` module, fitting the model to the data is straightforward using the `fit` method"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:19.044027Z",
"iopub.status.busy": "2026-01-19T18:30:19.043702Z",
"iopub.status.idle": "2026-01-19T18:30:19.952386Z",
"shell.execute_reply": "2026-01-19T18:30:19.951719Z"
}
},
"outputs": [],
"source": [
"clf = LogisticRegression().fit(X_train, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then use the `predict` method to predict the class of the test set"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:19.955691Z",
"iopub.status.busy": "2026-01-19T18:30:19.955372Z",
"iopub.status.idle": "2026-01-19T18:30:19.961244Z",
"shell.execute_reply": "2026-01-19T18:30:19.960502Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0., 0., 0., 0., 1.])"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf.predict(X_test.head(5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The actual classes of the first five observations in the test dataset are"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:19.964102Z",
"iopub.status.busy": "2026-01-19T18:30:19.963856Z",
"iopub.status.idle": "2026-01-19T18:30:19.968983Z",
"shell.execute_reply": "2026-01-19T18:30:19.968215Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"217309 0.0\n",
"902387 0.0\n",
"175152 0.0\n",
"527113 0.0\n",
"973041 1.0\n",
"Name: fraud, dtype: float64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This seems to match quite well. Let's have a look at different performance metrics"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:19.972284Z",
"iopub.status.busy": "2026-01-19T18:30:19.971986Z",
"iopub.status.idle": "2026-01-19T18:30:20.230163Z",
"shell.execute_reply": "2026-01-19T18:30:20.229563Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.9591233333333333\n",
"Precision: 0.8956349206349207\n",
"Recall: 0.6025323214217612\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"ROC AUC: 0.9672112715043656\n"
]
}
],
"source": [
"y_pred = clf.predict(X_test)\n",
"y_proba = clf.predict_proba(X_test)\n",
"\n",
"print(f\"Accuracy: {accuracy_score(y_test, y_pred)}\")\n",
"print(f\"Precision: {precision_score(y_test, y_pred)}\")\n",
"print(f\"Recall: {recall_score(y_test, y_pred)}\")\n",
"print(f\"ROC AUC: {roc_auc_score(y_test, y_proba[:, 1])}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, the accuracy is quite high since we do not have many fraudulent transactions. Recall that the precision ($\\text{Precision} = \\frac{\\text{TP}}{\\text{TP}+\\text{FP}}$) is the fraction of correctly predicted fraudulent transactions among all transactions predicted to be fraudulent. The recall ($\\text{Recall} = \\frac{\\text{TP}}{\\text{TP}+\\text{FN}}$) is the fraction of correctly predicted fraudulent transactions among the actual fraudulent transactions. The ROC AUC is the area under the curve for the receiver operating characteristic (ROC) curve."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:20.232793Z",
"iopub.status.busy": "2026-01-19T18:30:20.232439Z",
"iopub.status.idle": "2026-01-19T18:30:20.440952Z",
"shell.execute_reply": "2026-01-19T18:30:20.440352Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Compute the ROC curve\n",
"y_proba = clf.predict_proba(X_test)\n",
"fpr, tpr, thresholds = roc_curve(y_test, y_proba[:,1])\n",
"\n",
"# Plot the ROC curve\n",
"plt.plot(fpr, tpr)\n",
"plt.plot([0, 1], [0, 1], linestyle='--', color='grey')\n",
"plt.xlabel('False Positive Rate (FPR)')\n",
"plt.ylabel('True Positive Rate (TPR)')\n",
"plt.title('ROC Curve')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The confusion matrix for the test set can be computed as follows"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:20.443566Z",
"iopub.status.busy": "2026-01-19T18:30:20.443309Z",
"iopub.status.idle": "2026-01-19T18:30:20.637452Z",
"shell.execute_reply": "2026-01-19T18:30:20.636873Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 15799, 1841],\n",
" [ 10422, 271938]])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_mat = confusion_matrix(y_test, y_pred, labels=[1, 0]).transpose() # Transpose the sklearn confusion matrix to match the convention in the lecture\n",
"conf_mat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also plot the confusion matrix as a heatmap"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:20.640215Z",
"iopub.status.busy": "2026-01-19T18:30:20.639953Z",
"iopub.status.idle": "2026-01-19T18:30:20.763034Z",
"shell.execute_reply": "2026-01-19T18:30:20.762473Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(conf_mat, annot=True, cmap='Blues', fmt='g', xticklabels=['Fraud', 'No Fraud'], yticklabels=['Fraud', 'No Fraud'])\n",
"plt.xlabel(\"Actual\")\n",
"plt.ylabel(\"Predicted\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see, we have mostly true negatives and true positives. However, there is still a significant number of false negatives, which means that we are missing fraudulent transactions, and a significant number of false positives, which means that we are predicting transactions as fraudulent that are not fraudulent.\n",
"\n",
"If we would like to use a threshold other than 0.5 to predict the class of the test set, we can do so as follows"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:20.765693Z",
"iopub.status.busy": "2026-01-19T18:30:20.765433Z",
"iopub.status.idle": "2026-01-19T18:30:20.872564Z",
"shell.execute_reply": "2026-01-19T18:30:20.871920Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.9110566666666666\n",
"Precision: 0.49535342157138834\n",
"Recall: 0.9391708935585981\n"
]
}
],
"source": [
"# Alternative threshold\n",
"threshold = 0.1\n",
"\n",
"# Predict the class of the test set\n",
"y_pred_alt = (y_proba[:, 1] >= threshold).astype(int)\n",
"\n",
"# Show the performance metrics\n",
"print(f\"Accuracy: {accuracy_score(y_test, y_pred_alt)}\")\n",
"print(f\"Precision: {precision_score(y_test, y_pred_alt)}\")\n",
"print(f\"Recall: {recall_score(y_test, y_pred_alt)}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Setting a lower threshold increases the recall but decreases the precision. This is because we are more likely to predict a transaction as fraudulent, which increases the number of true positives but also the number of false positives.\n",
"\n",
"What the correct threshold is depends on the problem at hand. For example, if the cost of missing a fraudulent transaction is very high, you might want to set a lower threshold to increase the recall. If the cost of falsely predicting a transaction as fraudulent is very high, you might want to set a higher threshold to increase the precision.\n",
"\n",
"We can also plot the performance metrics for different thresholds"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:20.875414Z",
"iopub.status.busy": "2026-01-19T18:30:20.875138Z",
"iopub.status.idle": "2026-01-19T18:30:25.381266Z",
"shell.execute_reply": "2026-01-19T18:30:25.380674Z"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"N = 50\n",
"thresholds_array = np.linspace(0.0, 0.999, N)\n",
"accuracy_array = np.zeros(N)\n",
"precision_array = np.zeros(N)\n",
"recall_array = np.zeros(N)\n",
"\n",
"# Compute the performance metrics for different thresholds\n",
"for ii, thresh in enumerate(thresholds_array):\n",
" y_pred_alt_tmp = (y_proba[:, 1] > thresh).astype(int)\n",
" accuracy_array[ii] = accuracy_score(y_test, y_pred_alt_tmp)\n",
" precision_array[ii] = precision_score(y_test, y_pred_alt_tmp)\n",
" recall_array[ii] = recall_score(y_test, y_pred_alt_tmp)\n",
"\n",
"# Plot the performance metrics\n",
"plt.plot(thresholds_array, accuracy_array, label='Accuracy')\n",
"plt.plot(thresholds_array, precision_array, label='Precision')\n",
"plt.plot(thresholds_array, recall_array, label='Recall')\n",
"plt.xlabel('Threshold')\n",
"plt.ylabel('Score')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Implementing K-Nearest Neighbors\n",
"\n",
"As an alternative to logistic regression, we can also use a K-Nearest Neighbors (KNN) classifier. The KNN classifier is a simple and intuitive machine learning model that classifies a new observation based on the classes of its k-nearest neighbors in the training set.\n",
"\n",
"Let's restrict ourselves to variables that are continuous for the KNN classifier"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:25.383829Z",
"iopub.status.busy": "2026-01-19T18:30:25.383588Z",
"iopub.status.idle": "2026-01-19T18:30:25.398585Z",
"shell.execute_reply": "2026-01-19T18:30:25.397963Z"
}
},
"outputs": [],
"source": [
"continuous_vars = ['distance_from_home', 'distance_from_last_transaction', 'ratio_to_median_purchase_price']\n",
"X_train_knn = X_train[continuous_vars]\n",
"X_test_knn = X_test[continuous_vars]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can create a KNN classifier with k=5 and fit it to the training data"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:25.401228Z",
"iopub.status.busy": "2026-01-19T18:30:25.400983Z",
"iopub.status.idle": "2026-01-19T18:30:29.076707Z",
"shell.execute_reply": "2026-01-19T18:30:29.075903Z"
}
},
"outputs": [],
"source": [
"knn = KNeighborsClassifier(n_neighbors=5).fit(X_train_knn, y_train)\n",
"y_pred_knn = knn.predict(X_test_knn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then evaluate the performance of the KNN classifier using the same performance metrics as before"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"execution": {
"iopub.execute_input": "2026-01-19T18:30:29.079942Z",
"iopub.status.busy": "2026-01-19T18:30:29.079653Z",
"iopub.status.idle": "2026-01-19T18:30:32.341975Z",
"shell.execute_reply": "2026-01-19T18:30:32.341376Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.9303866666666667\n",
"Precision: 0.5987930842989893\n",
"Recall: 0.6168338354753823\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"ROC AUC: 0.9523727213955416\n"
]
}
],
"source": [
"print(f\"Accuracy: {accuracy_score(y_test, y_pred_knn)}\")\n",
"print(f\"Precision: {precision_score(y_test, y_pred_knn)}\")\n",
"print(f\"Recall: {recall_score(y_test, y_pred_knn)}\")\n",
"print(f\"ROC AUC: {roc_auc_score(y_test, knn.predict_proba(X_test_knn)[:, 1])}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The KNN classifier seems to perform slightly worse than the logistic regression model. Part of the reason for this is that we only used three features for the KNN classifier, while we used all features for the logistic regression model.\n",
"\n",
":::{.callout-note}\n",
"\n",
"### Mini-Exercise\n",
"\n",
"Try different values of `n_neighbors` (k) and plot how it affects the performance of the KNN classifier. *Hint:* You can use a loop to train the KNN classifier for different values of k and store the performance metrics in arrays. Then, you can plot the performance metrics as a function of k.\n",
"\n",
":::\n",
"\n",
"::: {.callout-note}\n",
"### Mini-Exercise\n",
"\n",
"Implement a 5-fold cross-validation for the logistic regression and K-Nearest Neighbors classifiers. Use the `cross_val_score` function from the `sklearn.model_selection` module. \n",
"\n",
"```python\n",
"# Import the cross_val_score function\n",
"from sklearn.model_selection import cross_val_score\n",
"\n",
"# Apply 5-fold cross-validation to the classifier clf\n",
"cv_scores = cross_val_score(clf, X, y, cv=5, scoring='roc_auc')\n",
"\n",
"# Mean of the cross-validation scores\n",
"cv_scores.mean()\n",
"```\n",
":::\n",
"\n",
"\n",
"### Conclusions\n",
"\n",
"In this section, we have seen how to implement a logistic regression model and a K-Nearest Neighbors classifier in Python. We have loaded a dataset, explored and preprocessed it, and trained a logistic regression model and a K-Nearest Neighbors classifier to predict whether a transaction is fraudulent or not. We have evaluated the model using different performance metrics and have seen how the choice of threshold affects the performance of the model.\n",
"\n",
"There are many ways to improve the performance of the models. For example, we could try different machine learning models, or engineer new features. We could also try to deal with the imbalanced dataset by using techniques such as oversampling or undersampling. However, this is beyond the scope of this section.\n",
"\n",
"\n",
""
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3",
"path": "/usr/local/share/jupyter/kernels/python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}