Skip to content

Instantly share code, notes, and snippets.

@codistwa
Created December 21, 2022 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codistwa/1002809425602457e2d5108ce12842ad to your computer and use it in GitHub Desktop.
Save codistwa/1002809425602457e2d5108ce12842ad to your computer and use it in GitHub Desktop.
Machine Learning Project : Credit Card Fraud Detection
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "turkish-zealand",
"metadata": {},
"source": [
"# Fraud detection\n",
"\n",
"## Problem statement\n",
"\n",
"Whether this credit-card is fraudulent or not.\n",
"\n",
"## Dataset\n",
"[https://www.kaggle.com/datasets/yashpaloswal/fraud-detection-credit-card](https://www.kaggle.com/datasets/yashpaloswal/fraud-detection-credit-card)"
]
},
{
"cell_type": "markdown",
"id": "alpine-recording",
"metadata": {},
"source": [
"## 1. Importing Libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "external-listing",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np \n",
"import pandas as pd \n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"id": "hawaiian-edgar",
"metadata": {},
"source": [
"## 2. Loading the dataset"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "efficient-garlic",
"metadata": {},
"outputs": [],
"source": [
"train = './creditcard.csv'\n",
"df_train = pd.read_csv(train)"
]
},
{
"cell_type": "markdown",
"id": "immediate-dollar",
"metadata": {},
"source": [
"## 3. Exploratory data analysis"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "passing-attendance",
"metadata": {},
"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>Time</th>\n",
" <th>V1</th>\n",
" <th>V2</th>\n",
" <th>V3</th>\n",
" <th>V4</th>\n",
" <th>V5</th>\n",
" <th>V6</th>\n",
" <th>V7</th>\n",
" <th>V8</th>\n",
" <th>V9</th>\n",
" <th>...</th>\n",
" <th>V21</th>\n",
" <th>V22</th>\n",
" <th>V23</th>\n",
" <th>V24</th>\n",
" <th>V25</th>\n",
" <th>V26</th>\n",
" <th>V27</th>\n",
" <th>V28</th>\n",
" <th>Amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>-1.359807</td>\n",
" <td>-0.072781</td>\n",
" <td>2.536347</td>\n",
" <td>1.378155</td>\n",
" <td>-0.338321</td>\n",
" <td>0.462388</td>\n",
" <td>0.239599</td>\n",
" <td>0.098698</td>\n",
" <td>0.363787</td>\n",
" <td>...</td>\n",
" <td>-0.018307</td>\n",
" <td>0.277838</td>\n",
" <td>-0.110474</td>\n",
" <td>0.066928</td>\n",
" <td>0.128539</td>\n",
" <td>-0.189115</td>\n",
" <td>0.133558</td>\n",
" <td>-0.021053</td>\n",
" <td>149.62</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.0</td>\n",
" <td>1.191857</td>\n",
" <td>0.266151</td>\n",
" <td>0.166480</td>\n",
" <td>0.448154</td>\n",
" <td>0.060018</td>\n",
" <td>-0.082361</td>\n",
" <td>-0.078803</td>\n",
" <td>0.085102</td>\n",
" <td>-0.255425</td>\n",
" <td>...</td>\n",
" <td>-0.225775</td>\n",
" <td>-0.638672</td>\n",
" <td>0.101288</td>\n",
" <td>-0.339846</td>\n",
" <td>0.167170</td>\n",
" <td>0.125895</td>\n",
" <td>-0.008983</td>\n",
" <td>0.014724</td>\n",
" <td>2.69</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>-1.358354</td>\n",
" <td>-1.340163</td>\n",
" <td>1.773209</td>\n",
" <td>0.379780</td>\n",
" <td>-0.503198</td>\n",
" <td>1.800499</td>\n",
" <td>0.791461</td>\n",
" <td>0.247676</td>\n",
" <td>-1.514654</td>\n",
" <td>...</td>\n",
" <td>0.247998</td>\n",
" <td>0.771679</td>\n",
" <td>0.909412</td>\n",
" <td>-0.689281</td>\n",
" <td>-0.327642</td>\n",
" <td>-0.139097</td>\n",
" <td>-0.055353</td>\n",
" <td>-0.059752</td>\n",
" <td>378.66</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>-0.966272</td>\n",
" <td>-0.185226</td>\n",
" <td>1.792993</td>\n",
" <td>-0.863291</td>\n",
" <td>-0.010309</td>\n",
" <td>1.247203</td>\n",
" <td>0.237609</td>\n",
" <td>0.377436</td>\n",
" <td>-1.387024</td>\n",
" <td>...</td>\n",
" <td>-0.108300</td>\n",
" <td>0.005274</td>\n",
" <td>-0.190321</td>\n",
" <td>-1.175575</td>\n",
" <td>0.647376</td>\n",
" <td>-0.221929</td>\n",
" <td>0.062723</td>\n",
" <td>0.061458</td>\n",
" <td>123.50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.0</td>\n",
" <td>-1.158233</td>\n",
" <td>0.877737</td>\n",
" <td>1.548718</td>\n",
" <td>0.403034</td>\n",
" <td>-0.407193</td>\n",
" <td>0.095921</td>\n",
" <td>0.592941</td>\n",
" <td>-0.270533</td>\n",
" <td>0.817739</td>\n",
" <td>...</td>\n",
" <td>-0.009431</td>\n",
" <td>0.798278</td>\n",
" <td>-0.137458</td>\n",
" <td>0.141267</td>\n",
" <td>-0.206010</td>\n",
" <td>0.502292</td>\n",
" <td>0.219422</td>\n",
" <td>0.215153</td>\n",
" <td>69.99</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 31 columns</p>\n",
"</div>"
],
"text/plain": [
" Time V1 V2 V3 V4 V5 V6 V7 \\\n",
"0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 0.462388 0.239599 \n",
"1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 -0.082361 -0.078803 \n",
"2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 1.800499 0.791461 \n",
"3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 1.247203 0.237609 \n",
"4 2.0 -1.158233 0.877737 1.548718 0.403034 -0.407193 0.095921 0.592941 \n",
"\n",
" V8 V9 ... V21 V22 V23 V24 V25 \\\n",
"0 0.098698 0.363787 ... -0.018307 0.277838 -0.110474 0.066928 0.128539 \n",
"1 0.085102 -0.255425 ... -0.225775 -0.638672 0.101288 -0.339846 0.167170 \n",
"2 0.247676 -1.514654 ... 0.247998 0.771679 0.909412 -0.689281 -0.327642 \n",
"3 0.377436 -1.387024 ... -0.108300 0.005274 -0.190321 -1.175575 0.647376 \n",
"4 -0.270533 0.817739 ... -0.009431 0.798278 -0.137458 0.141267 -0.206010 \n",
"\n",
" V26 V27 V28 Amount class \n",
"0 -0.189115 0.133558 -0.021053 149.62 0 \n",
"1 0.125895 -0.008983 0.014724 2.69 0 \n",
"2 -0.139097 -0.055353 -0.059752 378.66 0 \n",
"3 -0.221929 0.062723 0.061458 123.50 0 \n",
"4 0.502292 0.219422 0.215153 69.99 0 \n",
"\n",
"[5 rows x 31 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# View the first five lines\n",
"df_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "durable-morocco",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(284807, 31)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "center-oakland",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 284807 entries, 0 to 284806\n",
"Data columns (total 31 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Time 284807 non-null float64\n",
" 1 V1 284807 non-null float64\n",
" 2 V2 284807 non-null float64\n",
" 3 V3 284807 non-null float64\n",
" 4 V4 284807 non-null float64\n",
" 5 V5 284807 non-null float64\n",
" 6 V6 284807 non-null float64\n",
" 7 V7 284807 non-null float64\n",
" 8 V8 284807 non-null float64\n",
" 9 V9 284807 non-null float64\n",
" 10 V10 284807 non-null float64\n",
" 11 V11 284807 non-null float64\n",
" 12 V12 284807 non-null float64\n",
" 13 V13 284807 non-null float64\n",
" 14 V14 284807 non-null float64\n",
" 15 V15 284807 non-null float64\n",
" 16 V16 284807 non-null float64\n",
" 17 V17 284807 non-null float64\n",
" 18 V18 284807 non-null float64\n",
" 19 V19 284807 non-null float64\n",
" 20 V20 284807 non-null float64\n",
" 21 V21 284807 non-null float64\n",
" 22 V22 284807 non-null float64\n",
" 23 V23 284807 non-null float64\n",
" 24 V24 284807 non-null float64\n",
" 25 V25 284807 non-null float64\n",
" 26 V26 284807 non-null float64\n",
" 27 V27 284807 non-null float64\n",
" 28 V28 284807 non-null float64\n",
" 29 Amount 284807 non-null float64\n",
" 30 class 284807 non-null int64 \n",
"dtypes: float64(30), int64(1)\n",
"memory usage: 67.4 MB\n"
]
}
],
"source": [
"# checking data information\n",
"df_train.info()"
]
},
{
"cell_type": "markdown",
"id": "informed-elements",
"metadata": {},
"source": [
"**Interpreting Data Information**\n",
"\n",
"- We have 284807 rows, any column that contains lesser number of rows has missing values.\n",
"- We have 31 columns.\n",
"- There are numerical features that have data type float64.\n",
"- There are numerical features that have data type int64.\n",
"\n",
"No missing columns."
]
},
{
"cell_type": "markdown",
"id": "acoustic-prefix",
"metadata": {},
"source": [
"**putting all column names in lowercase**"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "african-timothy",
"metadata": {},
"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>time</th>\n",
" <th>v1</th>\n",
" <th>v2</th>\n",
" <th>v3</th>\n",
" <th>v4</th>\n",
" <th>v5</th>\n",
" <th>v6</th>\n",
" <th>v7</th>\n",
" <th>v8</th>\n",
" <th>v9</th>\n",
" <th>...</th>\n",
" <th>v21</th>\n",
" <th>v22</th>\n",
" <th>v23</th>\n",
" <th>v24</th>\n",
" <th>v25</th>\n",
" <th>v26</th>\n",
" <th>v27</th>\n",
" <th>v28</th>\n",
" <th>amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>-1.359807</td>\n",
" <td>-0.072781</td>\n",
" <td>2.536347</td>\n",
" <td>1.378155</td>\n",
" <td>-0.338321</td>\n",
" <td>0.462388</td>\n",
" <td>0.239599</td>\n",
" <td>0.098698</td>\n",
" <td>0.363787</td>\n",
" <td>...</td>\n",
" <td>-0.018307</td>\n",
" <td>0.277838</td>\n",
" <td>-0.110474</td>\n",
" <td>0.066928</td>\n",
" <td>0.128539</td>\n",
" <td>-0.189115</td>\n",
" <td>0.133558</td>\n",
" <td>-0.021053</td>\n",
" <td>149.62</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.0</td>\n",
" <td>1.191857</td>\n",
" <td>0.266151</td>\n",
" <td>0.166480</td>\n",
" <td>0.448154</td>\n",
" <td>0.060018</td>\n",
" <td>-0.082361</td>\n",
" <td>-0.078803</td>\n",
" <td>0.085102</td>\n",
" <td>-0.255425</td>\n",
" <td>...</td>\n",
" <td>-0.225775</td>\n",
" <td>-0.638672</td>\n",
" <td>0.101288</td>\n",
" <td>-0.339846</td>\n",
" <td>0.167170</td>\n",
" <td>0.125895</td>\n",
" <td>-0.008983</td>\n",
" <td>0.014724</td>\n",
" <td>2.69</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>-1.358354</td>\n",
" <td>-1.340163</td>\n",
" <td>1.773209</td>\n",
" <td>0.379780</td>\n",
" <td>-0.503198</td>\n",
" <td>1.800499</td>\n",
" <td>0.791461</td>\n",
" <td>0.247676</td>\n",
" <td>-1.514654</td>\n",
" <td>...</td>\n",
" <td>0.247998</td>\n",
" <td>0.771679</td>\n",
" <td>0.909412</td>\n",
" <td>-0.689281</td>\n",
" <td>-0.327642</td>\n",
" <td>-0.139097</td>\n",
" <td>-0.055353</td>\n",
" <td>-0.059752</td>\n",
" <td>378.66</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>-0.966272</td>\n",
" <td>-0.185226</td>\n",
" <td>1.792993</td>\n",
" <td>-0.863291</td>\n",
" <td>-0.010309</td>\n",
" <td>1.247203</td>\n",
" <td>0.237609</td>\n",
" <td>0.377436</td>\n",
" <td>-1.387024</td>\n",
" <td>...</td>\n",
" <td>-0.108300</td>\n",
" <td>0.005274</td>\n",
" <td>-0.190321</td>\n",
" <td>-1.175575</td>\n",
" <td>0.647376</td>\n",
" <td>-0.221929</td>\n",
" <td>0.062723</td>\n",
" <td>0.061458</td>\n",
" <td>123.50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.0</td>\n",
" <td>-1.158233</td>\n",
" <td>0.877737</td>\n",
" <td>1.548718</td>\n",
" <td>0.403034</td>\n",
" <td>-0.407193</td>\n",
" <td>0.095921</td>\n",
" <td>0.592941</td>\n",
" <td>-0.270533</td>\n",
" <td>0.817739</td>\n",
" <td>...</td>\n",
" <td>-0.009431</td>\n",
" <td>0.798278</td>\n",
" <td>-0.137458</td>\n",
" <td>0.141267</td>\n",
" <td>-0.206010</td>\n",
" <td>0.502292</td>\n",
" <td>0.219422</td>\n",
" <td>0.215153</td>\n",
" <td>69.99</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284802</th>\n",
" <td>172786.0</td>\n",
" <td>-11.881118</td>\n",
" <td>10.071785</td>\n",
" <td>-9.834783</td>\n",
" <td>-2.066656</td>\n",
" <td>-5.364473</td>\n",
" <td>-2.606837</td>\n",
" <td>-4.918215</td>\n",
" <td>7.305334</td>\n",
" <td>1.914428</td>\n",
" <td>...</td>\n",
" <td>0.213454</td>\n",
" <td>0.111864</td>\n",
" <td>1.014480</td>\n",
" <td>-0.509348</td>\n",
" <td>1.436807</td>\n",
" <td>0.250034</td>\n",
" <td>0.943651</td>\n",
" <td>0.823731</td>\n",
" <td>0.77</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284803</th>\n",
" <td>172787.0</td>\n",
" <td>-0.732789</td>\n",
" <td>-0.055080</td>\n",
" <td>2.035030</td>\n",
" <td>-0.738589</td>\n",
" <td>0.868229</td>\n",
" <td>1.058415</td>\n",
" <td>0.024330</td>\n",
" <td>0.294869</td>\n",
" <td>0.584800</td>\n",
" <td>...</td>\n",
" <td>0.214205</td>\n",
" <td>0.924384</td>\n",
" <td>0.012463</td>\n",
" <td>-1.016226</td>\n",
" <td>-0.606624</td>\n",
" <td>-0.395255</td>\n",
" <td>0.068472</td>\n",
" <td>-0.053527</td>\n",
" <td>24.79</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284804</th>\n",
" <td>172788.0</td>\n",
" <td>1.919565</td>\n",
" <td>-0.301254</td>\n",
" <td>-3.249640</td>\n",
" <td>-0.557828</td>\n",
" <td>2.630515</td>\n",
" <td>3.031260</td>\n",
" <td>-0.296827</td>\n",
" <td>0.708417</td>\n",
" <td>0.432454</td>\n",
" <td>...</td>\n",
" <td>0.232045</td>\n",
" <td>0.578229</td>\n",
" <td>-0.037501</td>\n",
" <td>0.640134</td>\n",
" <td>0.265745</td>\n",
" <td>-0.087371</td>\n",
" <td>0.004455</td>\n",
" <td>-0.026561</td>\n",
" <td>67.88</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284805</th>\n",
" <td>172788.0</td>\n",
" <td>-0.240440</td>\n",
" <td>0.530483</td>\n",
" <td>0.702510</td>\n",
" <td>0.689799</td>\n",
" <td>-0.377961</td>\n",
" <td>0.623708</td>\n",
" <td>-0.686180</td>\n",
" <td>0.679145</td>\n",
" <td>0.392087</td>\n",
" <td>...</td>\n",
" <td>0.265245</td>\n",
" <td>0.800049</td>\n",
" <td>-0.163298</td>\n",
" <td>0.123205</td>\n",
" <td>-0.569159</td>\n",
" <td>0.546668</td>\n",
" <td>0.108821</td>\n",
" <td>0.104533</td>\n",
" <td>10.00</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284806</th>\n",
" <td>172792.0</td>\n",
" <td>-0.533413</td>\n",
" <td>-0.189733</td>\n",
" <td>0.703337</td>\n",
" <td>-0.506271</td>\n",
" <td>-0.012546</td>\n",
" <td>-0.649617</td>\n",
" <td>1.577006</td>\n",
" <td>-0.414650</td>\n",
" <td>0.486180</td>\n",
" <td>...</td>\n",
" <td>0.261057</td>\n",
" <td>0.643078</td>\n",
" <td>0.376777</td>\n",
" <td>0.008797</td>\n",
" <td>-0.473649</td>\n",
" <td>-0.818267</td>\n",
" <td>-0.002415</td>\n",
" <td>0.013649</td>\n",
" <td>217.00</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>284807 rows × 31 columns</p>\n",
"</div>"
],
"text/plain": [
" time v1 v2 v3 v4 v5 \\\n",
"0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 \n",
"1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 \n",
"2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 \n",
"3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 \n",
"4 2.0 -1.158233 0.877737 1.548718 0.403034 -0.407193 \n",
"... ... ... ... ... ... ... \n",
"284802 172786.0 -11.881118 10.071785 -9.834783 -2.066656 -5.364473 \n",
"284803 172787.0 -0.732789 -0.055080 2.035030 -0.738589 0.868229 \n",
"284804 172788.0 1.919565 -0.301254 -3.249640 -0.557828 2.630515 \n",
"284805 172788.0 -0.240440 0.530483 0.702510 0.689799 -0.377961 \n",
"284806 172792.0 -0.533413 -0.189733 0.703337 -0.506271 -0.012546 \n",
"\n",
" v6 v7 v8 v9 ... v21 v22 \\\n",
"0 0.462388 0.239599 0.098698 0.363787 ... -0.018307 0.277838 \n",
"1 -0.082361 -0.078803 0.085102 -0.255425 ... -0.225775 -0.638672 \n",
"2 1.800499 0.791461 0.247676 -1.514654 ... 0.247998 0.771679 \n",
"3 1.247203 0.237609 0.377436 -1.387024 ... -0.108300 0.005274 \n",
"4 0.095921 0.592941 -0.270533 0.817739 ... -0.009431 0.798278 \n",
"... ... ... ... ... ... ... ... \n",
"284802 -2.606837 -4.918215 7.305334 1.914428 ... 0.213454 0.111864 \n",
"284803 1.058415 0.024330 0.294869 0.584800 ... 0.214205 0.924384 \n",
"284804 3.031260 -0.296827 0.708417 0.432454 ... 0.232045 0.578229 \n",
"284805 0.623708 -0.686180 0.679145 0.392087 ... 0.265245 0.800049 \n",
"284806 -0.649617 1.577006 -0.414650 0.486180 ... 0.261057 0.643078 \n",
"\n",
" v23 v24 v25 v26 v27 v28 amount \\\n",
"0 -0.110474 0.066928 0.128539 -0.189115 0.133558 -0.021053 149.62 \n",
"1 0.101288 -0.339846 0.167170 0.125895 -0.008983 0.014724 2.69 \n",
"2 0.909412 -0.689281 -0.327642 -0.139097 -0.055353 -0.059752 378.66 \n",
"3 -0.190321 -1.175575 0.647376 -0.221929 0.062723 0.061458 123.50 \n",
"4 -0.137458 0.141267 -0.206010 0.502292 0.219422 0.215153 69.99 \n",
"... ... ... ... ... ... ... ... \n",
"284802 1.014480 -0.509348 1.436807 0.250034 0.943651 0.823731 0.77 \n",
"284803 0.012463 -1.016226 -0.606624 -0.395255 0.068472 -0.053527 24.79 \n",
"284804 -0.037501 0.640134 0.265745 -0.087371 0.004455 -0.026561 67.88 \n",
"284805 -0.163298 0.123205 -0.569159 0.546668 0.108821 0.104533 10.00 \n",
"284806 0.376777 0.008797 -0.473649 -0.818267 -0.002415 0.013649 217.00 \n",
"\n",
" class \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 \n",
"... ... \n",
"284802 0 \n",
"284803 0 \n",
"284804 0 \n",
"284805 0 \n",
"284806 0 \n",
"\n",
"[284807 rows x 31 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train.columns = df_train.columns.str.lower()\n",
"df_train"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "pediatric-manchester",
"metadata": {},
"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>time</th>\n",
" <th>v1</th>\n",
" <th>v2</th>\n",
" <th>v3</th>\n",
" <th>v4</th>\n",
" <th>v5</th>\n",
" <th>v6</th>\n",
" <th>v7</th>\n",
" <th>v8</th>\n",
" <th>v9</th>\n",
" <th>...</th>\n",
" <th>v21</th>\n",
" <th>v22</th>\n",
" <th>v23</th>\n",
" <th>v24</th>\n",
" <th>v25</th>\n",
" <th>v26</th>\n",
" <th>v27</th>\n",
" <th>v28</th>\n",
" <th>amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>284807.000000</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>...</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>2.848070e+05</td>\n",
" <td>284807.000000</td>\n",
" <td>284807.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>94813.859575</td>\n",
" <td>1.759061e-12</td>\n",
" <td>-8.251130e-13</td>\n",
" <td>-9.654937e-13</td>\n",
" <td>8.321385e-13</td>\n",
" <td>1.649999e-13</td>\n",
" <td>4.248366e-13</td>\n",
" <td>-3.054600e-13</td>\n",
" <td>8.777971e-14</td>\n",
" <td>-1.179749e-12</td>\n",
" <td>...</td>\n",
" <td>-3.405756e-13</td>\n",
" <td>-5.723197e-13</td>\n",
" <td>-9.725856e-13</td>\n",
" <td>1.464150e-12</td>\n",
" <td>-6.987102e-13</td>\n",
" <td>-5.617874e-13</td>\n",
" <td>3.332082e-12</td>\n",
" <td>-3.518874e-12</td>\n",
" <td>88.349619</td>\n",
" <td>0.001727</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>47488.145955</td>\n",
" <td>1.958696e+00</td>\n",
" <td>1.651309e+00</td>\n",
" <td>1.516255e+00</td>\n",
" <td>1.415869e+00</td>\n",
" <td>1.380247e+00</td>\n",
" <td>1.332271e+00</td>\n",
" <td>1.237094e+00</td>\n",
" <td>1.194353e+00</td>\n",
" <td>1.098632e+00</td>\n",
" <td>...</td>\n",
" <td>7.345240e-01</td>\n",
" <td>7.257016e-01</td>\n",
" <td>6.244603e-01</td>\n",
" <td>6.056471e-01</td>\n",
" <td>5.212781e-01</td>\n",
" <td>4.822270e-01</td>\n",
" <td>4.036325e-01</td>\n",
" <td>3.300833e-01</td>\n",
" <td>250.120109</td>\n",
" <td>0.041527</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>-5.640751e+01</td>\n",
" <td>-7.271573e+01</td>\n",
" <td>-4.832559e+01</td>\n",
" <td>-5.683171e+00</td>\n",
" <td>-1.137433e+02</td>\n",
" <td>-2.616051e+01</td>\n",
" <td>-4.355724e+01</td>\n",
" <td>-7.321672e+01</td>\n",
" <td>-1.343407e+01</td>\n",
" <td>...</td>\n",
" <td>-3.483038e+01</td>\n",
" <td>-1.093314e+01</td>\n",
" <td>-4.480774e+01</td>\n",
" <td>-2.836627e+00</td>\n",
" <td>-1.029540e+01</td>\n",
" <td>-2.604551e+00</td>\n",
" <td>-2.256568e+01</td>\n",
" <td>-1.543008e+01</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>54201.500000</td>\n",
" <td>-9.203734e-01</td>\n",
" <td>-5.985499e-01</td>\n",
" <td>-8.903648e-01</td>\n",
" <td>-8.486401e-01</td>\n",
" <td>-6.915971e-01</td>\n",
" <td>-7.682956e-01</td>\n",
" <td>-5.540759e-01</td>\n",
" <td>-2.086297e-01</td>\n",
" <td>-6.430976e-01</td>\n",
" <td>...</td>\n",
" <td>-2.283949e-01</td>\n",
" <td>-5.423504e-01</td>\n",
" <td>-1.618463e-01</td>\n",
" <td>-3.545861e-01</td>\n",
" <td>-3.171451e-01</td>\n",
" <td>-3.269839e-01</td>\n",
" <td>-7.083953e-02</td>\n",
" <td>-5.295979e-02</td>\n",
" <td>5.600000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>84692.000000</td>\n",
" <td>1.810880e-02</td>\n",
" <td>6.548556e-02</td>\n",
" <td>1.798463e-01</td>\n",
" <td>-1.984653e-02</td>\n",
" <td>-5.433583e-02</td>\n",
" <td>-2.741871e-01</td>\n",
" <td>4.010308e-02</td>\n",
" <td>2.235804e-02</td>\n",
" <td>-5.142873e-02</td>\n",
" <td>...</td>\n",
" <td>-2.945017e-02</td>\n",
" <td>6.781943e-03</td>\n",
" <td>-1.119293e-02</td>\n",
" <td>4.097606e-02</td>\n",
" <td>1.659350e-02</td>\n",
" <td>-5.213911e-02</td>\n",
" <td>1.342146e-03</td>\n",
" <td>1.124383e-02</td>\n",
" <td>22.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>139320.500000</td>\n",
" <td>1.315642e+00</td>\n",
" <td>8.037239e-01</td>\n",
" <td>1.027196e+00</td>\n",
" <td>7.433413e-01</td>\n",
" <td>6.119264e-01</td>\n",
" <td>3.985649e-01</td>\n",
" <td>5.704361e-01</td>\n",
" <td>3.273459e-01</td>\n",
" <td>5.971390e-01</td>\n",
" <td>...</td>\n",
" <td>1.863772e-01</td>\n",
" <td>5.285536e-01</td>\n",
" <td>1.476421e-01</td>\n",
" <td>4.395266e-01</td>\n",
" <td>3.507156e-01</td>\n",
" <td>2.409522e-01</td>\n",
" <td>9.104512e-02</td>\n",
" <td>7.827995e-02</td>\n",
" <td>77.165000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>172792.000000</td>\n",
" <td>2.454930e+00</td>\n",
" <td>2.205773e+01</td>\n",
" <td>9.382558e+00</td>\n",
" <td>1.687534e+01</td>\n",
" <td>3.480167e+01</td>\n",
" <td>7.330163e+01</td>\n",
" <td>1.205895e+02</td>\n",
" <td>2.000721e+01</td>\n",
" <td>1.559499e+01</td>\n",
" <td>...</td>\n",
" <td>2.720284e+01</td>\n",
" <td>1.050309e+01</td>\n",
" <td>2.252841e+01</td>\n",
" <td>4.584549e+00</td>\n",
" <td>7.519589e+00</td>\n",
" <td>3.517346e+00</td>\n",
" <td>3.161220e+01</td>\n",
" <td>3.384781e+01</td>\n",
" <td>25691.160000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 31 columns</p>\n",
"</div>"
],
"text/plain": [
" time v1 v2 v3 v4 \\\n",
"count 284807.000000 2.848070e+05 2.848070e+05 2.848070e+05 2.848070e+05 \n",
"mean 94813.859575 1.759061e-12 -8.251130e-13 -9.654937e-13 8.321385e-13 \n",
"std 47488.145955 1.958696e+00 1.651309e+00 1.516255e+00 1.415869e+00 \n",
"min 0.000000 -5.640751e+01 -7.271573e+01 -4.832559e+01 -5.683171e+00 \n",
"25% 54201.500000 -9.203734e-01 -5.985499e-01 -8.903648e-01 -8.486401e-01 \n",
"50% 84692.000000 1.810880e-02 6.548556e-02 1.798463e-01 -1.984653e-02 \n",
"75% 139320.500000 1.315642e+00 8.037239e-01 1.027196e+00 7.433413e-01 \n",
"max 172792.000000 2.454930e+00 2.205773e+01 9.382558e+00 1.687534e+01 \n",
"\n",
" v5 v6 v7 v8 v9 \\\n",
"count 2.848070e+05 2.848070e+05 2.848070e+05 2.848070e+05 2.848070e+05 \n",
"mean 1.649999e-13 4.248366e-13 -3.054600e-13 8.777971e-14 -1.179749e-12 \n",
"std 1.380247e+00 1.332271e+00 1.237094e+00 1.194353e+00 1.098632e+00 \n",
"min -1.137433e+02 -2.616051e+01 -4.355724e+01 -7.321672e+01 -1.343407e+01 \n",
"25% -6.915971e-01 -7.682956e-01 -5.540759e-01 -2.086297e-01 -6.430976e-01 \n",
"50% -5.433583e-02 -2.741871e-01 4.010308e-02 2.235804e-02 -5.142873e-02 \n",
"75% 6.119264e-01 3.985649e-01 5.704361e-01 3.273459e-01 5.971390e-01 \n",
"max 3.480167e+01 7.330163e+01 1.205895e+02 2.000721e+01 1.559499e+01 \n",
"\n",
" ... v21 v22 v23 v24 \\\n",
"count ... 2.848070e+05 2.848070e+05 2.848070e+05 2.848070e+05 \n",
"mean ... -3.405756e-13 -5.723197e-13 -9.725856e-13 1.464150e-12 \n",
"std ... 7.345240e-01 7.257016e-01 6.244603e-01 6.056471e-01 \n",
"min ... -3.483038e+01 -1.093314e+01 -4.480774e+01 -2.836627e+00 \n",
"25% ... -2.283949e-01 -5.423504e-01 -1.618463e-01 -3.545861e-01 \n",
"50% ... -2.945017e-02 6.781943e-03 -1.119293e-02 4.097606e-02 \n",
"75% ... 1.863772e-01 5.285536e-01 1.476421e-01 4.395266e-01 \n",
"max ... 2.720284e+01 1.050309e+01 2.252841e+01 4.584549e+00 \n",
"\n",
" v25 v26 v27 v28 amount \\\n",
"count 2.848070e+05 2.848070e+05 2.848070e+05 2.848070e+05 284807.000000 \n",
"mean -6.987102e-13 -5.617874e-13 3.332082e-12 -3.518874e-12 88.349619 \n",
"std 5.212781e-01 4.822270e-01 4.036325e-01 3.300833e-01 250.120109 \n",
"min -1.029540e+01 -2.604551e+00 -2.256568e+01 -1.543008e+01 0.000000 \n",
"25% -3.171451e-01 -3.269839e-01 -7.083953e-02 -5.295979e-02 5.600000 \n",
"50% 1.659350e-02 -5.213911e-02 1.342146e-03 1.124383e-02 22.000000 \n",
"75% 3.507156e-01 2.409522e-01 9.104512e-02 7.827995e-02 77.165000 \n",
"max 7.519589e+00 3.517346e+00 3.161220e+01 3.384781e+01 25691.160000 \n",
"\n",
" class \n",
"count 284807.000000 \n",
"mean 0.001727 \n",
"std 0.041527 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 0.000000 \n",
"75% 0.000000 \n",
"max 1.000000 \n",
"\n",
"[8 rows x 31 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# statistical summary of numerical variables\n",
"df_train.describe()"
]
},
{
"cell_type": "markdown",
"id": "unsigned-mystery",
"metadata": {},
"source": [
"### Univariate Analysis"
]
},
{
"cell_type": "markdown",
"id": "geological-inclusion",
"metadata": {},
"source": [
"**Analyze the target variable**\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "leading-athens",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# checking for missing values\n",
"df_train['class'].isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "developing-multimedia",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# number of unique values\n",
"df_train['class'].nunique()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "patent-scenario",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 284315\n",
"1 492\n",
"Name: class, dtype: int64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# frequency distribution\n",
"df_train['class'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "separated-gender",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.998273\n",
"1 0.001727\n",
"Name: class, dtype: float64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Percent breakdown of target (ratio of frequency distribution of values)\n",
"df_train['class'].value_counts(normalize=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "later-bloom",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# visualizing the frequency distribution\n",
"f, ax = plt.subplots(figsize=(6, 8))\n",
"ax = sns.countplot(x=\"class\", data=df_train, palette=\"Set2\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "handmade-holder",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"492 cards out of 284807\n"
]
}
],
"source": [
"# Examining how many cards are fraudulent\n",
"print(sum(df_train['class']),'cards out of',len(df_train))"
]
},
{
"cell_type": "markdown",
"id": "detailed-hampshire",
"metadata": {},
"source": [
"### Bivariate Analysis\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "confused-endorsement",
"metadata": {},
"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>amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>149.62</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.69</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>378.66</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>123.50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>69.99</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284802</th>\n",
" <td>0.77</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284803</th>\n",
" <td>24.79</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284804</th>\n",
" <td>67.88</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284805</th>\n",
" <td>10.00</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284806</th>\n",
" <td>217.00</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>284807 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" amount class\n",
"0 149.62 0\n",
"1 2.69 0\n",
"2 378.66 0\n",
"3 123.50 0\n",
"4 69.99 0\n",
"... ... ...\n",
"284802 0.77 0\n",
"284803 24.79 0\n",
"284804 67.88 0\n",
"284805 10.00 0\n",
"284806 217.00 0\n",
"\n",
"[284807 rows x 2 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compare_class_amount = df_train[['amount', 'class']]\n",
"compare_class_amount"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "restricted-implement",
"metadata": {},
"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>amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>541</th>\n",
" <td>0.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>623</th>\n",
" <td>529.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4920</th>\n",
" <td>239.93</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6108</th>\n",
" <td>59.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6329</th>\n",
" <td>1.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>279863</th>\n",
" <td>390.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>280143</th>\n",
" <td>0.76</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>280149</th>\n",
" <td>77.89</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>281144</th>\n",
" <td>245.00</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>281674</th>\n",
" <td>42.53</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>492 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" amount class\n",
"541 0.00 1\n",
"623 529.00 1\n",
"4920 239.93 1\n",
"6108 59.00 1\n",
"6329 1.00 1\n",
"... ... ...\n",
"279863 390.00 1\n",
"280143 0.76 1\n",
"280149 77.89 1\n",
"281144 245.00 1\n",
"281674 42.53 1\n",
"\n",
"[492 rows x 2 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compare_class_amount[compare_class_amount[\"class\"] == 1]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "metallic-accountability",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"88.34961925093133"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compare_class_amount[\"amount\"].mean()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "addressed-stress",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1584x1440 with 36 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# distribution \n",
"df_train.hist(figsize=(22, 20), bins=30, edgecolor=\"black\")\n",
"plt.subplots_adjust(hspace=0.7, wspace=0.4)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "loved-warning",
"metadata": {},
"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>time</th>\n",
" <th>v1</th>\n",
" <th>v2</th>\n",
" <th>v3</th>\n",
" <th>v4</th>\n",
" <th>v5</th>\n",
" <th>v6</th>\n",
" <th>v7</th>\n",
" <th>v8</th>\n",
" <th>v9</th>\n",
" <th>...</th>\n",
" <th>v21</th>\n",
" <th>v22</th>\n",
" <th>v23</th>\n",
" <th>v24</th>\n",
" <th>v25</th>\n",
" <th>v26</th>\n",
" <th>v27</th>\n",
" <th>v28</th>\n",
" <th>amount</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>time</th>\n",
" <td>1.000000</td>\n",
" <td>1.173963e-01</td>\n",
" <td>-1.059333e-02</td>\n",
" <td>-4.196182e-01</td>\n",
" <td>-1.052602e-01</td>\n",
" <td>1.730721e-01</td>\n",
" <td>-6.301647e-02</td>\n",
" <td>8.471437e-02</td>\n",
" <td>-3.694943e-02</td>\n",
" <td>-8.660434e-03</td>\n",
" <td>...</td>\n",
" <td>4.473573e-02</td>\n",
" <td>1.440591e-01</td>\n",
" <td>5.114236e-02</td>\n",
" <td>-1.618187e-02</td>\n",
" <td>-2.330828e-01</td>\n",
" <td>-4.140710e-02</td>\n",
" <td>-5.134591e-03</td>\n",
" <td>-9.412688e-03</td>\n",
" <td>-0.010596</td>\n",
" <td>-0.012323</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v1</th>\n",
" <td>0.117396</td>\n",
" <td>1.000000e+00</td>\n",
" <td>3.777823e-12</td>\n",
" <td>-2.118614e-12</td>\n",
" <td>-1.733159e-13</td>\n",
" <td>-3.473231e-12</td>\n",
" <td>-1.306165e-13</td>\n",
" <td>-1.116494e-13</td>\n",
" <td>2.114527e-12</td>\n",
" <td>3.016285e-14</td>\n",
" <td>...</td>\n",
" <td>-3.276238e-12</td>\n",
" <td>2.281863e-12</td>\n",
" <td>-2.969746e-12</td>\n",
" <td>-1.029876e-12</td>\n",
" <td>1.144179e-12</td>\n",
" <td>1.835263e-12</td>\n",
" <td>7.624804e-12</td>\n",
" <td>-9.769215e-13</td>\n",
" <td>-0.227709</td>\n",
" <td>-0.101347</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v2</th>\n",
" <td>-0.010593</td>\n",
" <td>3.777823e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.325661e-12</td>\n",
" <td>-2.314981e-12</td>\n",
" <td>-1.831952e-12</td>\n",
" <td>9.438444e-13</td>\n",
" <td>5.403436e-12</td>\n",
" <td>2.133785e-14</td>\n",
" <td>3.238513e-13</td>\n",
" <td>...</td>\n",
" <td>2.280202e-12</td>\n",
" <td>-2.548560e-13</td>\n",
" <td>-4.856120e-12</td>\n",
" <td>6.431308e-13</td>\n",
" <td>-9.423730e-13</td>\n",
" <td>-4.129100e-13</td>\n",
" <td>-9.856545e-13</td>\n",
" <td>2.525513e-12</td>\n",
" <td>-0.531409</td>\n",
" <td>0.091289</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v3</th>\n",
" <td>-0.419618</td>\n",
" <td>-2.118614e-12</td>\n",
" <td>2.325661e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.046235e-13</td>\n",
" <td>-4.032993e-12</td>\n",
" <td>-1.574471e-13</td>\n",
" <td>3.405586e-12</td>\n",
" <td>-1.272385e-12</td>\n",
" <td>-6.812351e-13</td>\n",
" <td>...</td>\n",
" <td>6.736294e-13</td>\n",
" <td>-8.909339e-13</td>\n",
" <td>4.147209e-12</td>\n",
" <td>3.407636e-12</td>\n",
" <td>5.712956e-13</td>\n",
" <td>-2.577274e-12</td>\n",
" <td>-5.041444e-12</td>\n",
" <td>5.189109e-12</td>\n",
" <td>-0.210880</td>\n",
" <td>-0.192961</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v4</th>\n",
" <td>-0.105260</td>\n",
" <td>-1.733159e-13</td>\n",
" <td>-2.314981e-12</td>\n",
" <td>2.046235e-13</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-2.552389e-13</td>\n",
" <td>1.084041e-12</td>\n",
" <td>8.135064e-13</td>\n",
" <td>7.334818e-13</td>\n",
" <td>-7.143069e-13</td>\n",
" <td>...</td>\n",
" <td>-2.696370e-12</td>\n",
" <td>4.347776e-13</td>\n",
" <td>-4.160969e-12</td>\n",
" <td>-2.368743e-12</td>\n",
" <td>1.619944e-12</td>\n",
" <td>-3.043100e-13</td>\n",
" <td>-1.456066e-12</td>\n",
" <td>-2.832372e-12</td>\n",
" <td>0.098732</td>\n",
" <td>0.133447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v5</th>\n",
" <td>0.173072</td>\n",
" <td>-3.473231e-12</td>\n",
" <td>-1.831952e-12</td>\n",
" <td>-4.032993e-12</td>\n",
" <td>-2.552389e-13</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-6.934789e-14</td>\n",
" <td>1.573956e-11</td>\n",
" <td>-2.038243e-12</td>\n",
" <td>-1.000756e-12</td>\n",
" <td>...</td>\n",
" <td>-1.751796e-12</td>\n",
" <td>7.095269e-13</td>\n",
" <td>3.616075e-12</td>\n",
" <td>-2.808776e-13</td>\n",
" <td>1.451126e-12</td>\n",
" <td>-1.896141e-13</td>\n",
" <td>-2.124559e-12</td>\n",
" <td>1.010196e-11</td>\n",
" <td>-0.386356</td>\n",
" <td>-0.094974</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v6</th>\n",
" <td>-0.063016</td>\n",
" <td>-1.306165e-13</td>\n",
" <td>9.438444e-13</td>\n",
" <td>-1.574471e-13</td>\n",
" <td>1.084041e-12</td>\n",
" <td>-6.934789e-14</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-2.798968e-12</td>\n",
" <td>-5.446480e-13</td>\n",
" <td>2.036743e-12</td>\n",
" <td>...</td>\n",
" <td>1.476858e-12</td>\n",
" <td>-1.144797e-12</td>\n",
" <td>-1.527842e-12</td>\n",
" <td>1.551854e-12</td>\n",
" <td>-2.723707e-12</td>\n",
" <td>3.351239e-12</td>\n",
" <td>1.481307e-12</td>\n",
" <td>-6.069227e-13</td>\n",
" <td>0.215981</td>\n",
" <td>-0.043643</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v7</th>\n",
" <td>0.084714</td>\n",
" <td>-1.116494e-13</td>\n",
" <td>5.403436e-12</td>\n",
" <td>3.405586e-12</td>\n",
" <td>8.135064e-13</td>\n",
" <td>1.573956e-11</td>\n",
" <td>-2.798968e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.528803e-12</td>\n",
" <td>5.088082e-13</td>\n",
" <td>...</td>\n",
" <td>2.788246e-12</td>\n",
" <td>-8.133209e-13</td>\n",
" <td>-4.293094e-12</td>\n",
" <td>-2.553518e-12</td>\n",
" <td>-7.406970e-13</td>\n",
" <td>-4.476467e-12</td>\n",
" <td>-1.328637e-11</td>\n",
" <td>2.958679e-13</td>\n",
" <td>0.397311</td>\n",
" <td>-0.187257</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v8</th>\n",
" <td>-0.036949</td>\n",
" <td>2.114527e-12</td>\n",
" <td>2.133785e-14</td>\n",
" <td>-1.272385e-12</td>\n",
" <td>7.334818e-13</td>\n",
" <td>-2.038243e-12</td>\n",
" <td>-5.446480e-13</td>\n",
" <td>5.528803e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-2.243172e-12</td>\n",
" <td>...</td>\n",
" <td>-4.022440e-12</td>\n",
" <td>-2.679560e-12</td>\n",
" <td>9.013064e-13</td>\n",
" <td>-1.074365e-12</td>\n",
" <td>-3.268979e-12</td>\n",
" <td>1.043839e-12</td>\n",
" <td>-3.499804e-12</td>\n",
" <td>1.866598e-12</td>\n",
" <td>-0.103079</td>\n",
" <td>0.019875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v9</th>\n",
" <td>-0.008660</td>\n",
" <td>3.016285e-14</td>\n",
" <td>3.238513e-13</td>\n",
" <td>-6.812351e-13</td>\n",
" <td>-7.143069e-13</td>\n",
" <td>-1.000756e-12</td>\n",
" <td>2.036743e-12</td>\n",
" <td>5.088082e-13</td>\n",
" <td>-2.243172e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>...</td>\n",
" <td>3.040326e-12</td>\n",
" <td>-7.467526e-13</td>\n",
" <td>-1.011003e-12</td>\n",
" <td>8.579072e-13</td>\n",
" <td>-1.590341e-12</td>\n",
" <td>-7.723547e-13</td>\n",
" <td>2.428930e-12</td>\n",
" <td>-1.406856e-12</td>\n",
" <td>-0.044246</td>\n",
" <td>-0.097733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v10</th>\n",
" <td>0.030617</td>\n",
" <td>-2.615192e-12</td>\n",
" <td>1.463282e-12</td>\n",
" <td>-1.609126e-12</td>\n",
" <td>-1.938143e-12</td>\n",
" <td>-7.200329e-13</td>\n",
" <td>7.429770e-13</td>\n",
" <td>1.674650e-12</td>\n",
" <td>-1.660630e-12</td>\n",
" <td>1.185391e-12</td>\n",
" <td>...</td>\n",
" <td>-5.547700e-13</td>\n",
" <td>-1.320186e-13</td>\n",
" <td>1.173332e-12</td>\n",
" <td>6.405710e-13</td>\n",
" <td>2.794979e-12</td>\n",
" <td>-2.738577e-13</td>\n",
" <td>1.552492e-12</td>\n",
" <td>5.116568e-12</td>\n",
" <td>-0.101502</td>\n",
" <td>-0.216883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v11</th>\n",
" <td>-0.247689</td>\n",
" <td>1.866551e-12</td>\n",
" <td>-8.314960e-13</td>\n",
" <td>8.707055e-13</td>\n",
" <td>1.874473e-12</td>\n",
" <td>-5.928181e-13</td>\n",
" <td>1.014893e-12</td>\n",
" <td>-8.525291e-13</td>\n",
" <td>1.296877e-12</td>\n",
" <td>-3.970652e-13</td>\n",
" <td>...</td>\n",
" <td>1.100352e-13</td>\n",
" <td>-5.644168e-14</td>\n",
" <td>1.724963e-12</td>\n",
" <td>-1.162239e-12</td>\n",
" <td>-1.351430e-12</td>\n",
" <td>2.718291e-12</td>\n",
" <td>-3.950227e-12</td>\n",
" <td>-4.247931e-12</td>\n",
" <td>0.000104</td>\n",
" <td>0.154876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v12</th>\n",
" <td>0.124348</td>\n",
" <td>-1.238745e-12</td>\n",
" <td>6.139448e-13</td>\n",
" <td>-2.730043e-12</td>\n",
" <td>5.393827e-13</td>\n",
" <td>1.812994e-12</td>\n",
" <td>-9.265590e-13</td>\n",
" <td>-2.826770e-13</td>\n",
" <td>-3.860109e-13</td>\n",
" <td>-1.904908e-12</td>\n",
" <td>...</td>\n",
" <td>8.106835e-13</td>\n",
" <td>-2.346533e-12</td>\n",
" <td>-6.878556e-13</td>\n",
" <td>-2.911084e-12</td>\n",
" <td>1.102899e-12</td>\n",
" <td>2.808714e-13</td>\n",
" <td>5.953998e-13</td>\n",
" <td>-7.428113e-12</td>\n",
" <td>-0.009542</td>\n",
" <td>-0.260593</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v13</th>\n",
" <td>-0.065902</td>\n",
" <td>7.589589e-13</td>\n",
" <td>-1.181068e-12</td>\n",
" <td>-1.020592e-12</td>\n",
" <td>6.813810e-13</td>\n",
" <td>-7.021996e-14</td>\n",
" <td>1.484679e-12</td>\n",
" <td>-8.171731e-13</td>\n",
" <td>7.722897e-13</td>\n",
" <td>8.754859e-13</td>\n",
" <td>...</td>\n",
" <td>-2.037258e-12</td>\n",
" <td>-5.491535e-13</td>\n",
" <td>3.508022e-12</td>\n",
" <td>1.225112e-13</td>\n",
" <td>-1.513549e-12</td>\n",
" <td>-2.008364e-12</td>\n",
" <td>4.975659e-12</td>\n",
" <td>-6.777880e-12</td>\n",
" <td>0.005293</td>\n",
" <td>-0.004570</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v14</th>\n",
" <td>-0.098757</td>\n",
" <td>-1.871054e-13</td>\n",
" <td>-3.384684e-13</td>\n",
" <td>-5.597874e-13</td>\n",
" <td>-1.404120e-12</td>\n",
" <td>-1.113015e-13</td>\n",
" <td>-1.212766e-12</td>\n",
" <td>2.038217e-12</td>\n",
" <td>-2.596182e-12</td>\n",
" <td>-1.271311e-12</td>\n",
" <td>...</td>\n",
" <td>-4.557223e-13</td>\n",
" <td>2.572021e-12</td>\n",
" <td>8.288666e-13</td>\n",
" <td>-3.382145e-12</td>\n",
" <td>8.299871e-13</td>\n",
" <td>-3.304576e-13</td>\n",
" <td>-2.447674e-12</td>\n",
" <td>-1.700091e-12</td>\n",
" <td>0.033751</td>\n",
" <td>-0.302544</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v15</th>\n",
" <td>-0.183453</td>\n",
" <td>-3.601390e-13</td>\n",
" <td>2.196083e-13</td>\n",
" <td>6.442512e-13</td>\n",
" <td>1.526382e-12</td>\n",
" <td>-1.593594e-12</td>\n",
" <td>-1.053548e-12</td>\n",
" <td>1.074440e-12</td>\n",
" <td>1.648898e-12</td>\n",
" <td>8.628709e-13</td>\n",
" <td>...</td>\n",
" <td>5.921902e-13</td>\n",
" <td>-4.115704e-13</td>\n",
" <td>-9.846654e-13</td>\n",
" <td>-3.256310e-12</td>\n",
" <td>-1.725436e-12</td>\n",
" <td>5.478951e-13</td>\n",
" <td>-4.690702e-12</td>\n",
" <td>-4.214967e-12</td>\n",
" <td>-0.002986</td>\n",
" <td>-0.004223</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v16</th>\n",
" <td>0.011903</td>\n",
" <td>-1.142884e-12</td>\n",
" <td>-8.000510e-13</td>\n",
" <td>-8.748795e-13</td>\n",
" <td>3.095722e-13</td>\n",
" <td>-1.619090e-14</td>\n",
" <td>1.374197e-12</td>\n",
" <td>-1.478776e-12</td>\n",
" <td>-1.830899e-12</td>\n",
" <td>1.239835e-12</td>\n",
" <td>...</td>\n",
" <td>-1.067918e-12</td>\n",
" <td>2.009490e-12</td>\n",
" <td>4.057311e-13</td>\n",
" <td>-4.061029e-13</td>\n",
" <td>7.626529e-13</td>\n",
" <td>-1.323365e-12</td>\n",
" <td>7.022747e-12</td>\n",
" <td>5.737097e-13</td>\n",
" <td>-0.003910</td>\n",
" <td>-0.196539</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v17</th>\n",
" <td>-0.073297</td>\n",
" <td>1.671073e-12</td>\n",
" <td>2.028957e-12</td>\n",
" <td>-1.058101e-12</td>\n",
" <td>1.151414e-14</td>\n",
" <td>1.713794e-13</td>\n",
" <td>7.431528e-13</td>\n",
" <td>-1.231314e-12</td>\n",
" <td>7.025405e-13</td>\n",
" <td>-1.450585e-12</td>\n",
" <td>...</td>\n",
" <td>1.793607e-12</td>\n",
" <td>2.280366e-13</td>\n",
" <td>-9.948639e-13</td>\n",
" <td>-2.073066e-12</td>\n",
" <td>4.514159e-12</td>\n",
" <td>2.940618e-12</td>\n",
" <td>-1.324408e-12</td>\n",
" <td>1.854033e-12</td>\n",
" <td>0.007309</td>\n",
" <td>-0.326481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v18</th>\n",
" <td>0.090438</td>\n",
" <td>-5.738830e-13</td>\n",
" <td>-1.916566e-14</td>\n",
" <td>-8.846578e-13</td>\n",
" <td>-1.309615e-12</td>\n",
" <td>1.101433e-12</td>\n",
" <td>6.859871e-13</td>\n",
" <td>-4.281952e-13</td>\n",
" <td>1.499555e-12</td>\n",
" <td>7.186934e-13</td>\n",
" <td>...</td>\n",
" <td>-2.185508e-12</td>\n",
" <td>1.392636e-12</td>\n",
" <td>-2.160673e-12</td>\n",
" <td>4.303958e-12</td>\n",
" <td>5.432404e-13</td>\n",
" <td>-1.810692e-12</td>\n",
" <td>-4.949670e-12</td>\n",
" <td>4.113104e-12</td>\n",
" <td>0.035650</td>\n",
" <td>-0.111485</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v19</th>\n",
" <td>0.028975</td>\n",
" <td>-2.770259e-12</td>\n",
" <td>-2.237098e-13</td>\n",
" <td>-1.061131e-12</td>\n",
" <td>-9.754131e-13</td>\n",
" <td>5.956033e-13</td>\n",
" <td>1.148589e-12</td>\n",
" <td>-3.742188e-12</td>\n",
" <td>1.988417e-12</td>\n",
" <td>-8.786777e-13</td>\n",
" <td>...</td>\n",
" <td>-3.315774e-13</td>\n",
" <td>7.050020e-14</td>\n",
" <td>-7.118335e-13</td>\n",
" <td>1.326310e-12</td>\n",
" <td>9.270702e-13</td>\n",
" <td>2.412082e-12</td>\n",
" <td>-2.201365e-12</td>\n",
" <td>3.450583e-12</td>\n",
" <td>-0.056151</td>\n",
" <td>0.034783</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v20</th>\n",
" <td>-0.050866</td>\n",
" <td>2.662926e-13</td>\n",
" <td>5.839893e-13</td>\n",
" <td>1.873059e-12</td>\n",
" <td>-2.347029e-12</td>\n",
" <td>-1.728728e-13</td>\n",
" <td>-2.382062e-12</td>\n",
" <td>8.068665e-12</td>\n",
" <td>-1.884661e-13</td>\n",
" <td>1.270200e-12</td>\n",
" <td>...</td>\n",
" <td>-3.892661e-12</td>\n",
" <td>1.632957e-12</td>\n",
" <td>-1.019668e-11</td>\n",
" <td>1.267519e-12</td>\n",
" <td>-1.593346e-12</td>\n",
" <td>1.469484e-13</td>\n",
" <td>-2.996546e-12</td>\n",
" <td>6.123479e-12</td>\n",
" <td>0.339403</td>\n",
" <td>0.020090</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v21</th>\n",
" <td>0.044736</td>\n",
" <td>-3.276238e-12</td>\n",
" <td>2.280202e-12</td>\n",
" <td>6.736294e-13</td>\n",
" <td>-2.696370e-12</td>\n",
" <td>-1.751796e-12</td>\n",
" <td>1.476858e-12</td>\n",
" <td>2.788246e-12</td>\n",
" <td>-4.022440e-12</td>\n",
" <td>3.040326e-12</td>\n",
" <td>...</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-3.415801e-12</td>\n",
" <td>1.066923e-12</td>\n",
" <td>2.350293e-12</td>\n",
" <td>-3.120502e-12</td>\n",
" <td>8.463789e-13</td>\n",
" <td>-8.527973e-13</td>\n",
" <td>4.256994e-12</td>\n",
" <td>0.105999</td>\n",
" <td>0.040413</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v22</th>\n",
" <td>0.144059</td>\n",
" <td>2.281863e-12</td>\n",
" <td>-2.548560e-13</td>\n",
" <td>-8.909339e-13</td>\n",
" <td>4.347776e-13</td>\n",
" <td>7.095269e-13</td>\n",
" <td>-1.144797e-12</td>\n",
" <td>-8.133209e-13</td>\n",
" <td>-2.679560e-12</td>\n",
" <td>-7.467526e-13</td>\n",
" <td>...</td>\n",
" <td>-3.415801e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-9.443573e-13</td>\n",
" <td>-1.123546e-12</td>\n",
" <td>1.968449e-12</td>\n",
" <td>-1.013828e-12</td>\n",
" <td>-1.726653e-13</td>\n",
" <td>5.948423e-12</td>\n",
" <td>-0.064801</td>\n",
" <td>0.000805</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v23</th>\n",
" <td>0.051142</td>\n",
" <td>-2.969746e-12</td>\n",
" <td>-4.856120e-12</td>\n",
" <td>4.147209e-12</td>\n",
" <td>-4.160969e-12</td>\n",
" <td>3.616075e-12</td>\n",
" <td>-1.527842e-12</td>\n",
" <td>-4.293094e-12</td>\n",
" <td>9.013064e-13</td>\n",
" <td>-1.011003e-12</td>\n",
" <td>...</td>\n",
" <td>1.066923e-12</td>\n",
" <td>-9.443573e-13</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.354049e-12</td>\n",
" <td>-3.751334e-12</td>\n",
" <td>-1.002379e-12</td>\n",
" <td>9.199153e-12</td>\n",
" <td>3.819775e-12</td>\n",
" <td>-0.112633</td>\n",
" <td>-0.002685</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v24</th>\n",
" <td>-0.016182</td>\n",
" <td>-1.029876e-12</td>\n",
" <td>6.431308e-13</td>\n",
" <td>3.407636e-12</td>\n",
" <td>-2.368743e-12</td>\n",
" <td>-2.808776e-13</td>\n",
" <td>1.551854e-12</td>\n",
" <td>-2.553518e-12</td>\n",
" <td>-1.074365e-12</td>\n",
" <td>8.579072e-13</td>\n",
" <td>...</td>\n",
" <td>2.350293e-12</td>\n",
" <td>-1.123546e-12</td>\n",
" <td>2.354049e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-3.917943e-12</td>\n",
" <td>1.604779e-12</td>\n",
" <td>1.554565e-12</td>\n",
" <td>1.380805e-11</td>\n",
" <td>0.005146</td>\n",
" <td>-0.007221</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v25</th>\n",
" <td>-0.233083</td>\n",
" <td>1.144179e-12</td>\n",
" <td>-9.423730e-13</td>\n",
" <td>5.712956e-13</td>\n",
" <td>1.619944e-12</td>\n",
" <td>1.451126e-12</td>\n",
" <td>-2.723707e-12</td>\n",
" <td>-7.406970e-13</td>\n",
" <td>-3.268979e-12</td>\n",
" <td>-1.590341e-12</td>\n",
" <td>...</td>\n",
" <td>-3.120502e-12</td>\n",
" <td>1.968449e-12</td>\n",
" <td>-3.751334e-12</td>\n",
" <td>-3.917943e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.111834e-12</td>\n",
" <td>-6.220008e-13</td>\n",
" <td>-8.597190e-12</td>\n",
" <td>-0.047837</td>\n",
" <td>0.003308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v26</th>\n",
" <td>-0.041407</td>\n",
" <td>1.835263e-12</td>\n",
" <td>-4.129100e-13</td>\n",
" <td>-2.577274e-12</td>\n",
" <td>-3.043100e-13</td>\n",
" <td>-1.896141e-13</td>\n",
" <td>3.351239e-12</td>\n",
" <td>-4.476467e-12</td>\n",
" <td>1.043839e-12</td>\n",
" <td>-7.723547e-13</td>\n",
" <td>...</td>\n",
" <td>8.463789e-13</td>\n",
" <td>-1.013828e-12</td>\n",
" <td>-1.002379e-12</td>\n",
" <td>1.604779e-12</td>\n",
" <td>2.111834e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.374854e-12</td>\n",
" <td>-1.036858e-11</td>\n",
" <td>-0.003208</td>\n",
" <td>0.004455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v27</th>\n",
" <td>-0.005135</td>\n",
" <td>7.624804e-12</td>\n",
" <td>-9.856545e-13</td>\n",
" <td>-5.041444e-12</td>\n",
" <td>-1.456066e-12</td>\n",
" <td>-2.124559e-12</td>\n",
" <td>1.481307e-12</td>\n",
" <td>-1.328637e-11</td>\n",
" <td>-3.499804e-12</td>\n",
" <td>2.428930e-12</td>\n",
" <td>...</td>\n",
" <td>-8.527973e-13</td>\n",
" <td>-1.726653e-13</td>\n",
" <td>9.199153e-12</td>\n",
" <td>1.554565e-12</td>\n",
" <td>-6.220008e-13</td>\n",
" <td>2.374854e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-4.441112e-12</td>\n",
" <td>0.028825</td>\n",
" <td>0.017580</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v28</th>\n",
" <td>-0.009413</td>\n",
" <td>-9.769215e-13</td>\n",
" <td>2.525513e-12</td>\n",
" <td>5.189109e-12</td>\n",
" <td>-2.832372e-12</td>\n",
" <td>1.010196e-11</td>\n",
" <td>-6.069227e-13</td>\n",
" <td>2.958679e-13</td>\n",
" <td>1.866598e-12</td>\n",
" <td>-1.406856e-12</td>\n",
" <td>...</td>\n",
" <td>4.256994e-12</td>\n",
" <td>5.948423e-12</td>\n",
" <td>3.819775e-12</td>\n",
" <td>1.380805e-11</td>\n",
" <td>-8.597190e-12</td>\n",
" <td>-1.036858e-11</td>\n",
" <td>-4.441112e-12</td>\n",
" <td>1.000000e+00</td>\n",
" <td>0.010258</td>\n",
" <td>0.009536</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>-0.010596</td>\n",
" <td>-2.277087e-01</td>\n",
" <td>-5.314089e-01</td>\n",
" <td>-2.108805e-01</td>\n",
" <td>9.873167e-02</td>\n",
" <td>-3.863563e-01</td>\n",
" <td>2.159812e-01</td>\n",
" <td>3.973113e-01</td>\n",
" <td>-1.030791e-01</td>\n",
" <td>-4.424560e-02</td>\n",
" <td>...</td>\n",
" <td>1.059989e-01</td>\n",
" <td>-6.480065e-02</td>\n",
" <td>-1.126326e-01</td>\n",
" <td>5.146217e-03</td>\n",
" <td>-4.783686e-02</td>\n",
" <td>-3.208037e-03</td>\n",
" <td>2.882546e-02</td>\n",
" <td>1.025822e-02</td>\n",
" <td>1.000000</td>\n",
" <td>0.005632</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>-0.012323</td>\n",
" <td>-1.013473e-01</td>\n",
" <td>9.128865e-02</td>\n",
" <td>-1.929608e-01</td>\n",
" <td>1.334475e-01</td>\n",
" <td>-9.497430e-02</td>\n",
" <td>-4.364316e-02</td>\n",
" <td>-1.872566e-01</td>\n",
" <td>1.987512e-02</td>\n",
" <td>-9.773269e-02</td>\n",
" <td>...</td>\n",
" <td>4.041338e-02</td>\n",
" <td>8.053175e-04</td>\n",
" <td>-2.685156e-03</td>\n",
" <td>-7.220907e-03</td>\n",
" <td>3.307706e-03</td>\n",
" <td>4.455398e-03</td>\n",
" <td>1.757973e-02</td>\n",
" <td>9.536041e-03</td>\n",
" <td>0.005632</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>31 rows × 31 columns</p>\n",
"</div>"
],
"text/plain": [
" time v1 v2 v3 v4 \\\n",
"time 1.000000 1.173963e-01 -1.059333e-02 -4.196182e-01 -1.052602e-01 \n",
"v1 0.117396 1.000000e+00 3.777823e-12 -2.118614e-12 -1.733159e-13 \n",
"v2 -0.010593 3.777823e-12 1.000000e+00 2.325661e-12 -2.314981e-12 \n",
"v3 -0.419618 -2.118614e-12 2.325661e-12 1.000000e+00 2.046235e-13 \n",
"v4 -0.105260 -1.733159e-13 -2.314981e-12 2.046235e-13 1.000000e+00 \n",
"v5 0.173072 -3.473231e-12 -1.831952e-12 -4.032993e-12 -2.552389e-13 \n",
"v6 -0.063016 -1.306165e-13 9.438444e-13 -1.574471e-13 1.084041e-12 \n",
"v7 0.084714 -1.116494e-13 5.403436e-12 3.405586e-12 8.135064e-13 \n",
"v8 -0.036949 2.114527e-12 2.133785e-14 -1.272385e-12 7.334818e-13 \n",
"v9 -0.008660 3.016285e-14 3.238513e-13 -6.812351e-13 -7.143069e-13 \n",
"v10 0.030617 -2.615192e-12 1.463282e-12 -1.609126e-12 -1.938143e-12 \n",
"v11 -0.247689 1.866551e-12 -8.314960e-13 8.707055e-13 1.874473e-12 \n",
"v12 0.124348 -1.238745e-12 6.139448e-13 -2.730043e-12 5.393827e-13 \n",
"v13 -0.065902 7.589589e-13 -1.181068e-12 -1.020592e-12 6.813810e-13 \n",
"v14 -0.098757 -1.871054e-13 -3.384684e-13 -5.597874e-13 -1.404120e-12 \n",
"v15 -0.183453 -3.601390e-13 2.196083e-13 6.442512e-13 1.526382e-12 \n",
"v16 0.011903 -1.142884e-12 -8.000510e-13 -8.748795e-13 3.095722e-13 \n",
"v17 -0.073297 1.671073e-12 2.028957e-12 -1.058101e-12 1.151414e-14 \n",
"v18 0.090438 -5.738830e-13 -1.916566e-14 -8.846578e-13 -1.309615e-12 \n",
"v19 0.028975 -2.770259e-12 -2.237098e-13 -1.061131e-12 -9.754131e-13 \n",
"v20 -0.050866 2.662926e-13 5.839893e-13 1.873059e-12 -2.347029e-12 \n",
"v21 0.044736 -3.276238e-12 2.280202e-12 6.736294e-13 -2.696370e-12 \n",
"v22 0.144059 2.281863e-12 -2.548560e-13 -8.909339e-13 4.347776e-13 \n",
"v23 0.051142 -2.969746e-12 -4.856120e-12 4.147209e-12 -4.160969e-12 \n",
"v24 -0.016182 -1.029876e-12 6.431308e-13 3.407636e-12 -2.368743e-12 \n",
"v25 -0.233083 1.144179e-12 -9.423730e-13 5.712956e-13 1.619944e-12 \n",
"v26 -0.041407 1.835263e-12 -4.129100e-13 -2.577274e-12 -3.043100e-13 \n",
"v27 -0.005135 7.624804e-12 -9.856545e-13 -5.041444e-12 -1.456066e-12 \n",
"v28 -0.009413 -9.769215e-13 2.525513e-12 5.189109e-12 -2.832372e-12 \n",
"amount -0.010596 -2.277087e-01 -5.314089e-01 -2.108805e-01 9.873167e-02 \n",
"class -0.012323 -1.013473e-01 9.128865e-02 -1.929608e-01 1.334475e-01 \n",
"\n",
" v5 v6 v7 v8 v9 \\\n",
"time 1.730721e-01 -6.301647e-02 8.471437e-02 -3.694943e-02 -8.660434e-03 \n",
"v1 -3.473231e-12 -1.306165e-13 -1.116494e-13 2.114527e-12 3.016285e-14 \n",
"v2 -1.831952e-12 9.438444e-13 5.403436e-12 2.133785e-14 3.238513e-13 \n",
"v3 -4.032993e-12 -1.574471e-13 3.405586e-12 -1.272385e-12 -6.812351e-13 \n",
"v4 -2.552389e-13 1.084041e-12 8.135064e-13 7.334818e-13 -7.143069e-13 \n",
"v5 1.000000e+00 -6.934789e-14 1.573956e-11 -2.038243e-12 -1.000756e-12 \n",
"v6 -6.934789e-14 1.000000e+00 -2.798968e-12 -5.446480e-13 2.036743e-12 \n",
"v7 1.573956e-11 -2.798968e-12 1.000000e+00 5.528803e-12 5.088082e-13 \n",
"v8 -2.038243e-12 -5.446480e-13 5.528803e-12 1.000000e+00 -2.243172e-12 \n",
"v9 -1.000756e-12 2.036743e-12 5.088082e-13 -2.243172e-12 1.000000e+00 \n",
"v10 -7.200329e-13 7.429770e-13 1.674650e-12 -1.660630e-12 1.185391e-12 \n",
"v11 -5.928181e-13 1.014893e-12 -8.525291e-13 1.296877e-12 -3.970652e-13 \n",
"v12 1.812994e-12 -9.265590e-13 -2.826770e-13 -3.860109e-13 -1.904908e-12 \n",
"v13 -7.021996e-14 1.484679e-12 -8.171731e-13 7.722897e-13 8.754859e-13 \n",
"v14 -1.113015e-13 -1.212766e-12 2.038217e-12 -2.596182e-12 -1.271311e-12 \n",
"v15 -1.593594e-12 -1.053548e-12 1.074440e-12 1.648898e-12 8.628709e-13 \n",
"v16 -1.619090e-14 1.374197e-12 -1.478776e-12 -1.830899e-12 1.239835e-12 \n",
"v17 1.713794e-13 7.431528e-13 -1.231314e-12 7.025405e-13 -1.450585e-12 \n",
"v18 1.101433e-12 6.859871e-13 -4.281952e-13 1.499555e-12 7.186934e-13 \n",
"v19 5.956033e-13 1.148589e-12 -3.742188e-12 1.988417e-12 -8.786777e-13 \n",
"v20 -1.728728e-13 -2.382062e-12 8.068665e-12 -1.884661e-13 1.270200e-12 \n",
"v21 -1.751796e-12 1.476858e-12 2.788246e-12 -4.022440e-12 3.040326e-12 \n",
"v22 7.095269e-13 -1.144797e-12 -8.133209e-13 -2.679560e-12 -7.467526e-13 \n",
"v23 3.616075e-12 -1.527842e-12 -4.293094e-12 9.013064e-13 -1.011003e-12 \n",
"v24 -2.808776e-13 1.551854e-12 -2.553518e-12 -1.074365e-12 8.579072e-13 \n",
"v25 1.451126e-12 -2.723707e-12 -7.406970e-13 -3.268979e-12 -1.590341e-12 \n",
"v26 -1.896141e-13 3.351239e-12 -4.476467e-12 1.043839e-12 -7.723547e-13 \n",
"v27 -2.124559e-12 1.481307e-12 -1.328637e-11 -3.499804e-12 2.428930e-12 \n",
"v28 1.010196e-11 -6.069227e-13 2.958679e-13 1.866598e-12 -1.406856e-12 \n",
"amount -3.863563e-01 2.159812e-01 3.973113e-01 -1.030791e-01 -4.424560e-02 \n",
"class -9.497430e-02 -4.364316e-02 -1.872566e-01 1.987512e-02 -9.773269e-02 \n",
"\n",
" ... v21 v22 v23 v24 \\\n",
"time ... 4.473573e-02 1.440591e-01 5.114236e-02 -1.618187e-02 \n",
"v1 ... -3.276238e-12 2.281863e-12 -2.969746e-12 -1.029876e-12 \n",
"v2 ... 2.280202e-12 -2.548560e-13 -4.856120e-12 6.431308e-13 \n",
"v3 ... 6.736294e-13 -8.909339e-13 4.147209e-12 3.407636e-12 \n",
"v4 ... -2.696370e-12 4.347776e-13 -4.160969e-12 -2.368743e-12 \n",
"v5 ... -1.751796e-12 7.095269e-13 3.616075e-12 -2.808776e-13 \n",
"v6 ... 1.476858e-12 -1.144797e-12 -1.527842e-12 1.551854e-12 \n",
"v7 ... 2.788246e-12 -8.133209e-13 -4.293094e-12 -2.553518e-12 \n",
"v8 ... -4.022440e-12 -2.679560e-12 9.013064e-13 -1.074365e-12 \n",
"v9 ... 3.040326e-12 -7.467526e-13 -1.011003e-12 8.579072e-13 \n",
"v10 ... -5.547700e-13 -1.320186e-13 1.173332e-12 6.405710e-13 \n",
"v11 ... 1.100352e-13 -5.644168e-14 1.724963e-12 -1.162239e-12 \n",
"v12 ... 8.106835e-13 -2.346533e-12 -6.878556e-13 -2.911084e-12 \n",
"v13 ... -2.037258e-12 -5.491535e-13 3.508022e-12 1.225112e-13 \n",
"v14 ... -4.557223e-13 2.572021e-12 8.288666e-13 -3.382145e-12 \n",
"v15 ... 5.921902e-13 -4.115704e-13 -9.846654e-13 -3.256310e-12 \n",
"v16 ... -1.067918e-12 2.009490e-12 4.057311e-13 -4.061029e-13 \n",
"v17 ... 1.793607e-12 2.280366e-13 -9.948639e-13 -2.073066e-12 \n",
"v18 ... -2.185508e-12 1.392636e-12 -2.160673e-12 4.303958e-12 \n",
"v19 ... -3.315774e-13 7.050020e-14 -7.118335e-13 1.326310e-12 \n",
"v20 ... -3.892661e-12 1.632957e-12 -1.019668e-11 1.267519e-12 \n",
"v21 ... 1.000000e+00 -3.415801e-12 1.066923e-12 2.350293e-12 \n",
"v22 ... -3.415801e-12 1.000000e+00 -9.443573e-13 -1.123546e-12 \n",
"v23 ... 1.066923e-12 -9.443573e-13 1.000000e+00 2.354049e-12 \n",
"v24 ... 2.350293e-12 -1.123546e-12 2.354049e-12 1.000000e+00 \n",
"v25 ... -3.120502e-12 1.968449e-12 -3.751334e-12 -3.917943e-12 \n",
"v26 ... 8.463789e-13 -1.013828e-12 -1.002379e-12 1.604779e-12 \n",
"v27 ... -8.527973e-13 -1.726653e-13 9.199153e-12 1.554565e-12 \n",
"v28 ... 4.256994e-12 5.948423e-12 3.819775e-12 1.380805e-11 \n",
"amount ... 1.059989e-01 -6.480065e-02 -1.126326e-01 5.146217e-03 \n",
"class ... 4.041338e-02 8.053175e-04 -2.685156e-03 -7.220907e-03 \n",
"\n",
" v25 v26 v27 v28 amount \\\n",
"time -2.330828e-01 -4.140710e-02 -5.134591e-03 -9.412688e-03 -0.010596 \n",
"v1 1.144179e-12 1.835263e-12 7.624804e-12 -9.769215e-13 -0.227709 \n",
"v2 -9.423730e-13 -4.129100e-13 -9.856545e-13 2.525513e-12 -0.531409 \n",
"v3 5.712956e-13 -2.577274e-12 -5.041444e-12 5.189109e-12 -0.210880 \n",
"v4 1.619944e-12 -3.043100e-13 -1.456066e-12 -2.832372e-12 0.098732 \n",
"v5 1.451126e-12 -1.896141e-13 -2.124559e-12 1.010196e-11 -0.386356 \n",
"v6 -2.723707e-12 3.351239e-12 1.481307e-12 -6.069227e-13 0.215981 \n",
"v7 -7.406970e-13 -4.476467e-12 -1.328637e-11 2.958679e-13 0.397311 \n",
"v8 -3.268979e-12 1.043839e-12 -3.499804e-12 1.866598e-12 -0.103079 \n",
"v9 -1.590341e-12 -7.723547e-13 2.428930e-12 -1.406856e-12 -0.044246 \n",
"v10 2.794979e-12 -2.738577e-13 1.552492e-12 5.116568e-12 -0.101502 \n",
"v11 -1.351430e-12 2.718291e-12 -3.950227e-12 -4.247931e-12 0.000104 \n",
"v12 1.102899e-12 2.808714e-13 5.953998e-13 -7.428113e-12 -0.009542 \n",
"v13 -1.513549e-12 -2.008364e-12 4.975659e-12 -6.777880e-12 0.005293 \n",
"v14 8.299871e-13 -3.304576e-13 -2.447674e-12 -1.700091e-12 0.033751 \n",
"v15 -1.725436e-12 5.478951e-13 -4.690702e-12 -4.214967e-12 -0.002986 \n",
"v16 7.626529e-13 -1.323365e-12 7.022747e-12 5.737097e-13 -0.003910 \n",
"v17 4.514159e-12 2.940618e-12 -1.324408e-12 1.854033e-12 0.007309 \n",
"v18 5.432404e-13 -1.810692e-12 -4.949670e-12 4.113104e-12 0.035650 \n",
"v19 9.270702e-13 2.412082e-12 -2.201365e-12 3.450583e-12 -0.056151 \n",
"v20 -1.593346e-12 1.469484e-13 -2.996546e-12 6.123479e-12 0.339403 \n",
"v21 -3.120502e-12 8.463789e-13 -8.527973e-13 4.256994e-12 0.105999 \n",
"v22 1.968449e-12 -1.013828e-12 -1.726653e-13 5.948423e-12 -0.064801 \n",
"v23 -3.751334e-12 -1.002379e-12 9.199153e-12 3.819775e-12 -0.112633 \n",
"v24 -3.917943e-12 1.604779e-12 1.554565e-12 1.380805e-11 0.005146 \n",
"v25 1.000000e+00 2.111834e-12 -6.220008e-13 -8.597190e-12 -0.047837 \n",
"v26 2.111834e-12 1.000000e+00 2.374854e-12 -1.036858e-11 -0.003208 \n",
"v27 -6.220008e-13 2.374854e-12 1.000000e+00 -4.441112e-12 0.028825 \n",
"v28 -8.597190e-12 -1.036858e-11 -4.441112e-12 1.000000e+00 0.010258 \n",
"amount -4.783686e-02 -3.208037e-03 2.882546e-02 1.025822e-02 1.000000 \n",
"class 3.307706e-03 4.455398e-03 1.757973e-02 9.536041e-03 0.005632 \n",
"\n",
" class \n",
"time -0.012323 \n",
"v1 -0.101347 \n",
"v2 0.091289 \n",
"v3 -0.192961 \n",
"v4 0.133447 \n",
"v5 -0.094974 \n",
"v6 -0.043643 \n",
"v7 -0.187257 \n",
"v8 0.019875 \n",
"v9 -0.097733 \n",
"v10 -0.216883 \n",
"v11 0.154876 \n",
"v12 -0.260593 \n",
"v13 -0.004570 \n",
"v14 -0.302544 \n",
"v15 -0.004223 \n",
"v16 -0.196539 \n",
"v17 -0.326481 \n",
"v18 -0.111485 \n",
"v19 0.034783 \n",
"v20 0.020090 \n",
"v21 0.040413 \n",
"v22 0.000805 \n",
"v23 -0.002685 \n",
"v24 -0.007221 \n",
"v25 0.003308 \n",
"v26 0.004455 \n",
"v27 0.017580 \n",
"v28 0.009536 \n",
"amount 0.005632 \n",
"class 1.000000 \n",
"\n",
"[31 rows x 31 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# correlations\n",
"corr_matrix = df_train.corr()\n",
"corr_matrix"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "postal-microphone",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"v17 -0.326481\n",
"v14 -0.302544\n",
"v12 -0.260593\n",
"v10 -0.216883\n",
"v16 -0.196539\n",
"v3 -0.192961\n",
"v7 -0.187257\n",
"v18 -0.111485\n",
"v1 -0.101347\n",
"v9 -0.097733\n",
"v5 -0.094974\n",
"v6 -0.043643\n",
"time -0.012323\n",
"v24 -0.007221\n",
"v13 -0.004570\n",
"v15 -0.004223\n",
"v23 -0.002685\n",
"v22 0.000805\n",
"v25 0.003308\n",
"v26 0.004455\n",
"amount 0.005632\n",
"v28 0.009536\n",
"v27 0.017580\n",
"v8 0.019875\n",
"v20 0.020090\n",
"v19 0.034783\n",
"v21 0.040413\n",
"v2 0.091289\n",
"v4 0.133447\n",
"v11 0.154876\n",
"class 1.000000\n",
"Name: class, dtype: float64"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# order the correlations with class\n",
"correlations = corr_matrix[\"class\"].sort_values()\n",
"correlations"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "revolutionary-medicare",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# check correlation matrix, darker means more correlation \n",
"k = 10 #number of variables for heatmap\n",
"cols = corr_matrix.nlargest(k, 'class')['class'].index\n",
"cm = np.corrcoef(df_train[cols].values.T)\n",
"sns.set(font_scale=1.25)\n",
"hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', cmap=\"YlGnBu\", annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "accessory-block",
"metadata": {},
"source": [
"### Check outliers"
]
},
{
"cell_type": "markdown",
"id": "changing-flesh",
"metadata": {},
"source": [
"#### Numerical Variables Analysis"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "fresh-boundary",
"metadata": {},
"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>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>time</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v1</th>\n",
" <td>-1.359807</td>\n",
" <td>1.191857</td>\n",
" <td>-1.358354</td>\n",
" <td>-0.966272</td>\n",
" <td>-1.158233</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v2</th>\n",
" <td>-0.072781</td>\n",
" <td>0.266151</td>\n",
" <td>-1.340163</td>\n",
" <td>-0.185226</td>\n",
" <td>0.877737</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v3</th>\n",
" <td>2.536347</td>\n",
" <td>0.166480</td>\n",
" <td>1.773209</td>\n",
" <td>1.792993</td>\n",
" <td>1.548718</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v4</th>\n",
" <td>1.378155</td>\n",
" <td>0.448154</td>\n",
" <td>0.379780</td>\n",
" <td>-0.863291</td>\n",
" <td>0.403034</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v5</th>\n",
" <td>-0.338321</td>\n",
" <td>0.060018</td>\n",
" <td>-0.503198</td>\n",
" <td>-0.010309</td>\n",
" <td>-0.407193</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v6</th>\n",
" <td>0.462388</td>\n",
" <td>-0.082361</td>\n",
" <td>1.800499</td>\n",
" <td>1.247203</td>\n",
" <td>0.095921</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v7</th>\n",
" <td>0.239599</td>\n",
" <td>-0.078803</td>\n",
" <td>0.791461</td>\n",
" <td>0.237609</td>\n",
" <td>0.592941</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v8</th>\n",
" <td>0.098698</td>\n",
" <td>0.085102</td>\n",
" <td>0.247676</td>\n",
" <td>0.377436</td>\n",
" <td>-0.270533</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v9</th>\n",
" <td>0.363787</td>\n",
" <td>-0.255425</td>\n",
" <td>-1.514654</td>\n",
" <td>-1.387024</td>\n",
" <td>0.817739</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v10</th>\n",
" <td>0.090794</td>\n",
" <td>-0.166974</td>\n",
" <td>0.207643</td>\n",
" <td>-0.054952</td>\n",
" <td>0.753074</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v11</th>\n",
" <td>-0.551600</td>\n",
" <td>1.612727</td>\n",
" <td>0.624501</td>\n",
" <td>-0.226487</td>\n",
" <td>-0.822843</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v12</th>\n",
" <td>-0.617801</td>\n",
" <td>1.065235</td>\n",
" <td>0.066084</td>\n",
" <td>0.178228</td>\n",
" <td>0.538196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v13</th>\n",
" <td>-0.991390</td>\n",
" <td>0.489095</td>\n",
" <td>0.717293</td>\n",
" <td>0.507757</td>\n",
" <td>1.345852</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v14</th>\n",
" <td>-0.311169</td>\n",
" <td>-0.143772</td>\n",
" <td>-0.165946</td>\n",
" <td>-0.287924</td>\n",
" <td>-1.119670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v15</th>\n",
" <td>1.468177</td>\n",
" <td>0.635558</td>\n",
" <td>2.345865</td>\n",
" <td>-0.631418</td>\n",
" <td>0.175121</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v16</th>\n",
" <td>-0.470401</td>\n",
" <td>0.463917</td>\n",
" <td>-2.890083</td>\n",
" <td>-1.059647</td>\n",
" <td>-0.451449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v17</th>\n",
" <td>0.207971</td>\n",
" <td>-0.114805</td>\n",
" <td>1.109969</td>\n",
" <td>-0.684093</td>\n",
" <td>-0.237033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v18</th>\n",
" <td>0.025791</td>\n",
" <td>-0.183361</td>\n",
" <td>-0.121359</td>\n",
" <td>1.965775</td>\n",
" <td>-0.038195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v19</th>\n",
" <td>0.403993</td>\n",
" <td>-0.145783</td>\n",
" <td>-2.261857</td>\n",
" <td>-1.232622</td>\n",
" <td>0.803487</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v20</th>\n",
" <td>0.251412</td>\n",
" <td>-0.069083</td>\n",
" <td>0.524980</td>\n",
" <td>-0.208038</td>\n",
" <td>0.408542</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v21</th>\n",
" <td>-0.018307</td>\n",
" <td>-0.225775</td>\n",
" <td>0.247998</td>\n",
" <td>-0.108300</td>\n",
" <td>-0.009431</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v22</th>\n",
" <td>0.277838</td>\n",
" <td>-0.638672</td>\n",
" <td>0.771679</td>\n",
" <td>0.005274</td>\n",
" <td>0.798278</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v23</th>\n",
" <td>-0.110474</td>\n",
" <td>0.101288</td>\n",
" <td>0.909412</td>\n",
" <td>-0.190321</td>\n",
" <td>-0.137458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v24</th>\n",
" <td>0.066928</td>\n",
" <td>-0.339846</td>\n",
" <td>-0.689281</td>\n",
" <td>-1.175575</td>\n",
" <td>0.141267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v25</th>\n",
" <td>0.128539</td>\n",
" <td>0.167170</td>\n",
" <td>-0.327642</td>\n",
" <td>0.647376</td>\n",
" <td>-0.206010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v26</th>\n",
" <td>-0.189115</td>\n",
" <td>0.125895</td>\n",
" <td>-0.139097</td>\n",
" <td>-0.221929</td>\n",
" <td>0.502292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v27</th>\n",
" <td>0.133558</td>\n",
" <td>-0.008983</td>\n",
" <td>-0.055353</td>\n",
" <td>0.062723</td>\n",
" <td>0.219422</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v28</th>\n",
" <td>-0.021053</td>\n",
" <td>0.014724</td>\n",
" <td>-0.059752</td>\n",
" <td>0.061458</td>\n",
" <td>0.215153</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>149.620000</td>\n",
" <td>2.690000</td>\n",
" <td>378.660000</td>\n",
" <td>123.500000</td>\n",
" <td>69.990000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4\n",
"time 0.000000 0.000000 1.000000 1.000000 2.000000\n",
"v1 -1.359807 1.191857 -1.358354 -0.966272 -1.158233\n",
"v2 -0.072781 0.266151 -1.340163 -0.185226 0.877737\n",
"v3 2.536347 0.166480 1.773209 1.792993 1.548718\n",
"v4 1.378155 0.448154 0.379780 -0.863291 0.403034\n",
"v5 -0.338321 0.060018 -0.503198 -0.010309 -0.407193\n",
"v6 0.462388 -0.082361 1.800499 1.247203 0.095921\n",
"v7 0.239599 -0.078803 0.791461 0.237609 0.592941\n",
"v8 0.098698 0.085102 0.247676 0.377436 -0.270533\n",
"v9 0.363787 -0.255425 -1.514654 -1.387024 0.817739\n",
"v10 0.090794 -0.166974 0.207643 -0.054952 0.753074\n",
"v11 -0.551600 1.612727 0.624501 -0.226487 -0.822843\n",
"v12 -0.617801 1.065235 0.066084 0.178228 0.538196\n",
"v13 -0.991390 0.489095 0.717293 0.507757 1.345852\n",
"v14 -0.311169 -0.143772 -0.165946 -0.287924 -1.119670\n",
"v15 1.468177 0.635558 2.345865 -0.631418 0.175121\n",
"v16 -0.470401 0.463917 -2.890083 -1.059647 -0.451449\n",
"v17 0.207971 -0.114805 1.109969 -0.684093 -0.237033\n",
"v18 0.025791 -0.183361 -0.121359 1.965775 -0.038195\n",
"v19 0.403993 -0.145783 -2.261857 -1.232622 0.803487\n",
"v20 0.251412 -0.069083 0.524980 -0.208038 0.408542\n",
"v21 -0.018307 -0.225775 0.247998 -0.108300 -0.009431\n",
"v22 0.277838 -0.638672 0.771679 0.005274 0.798278\n",
"v23 -0.110474 0.101288 0.909412 -0.190321 -0.137458\n",
"v24 0.066928 -0.339846 -0.689281 -1.175575 0.141267\n",
"v25 0.128539 0.167170 -0.327642 0.647376 -0.206010\n",
"v26 -0.189115 0.125895 -0.139097 -0.221929 0.502292\n",
"v27 0.133558 -0.008983 -0.055353 0.062723 0.219422\n",
"v28 -0.021053 0.014724 -0.059752 0.061458 0.215153\n",
"amount 149.620000 2.690000 378.660000 123.500000 69.990000\n",
"class 0.000000 0.000000 0.000000 0.000000 0.000000"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# isolating numerical columns in a dataframe\n",
"numerics = ['int64', 'float64']\n",
"num_df = df_train.select_dtypes(include=numerics)\n",
"num_df.head().T"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "stock-geneva",
"metadata": {},
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>time</th>\n",
" <td>284807.0</td>\n",
" <td>9.481386e+04</td>\n",
" <td>47488.145955</td>\n",
" <td>0.000000</td>\n",
" <td>54201.500000</td>\n",
" <td>84692.000000</td>\n",
" <td>139320.500000</td>\n",
" <td>172792.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v1</th>\n",
" <td>284807.0</td>\n",
" <td>1.759061e-12</td>\n",
" <td>1.958696</td>\n",
" <td>-56.407510</td>\n",
" <td>-0.920373</td>\n",
" <td>0.018109</td>\n",
" <td>1.315642</td>\n",
" <td>2.454930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v2</th>\n",
" <td>284807.0</td>\n",
" <td>-8.251130e-13</td>\n",
" <td>1.651309</td>\n",
" <td>-72.715728</td>\n",
" <td>-0.598550</td>\n",
" <td>0.065486</td>\n",
" <td>0.803724</td>\n",
" <td>22.057729</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v3</th>\n",
" <td>284807.0</td>\n",
" <td>-9.654937e-13</td>\n",
" <td>1.516255</td>\n",
" <td>-48.325589</td>\n",
" <td>-0.890365</td>\n",
" <td>0.179846</td>\n",
" <td>1.027196</td>\n",
" <td>9.382558</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v4</th>\n",
" <td>284807.0</td>\n",
" <td>8.321385e-13</td>\n",
" <td>1.415869</td>\n",
" <td>-5.683171</td>\n",
" <td>-0.848640</td>\n",
" <td>-0.019847</td>\n",
" <td>0.743341</td>\n",
" <td>16.875344</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v5</th>\n",
" <td>284807.0</td>\n",
" <td>1.649999e-13</td>\n",
" <td>1.380247</td>\n",
" <td>-113.743307</td>\n",
" <td>-0.691597</td>\n",
" <td>-0.054336</td>\n",
" <td>0.611926</td>\n",
" <td>34.801666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v6</th>\n",
" <td>284807.0</td>\n",
" <td>4.248366e-13</td>\n",
" <td>1.332271</td>\n",
" <td>-26.160506</td>\n",
" <td>-0.768296</td>\n",
" <td>-0.274187</td>\n",
" <td>0.398565</td>\n",
" <td>73.301626</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v7</th>\n",
" <td>284807.0</td>\n",
" <td>-3.054600e-13</td>\n",
" <td>1.237094</td>\n",
" <td>-43.557242</td>\n",
" <td>-0.554076</td>\n",
" <td>0.040103</td>\n",
" <td>0.570436</td>\n",
" <td>120.589494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v8</th>\n",
" <td>284807.0</td>\n",
" <td>8.777971e-14</td>\n",
" <td>1.194353</td>\n",
" <td>-73.216718</td>\n",
" <td>-0.208630</td>\n",
" <td>0.022358</td>\n",
" <td>0.327346</td>\n",
" <td>20.007208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v9</th>\n",
" <td>284807.0</td>\n",
" <td>-1.179749e-12</td>\n",
" <td>1.098632</td>\n",
" <td>-13.434066</td>\n",
" <td>-0.643098</td>\n",
" <td>-0.051429</td>\n",
" <td>0.597139</td>\n",
" <td>15.594995</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v10</th>\n",
" <td>284807.0</td>\n",
" <td>7.092545e-13</td>\n",
" <td>1.088850</td>\n",
" <td>-24.588262</td>\n",
" <td>-0.535426</td>\n",
" <td>-0.092917</td>\n",
" <td>0.453923</td>\n",
" <td>23.745136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v11</th>\n",
" <td>284807.0</td>\n",
" <td>1.874948e-12</td>\n",
" <td>1.020713</td>\n",
" <td>-4.797473</td>\n",
" <td>-0.762494</td>\n",
" <td>-0.032757</td>\n",
" <td>0.739593</td>\n",
" <td>12.018913</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v12</th>\n",
" <td>284807.0</td>\n",
" <td>1.053347e-12</td>\n",
" <td>0.999201</td>\n",
" <td>-18.683715</td>\n",
" <td>-0.405571</td>\n",
" <td>0.140033</td>\n",
" <td>0.618238</td>\n",
" <td>7.848392</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v13</th>\n",
" <td>284807.0</td>\n",
" <td>7.127611e-13</td>\n",
" <td>0.995274</td>\n",
" <td>-5.791881</td>\n",
" <td>-0.648539</td>\n",
" <td>-0.013568</td>\n",
" <td>0.662505</td>\n",
" <td>7.126883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v14</th>\n",
" <td>284807.0</td>\n",
" <td>-1.474791e-13</td>\n",
" <td>0.958596</td>\n",
" <td>-19.214325</td>\n",
" <td>-0.425574</td>\n",
" <td>0.050601</td>\n",
" <td>0.493150</td>\n",
" <td>10.526766</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v15</th>\n",
" <td>284807.0</td>\n",
" <td>-5.231558e-13</td>\n",
" <td>0.915316</td>\n",
" <td>-4.498945</td>\n",
" <td>-0.582884</td>\n",
" <td>0.048072</td>\n",
" <td>0.648821</td>\n",
" <td>8.877742</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v16</th>\n",
" <td>284807.0</td>\n",
" <td>-2.282250e-13</td>\n",
" <td>0.876253</td>\n",
" <td>-14.129855</td>\n",
" <td>-0.468037</td>\n",
" <td>0.066413</td>\n",
" <td>0.523296</td>\n",
" <td>17.315112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v17</th>\n",
" <td>284807.0</td>\n",
" <td>-6.425436e-13</td>\n",
" <td>0.849337</td>\n",
" <td>-25.162799</td>\n",
" <td>-0.483748</td>\n",
" <td>-0.065676</td>\n",
" <td>0.399675</td>\n",
" <td>9.253526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v18</th>\n",
" <td>284807.0</td>\n",
" <td>4.950748e-13</td>\n",
" <td>0.838176</td>\n",
" <td>-9.498746</td>\n",
" <td>-0.498850</td>\n",
" <td>-0.003636</td>\n",
" <td>0.500807</td>\n",
" <td>5.041069</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v19</th>\n",
" <td>284807.0</td>\n",
" <td>7.057397e-13</td>\n",
" <td>0.814041</td>\n",
" <td>-7.213527</td>\n",
" <td>-0.456299</td>\n",
" <td>0.003735</td>\n",
" <td>0.458949</td>\n",
" <td>5.591971</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v20</th>\n",
" <td>284807.0</td>\n",
" <td>1.766111e-12</td>\n",
" <td>0.770925</td>\n",
" <td>-54.497720</td>\n",
" <td>-0.211721</td>\n",
" <td>-0.062481</td>\n",
" <td>0.133041</td>\n",
" <td>39.420904</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v21</th>\n",
" <td>284807.0</td>\n",
" <td>-3.405756e-13</td>\n",
" <td>0.734524</td>\n",
" <td>-34.830382</td>\n",
" <td>-0.228395</td>\n",
" <td>-0.029450</td>\n",
" <td>0.186377</td>\n",
" <td>27.202839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v22</th>\n",
" <td>284807.0</td>\n",
" <td>-5.723197e-13</td>\n",
" <td>0.725702</td>\n",
" <td>-10.933144</td>\n",
" <td>-0.542350</td>\n",
" <td>0.006782</td>\n",
" <td>0.528554</td>\n",
" <td>10.503090</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v23</th>\n",
" <td>284807.0</td>\n",
" <td>-9.725856e-13</td>\n",
" <td>0.624460</td>\n",
" <td>-44.807735</td>\n",
" <td>-0.161846</td>\n",
" <td>-0.011193</td>\n",
" <td>0.147642</td>\n",
" <td>22.528412</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v24</th>\n",
" <td>284807.0</td>\n",
" <td>1.464150e-12</td>\n",
" <td>0.605647</td>\n",
" <td>-2.836627</td>\n",
" <td>-0.354586</td>\n",
" <td>0.040976</td>\n",
" <td>0.439527</td>\n",
" <td>4.584549</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v25</th>\n",
" <td>284807.0</td>\n",
" <td>-6.987102e-13</td>\n",
" <td>0.521278</td>\n",
" <td>-10.295397</td>\n",
" <td>-0.317145</td>\n",
" <td>0.016594</td>\n",
" <td>0.350716</td>\n",
" <td>7.519589</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v26</th>\n",
" <td>284807.0</td>\n",
" <td>-5.617874e-13</td>\n",
" <td>0.482227</td>\n",
" <td>-2.604551</td>\n",
" <td>-0.326984</td>\n",
" <td>-0.052139</td>\n",
" <td>0.240952</td>\n",
" <td>3.517346</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v27</th>\n",
" <td>284807.0</td>\n",
" <td>3.332082e-12</td>\n",
" <td>0.403632</td>\n",
" <td>-22.565679</td>\n",
" <td>-0.070840</td>\n",
" <td>0.001342</td>\n",
" <td>0.091045</td>\n",
" <td>31.612198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v28</th>\n",
" <td>284807.0</td>\n",
" <td>-3.518874e-12</td>\n",
" <td>0.330083</td>\n",
" <td>-15.430084</td>\n",
" <td>-0.052960</td>\n",
" <td>0.011244</td>\n",
" <td>0.078280</td>\n",
" <td>33.847808</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>284807.0</td>\n",
" <td>8.834962e+01</td>\n",
" <td>250.120109</td>\n",
" <td>0.000000</td>\n",
" <td>5.600000</td>\n",
" <td>22.000000</td>\n",
" <td>77.165000</td>\n",
" <td>25691.160000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>284807.0</td>\n",
" <td>1.727486e-03</td>\n",
" <td>0.041527</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% \\\n",
"time 284807.0 9.481386e+04 47488.145955 0.000000 54201.500000 \n",
"v1 284807.0 1.759061e-12 1.958696 -56.407510 -0.920373 \n",
"v2 284807.0 -8.251130e-13 1.651309 -72.715728 -0.598550 \n",
"v3 284807.0 -9.654937e-13 1.516255 -48.325589 -0.890365 \n",
"v4 284807.0 8.321385e-13 1.415869 -5.683171 -0.848640 \n",
"v5 284807.0 1.649999e-13 1.380247 -113.743307 -0.691597 \n",
"v6 284807.0 4.248366e-13 1.332271 -26.160506 -0.768296 \n",
"v7 284807.0 -3.054600e-13 1.237094 -43.557242 -0.554076 \n",
"v8 284807.0 8.777971e-14 1.194353 -73.216718 -0.208630 \n",
"v9 284807.0 -1.179749e-12 1.098632 -13.434066 -0.643098 \n",
"v10 284807.0 7.092545e-13 1.088850 -24.588262 -0.535426 \n",
"v11 284807.0 1.874948e-12 1.020713 -4.797473 -0.762494 \n",
"v12 284807.0 1.053347e-12 0.999201 -18.683715 -0.405571 \n",
"v13 284807.0 7.127611e-13 0.995274 -5.791881 -0.648539 \n",
"v14 284807.0 -1.474791e-13 0.958596 -19.214325 -0.425574 \n",
"v15 284807.0 -5.231558e-13 0.915316 -4.498945 -0.582884 \n",
"v16 284807.0 -2.282250e-13 0.876253 -14.129855 -0.468037 \n",
"v17 284807.0 -6.425436e-13 0.849337 -25.162799 -0.483748 \n",
"v18 284807.0 4.950748e-13 0.838176 -9.498746 -0.498850 \n",
"v19 284807.0 7.057397e-13 0.814041 -7.213527 -0.456299 \n",
"v20 284807.0 1.766111e-12 0.770925 -54.497720 -0.211721 \n",
"v21 284807.0 -3.405756e-13 0.734524 -34.830382 -0.228395 \n",
"v22 284807.0 -5.723197e-13 0.725702 -10.933144 -0.542350 \n",
"v23 284807.0 -9.725856e-13 0.624460 -44.807735 -0.161846 \n",
"v24 284807.0 1.464150e-12 0.605647 -2.836627 -0.354586 \n",
"v25 284807.0 -6.987102e-13 0.521278 -10.295397 -0.317145 \n",
"v26 284807.0 -5.617874e-13 0.482227 -2.604551 -0.326984 \n",
"v27 284807.0 3.332082e-12 0.403632 -22.565679 -0.070840 \n",
"v28 284807.0 -3.518874e-12 0.330083 -15.430084 -0.052960 \n",
"amount 284807.0 8.834962e+01 250.120109 0.000000 5.600000 \n",
"class 284807.0 1.727486e-03 0.041527 0.000000 0.000000 \n",
"\n",
" 50% 75% max \n",
"time 84692.000000 139320.500000 172792.000000 \n",
"v1 0.018109 1.315642 2.454930 \n",
"v2 0.065486 0.803724 22.057729 \n",
"v3 0.179846 1.027196 9.382558 \n",
"v4 -0.019847 0.743341 16.875344 \n",
"v5 -0.054336 0.611926 34.801666 \n",
"v6 -0.274187 0.398565 73.301626 \n",
"v7 0.040103 0.570436 120.589494 \n",
"v8 0.022358 0.327346 20.007208 \n",
"v9 -0.051429 0.597139 15.594995 \n",
"v10 -0.092917 0.453923 23.745136 \n",
"v11 -0.032757 0.739593 12.018913 \n",
"v12 0.140033 0.618238 7.848392 \n",
"v13 -0.013568 0.662505 7.126883 \n",
"v14 0.050601 0.493150 10.526766 \n",
"v15 0.048072 0.648821 8.877742 \n",
"v16 0.066413 0.523296 17.315112 \n",
"v17 -0.065676 0.399675 9.253526 \n",
"v18 -0.003636 0.500807 5.041069 \n",
"v19 0.003735 0.458949 5.591971 \n",
"v20 -0.062481 0.133041 39.420904 \n",
"v21 -0.029450 0.186377 27.202839 \n",
"v22 0.006782 0.528554 10.503090 \n",
"v23 -0.011193 0.147642 22.528412 \n",
"v24 0.040976 0.439527 4.584549 \n",
"v25 0.016594 0.350716 7.519589 \n",
"v26 -0.052139 0.240952 3.517346 \n",
"v27 0.001342 0.091045 31.612198 \n",
"v28 0.011244 0.078280 33.847808 \n",
"amount 22.000000 77.165000 25691.160000 \n",
"class 0.000000 0.000000 1.000000 "
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# summary statistics of all the columns\n",
"num_df.describe().T"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "institutional-filing",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1080x720 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15,10))\n",
"\n",
"plt.subplot(2, 2, 1)\n",
"ax = sns.boxplot(y=df_train[\"amount\"])\n",
"ax.set_xlabel(\"amount\")\n",
"sns.set(style=\"darkgrid\")"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "prime-circuit",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Outliers for the amount are < -209.095 or > 291.86\n"
]
}
],
"source": [
"# calculating outlier space for amount\n",
"\n",
"IQR = df_train[\"amount\"].quantile(0.75) - df_train[\"amount\"].quantile(0.25)\n",
"lf = df_train[\"amount\"].quantile(0.25) - (IQR * 3)\n",
"uf = df_train[\"amount\"].quantile(0.75) + (IQR * 3)\n",
"print('Outliers for the amount are < {lbound} or > {ubound}'.format(\n",
" lbound=lf, \n",
" ubound=uf)\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "anonymous-tourism",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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VeNlibTV1dWKjo5WSMj5vZCQkBD16NFD1dXVPsVYXV2tnj17escxMTGqqam5rN/V0masWUJCLLOoB4BmhYQ4FRV1ldkx2swSxehPgXZValhYV4WEnmOPEYAlnd7/kcLCuqqu7oTZUXxY/kXFMTExqq2tlcvlknT+IpvDhw8rJiamybyqqirvuLq6Wtdcc41fswIArM0SK8Zu3bpp4MCBKiwsVFpamgoLCzVw4ECf06iSlJycrA8++EATJkxQQ0ODioqKtHLlSpNSXznsMaI9uRvPSpKcHUJNToJgdP52je5mx7gslihGSfrtb3+rnJwc/eEPf1DXrl2Vm5srSZo+fbpmzpypwYMHKy0tTX/72980YcIESdKMGTMUGxtrZuzvLTaWm67Rvrw3+Mda6x8vWEV3y/07xpNvLhJoe4xAe8vNfU4SLyqGvVh+jxEAAH+hGAEAMKAYAQAwoBgBADC47KtS3W63vvnmG3k8HsXFxXmfRgMAQDC45Irx17/+z5VqlZWVSktL07333qupU6cqJSVFBw4caNeAAAD40yWLcf369d6fc3NzNWLECP31r3/Vp59+qoSEBL300kvtGhAAAH+6ZDEab3PctWuXZs+eLafTqZCQEM2aNUufffZZuwYE0L727v1Ke/d+pYceyjQ7ChAQ2rTHePDgQXk8HjmdToWG/uexUZ07d9bp06fbLRwAAP52yRXjmTNnNGHCBE2YMEGHDx/W7t27vcf+8Y9/KDo6uj3zAWhHF68SWTUC3/ORcF9//bWOHDmiW2+99UpmMhWPhLO20tLtKinZZnYMy9i796smnw0YMNCEJNaSkDBG8fGJZsfA99DaI+G+10PE+/Xrp379+n2frwAAIKC0acW4e/du7d69W/369VNCQoLPsWXLlikrK6vdAvobK0bYSXOnTt988z0TkgD+9b0eIp6fn6+srCzt2LFDOTk5ysrK0qlTp7zH33jjjSuXFAAAk12yGJctW6Y//vGPev3111VUVKSIiAg98MAD+vbbbyX53s4BAIDVXbIYa2trddNNN0mSQkNDvTf533fffaqvr5fD4Wj3kAAA+MslL77p3r279u3bp759+3o/y87OVufOnZWZmanGxsb2zAcAgF9dcsU4btw4FRYWNvl85syZmjRpks6dO9cuwQAAMEOb72OcP3++UlNTvadVgxVXpcJOuCoVdnVF7mP0eDx67LHH1KVLF6WkpCglJUU//OEPr1hIAAACQZtfVPzss89q+/btmjt3rqqrqzV16lRNmjRJK1asaM98AAD4VZuLUZKcTqfi4+P14osvqrCwUOHh4bx2CgAQVC7rkXCnT5/Wli1btH79eu3cuVPDhw/XggUL2isbAAB+1+ZinDlzpoqLizVo0CDdc889WrBggSIjI9szm9fvfvc7lZeXq1OnTurSpYvmzJmjwYMHN5m3Zs0avfDCC+rVq5ckqXfv3lqyZIlfMgIAgkObi3Hw4MHKyclRz5492zNPsxITE/WrX/1KHTt21NatWzV79mwVFRU1O3fUqFFavHixnxMCAIJFm4tx+vTp7ZmjVbfffrv35yFDhqimpkZut1tO52VtkQIAcEnf67VTZli5cqXGjh3bYinu3LlTaWlpCgsL0/Tp0zV27NjL+v6W7msB7CIq6iqzIwCmCohizMjIUFVVVbPHysrKFBISIklav369CgoKtHLlymbnjh07VnfffbdCQ0P15Zdfavr06Xr77bcVFxfX5izc4A+7q6s7YXYEoN2124uKr5S8vLxLztmyZYteffVVvfXWW+revXuzc4wXAw0aNEjDhg3T3//+98sqRgCAvVlik27r1q168cUXtXz5cvXu3bvFebW1td6fKysrtXv3bg0YMMAfEQEAQSIgVoyX8swzz6hjx46aOXOm97O33npLERERmjNnjsaNG6c77rhDK1eu1EcffeQ99frEE09o0KBBZsUGAFhQmx8ibhfsMcJOeIg47Kq1PUZLnEoFAMBfKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRsDGbrllZKtjwI4oRsDGrr9+kM/4hhtuNCkJEDgoRsDGVq16x2f87rv/Y1ISIHBQjICNuVyNrY4BO6IYARtzOkN8xiEhIS3MBOyjg9kBLiUnJ0dlZWWKiIiQJCUnJ+vRRx9tdu6SJUuUl5cnScrIyNCMGTP8lhOworCwMH377XGfMWB3AV+MkpSVlaX777+/1TmffPKJNm3apMLCQknSlClTNGLECA0fPtwfEQFLMpaiJB0/fryFmYB9BM2p1A0bNig9PV2hoaEKDQ1Venq6NmzYYHYsIKA5HI5Wx4AdWWLFuGLFCq1evVqxsbF68sknFRcX12ROdXW1RowY4R3HxMTok08+uezf1a0bp5JgH6NGjVJpaal3HB8fr6ioq0xMBJjP9GLMyMhQVVVVs8fKyso0e/ZsRUVFyel0Kj8/X9OmTVNRUVG7XSRQX39SbrenXb4bCDSTJ2f6FOPkyZmqqzthYiLAP5xOR4sLIdOL8cLFMi2Jjo72/pyenq4XX3xRNTU16tWrl8+8mJgYn4Ktrq5WTEzMlQ0LBJnw8AjdcstIffrpDg0fPlJXXx1udiTAdAG/x1hbW+v9ubi4WE6n06csL0hOTlZ+fr7Onj2rs2fPKj8/X3fddZc/owKWlJn5gPr3v16ZmT8zOwoQEBwejyegzxs++OCDqq+vl8PhUFhYmJ5++mkNGTJEkjRnzhyNGzdOd9xxhyTptddeU35+vqTzq8vHH3/8sn8fp1IBIPi1dio14IvR3yhGAAh+rRVjwJ9KBdC+DhzYpxkzHtbBg/vNjgIEBIoRsLlly5bozJkzWrr092ZHAQICxQjY2IED+1RVVSlJqqqqZNUIiGIEbG3ZsiU+Y1aNAMUI2NqF1WJLY8COKEbAxqKjfR+Ccc01PBQDoBgBG4uNvdZn3Lv3tS3MBOyDYgRsbM+ev7c6BuyIYgRs7Lbb4iVdeNWU499jwN4oRsDGUlMzdOEVjA6HQxMnTjI3EBAAKEbA5i68nJh3FAPnUYyAjRUU5BmK0aF169aYnAgwH8UI2Fh5ealcLpckyeVyqby89BJ/Agh+FCNgY1x8AzRFMQI2NmbMOEkXXrPm0dixd5gZBwgIFCNgY9u2feyzx/jnP39kciLAfBQjYGPl5aW68K5yj8fDHiMgihGwtdtui/dZMbLHCFCMgK2NGTPOZ8XIHiNAMQK2tnnzRp/xhx9uMCkJEDgoRsDGduwoa3UM2BHFCACAAcUI2NjIkaN8xrfeysU3QAezA1zKgw8+qGPHjkk6/8iqiooKrV27Vtdff73PvB07digrK0t9+/aVJHXq1EkffPCBv+MClvLf//1jlZUV+4wBuwv4Ynzrrbe8PxcVFWnhwoVNSvGCuLg4rVnDQ5CBy+FwOOTxeLy3bQB2Z6lTqX/60580efJks2MAQeP82zXO/zPgcDh5uwYgyeG5cBNTgKurq1NSUpK2bt2qyMjIJsd37NihRx99VH369FGHDh2UmZmpjIwME5IC1nHvvffqzJkz3nHnzp31/vvvm5gIMJ/pp1IzMjJUVVXV7LGysjKFhIRIkvLz8zV69OhmS1GSbrjhBm3btk1XXXWVDh48qJ///OeKjo7WqFGjmp3fkvr6k3K7LfH/CsD3duut8dq+/c9yuRoVEtJBt94ar7q6E2bHAtqd0+lQt25hzR4zvRjz8vLaNG/NmjV6+umnWzweFvafv2BsbKySkpK0a9euyy5GwE5SUzNUUrJNLpfkdDo1ceIksyMBprPEHuOuXbt04sQJJSYmtjjn8OHD3kdbNTQ0qLS0tMWLdACcFx4eoYSEMXI4HEpISNTVV4ebHQkwnekrxrZYs2aN0tPTvadVL1i0aJF69Oihn/zkJ9q8ebNWrVqlDh06yOVyKT09XUlJSSYlBqwjNTVDlZWHWC0C/2aZi2/8hT1GAAh+re0xWuJUKgAA/kIxAgBgQDECAGBAMQIAYEAxAgBgQDECNtfQcEwLFszT8eMNZkcBAgLFCNhcQUGeKir28gBx4N8oRsDGGhqOqaRkmzwej0pKtrNqBEQxArZWUJDnfaCF2+1m1QiIYgRsrby8VC5XoyTJ5WpUeXmpyYkA81GMgI3ddlu8QkLOPzI5JKSDbrst3uREgPkoRsDGUlMz5HQ6JPHaKeACihGwMV47BTRliddOAWg/vHYK8MVrpy7Ca6cAIPjx2ikAANqIYgQAwIBiBADAgGIEAMCAYgQAwIBiBADAgGIEAMAgIIpx7dq1Sk1N1aBBg/Tuu+/6HDtz5oxmzZql8ePHKzk5WVu3bm3xe95//32NHz9eSUlJmjdvntxud3tHBwAEmYAoxoEDB+rVV19VSkpKk2PLly9XWFiYtmzZojfeeEPPPvusTp061WTewYMH9fvf/16rV6/W5s2btX//fq1bt84f8QEAQSQgirF///7q16+fnM6mcTZu3KipU6dKkvr27asbb7xR27dvbzLvww8/VFJSkiIjI+V0OjVlyhRt2LCh3bMDAIJLwD8rtaqqSr169fKOY2JiVFNT02RedXW1evbs6R337NlT1dXVl/37WnpEEBCsjh49qpdeeknZ2dmKiIgwOw5gOr8UY0ZGhqqqqpo9VlZWppCQEH/EaBOelQq7eeedd/Tll19qxYq39dOfPmR2HMAvWntWql+KMS8v7//9Z3v27KnKykpFRkZKOr8yHDlyZJN5MTExPuVbVVWlmJiY//fvBeygoeGYSkq2yePxqKRkuyZOnMSrp2B7AbHH2Jrk5GStXr1akrRv3z59/vnnGj16dJN5d955p4qKinT06FG53W598MEHuuuuu/wdF7CUgoI87xkSt9utdevWmJwIMF9AFGNhYaESExO1adMmLVq0SImJifr6668lSQ8//LC+/fZbjR8/Xr/4xS80b948hYWdX/4uWrRIq1atkiTFxsbqscce07333qsJEyaod+/emjhxoml/J8AKystL5XI1SpJcrkaVl5eanAgwH+9jvAh7jLCTd955U9u3/1kuV6NCQjooMXEs+4ywBd7HCKBZqakZcjodkiSn06mJEyeZnAgwH8UI2Fh4eIQSEsbI4XAoISGRC28AWeA+RgDtKzU1Q5WVh1gtAv/GHuNF2GMEgODHHiMAAG1EMQIAYEAxAgBgQDECAGDAVakXuXBPFwAgeLX2bz1XpQIAYMCpVAAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAwoRgAADChGAAAMKEYAAAx4UTFgQ7m5ufroo49UV1en6OhoPfLII0pPT/ceHzBggDp37iyH4/zLXO+++27Nnz/fpLSAf1GMgA117txZr7/+uq677jp9/vnnmjZtmq699loNGzbMO2ft2rXq06ePiSkBc1CMQJBatmyZ9uzZo8WLF3s/e/755yVJzz77rPezH/3oR7r55pu1e/dun2IE7Io9RiBI3XPPPdq2bZtOnjwpSXK5XNq0aZNSUlJ85p09e1Z79uxRv379fD6/7777FB8fr1/+8pc6dOiQ33IDZqMYgSDVq1cvDRo0SEVFRZKkv/zlLwoNDdWQIUN85s2dO1cDBgzQ6NGjvZ+9++67+vjjj7Vx40b16NFDjzzyiBobG/0ZHzANxQgEsZSUFBUWFkqSCgsLm6wWc3NzVVFRoUWLFnkvtJGk4cOHq1OnTuratavmzJmjQ4cO6ZtvvvFrdsAsFCMQxO666y7t3LlTNTU12rJli1JTU73HFi9erOLiYi1fvlxhYWGtfo/D4ZDH42nvuEBA4OIbIIhFRkZqxIgReuaZZ9S7d2/FxcVJkpYuXarCwkKtXLlSERERPn+moqJCjY2N6t+/v86ePauFCxeqR48e3j8LBDtWjECQS0lJUVlZmc9p1FdeeUVVVVWaMGGChg4dqqFDh+qNN96QJB05ckSzZs3SzTffrKSkJFVWVmrp0qXq2LGjWX8FwK8cHs6PAADgxYoRAAADihEAAAOKEQAAA4oRAAADihEAAAOKEQAAA4oRAAADihEAAIP/A9VNCz2+ynciAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1080x720 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15,10))\n",
"\n",
"plt.subplot(2, 2, 1)\n",
"ax = sns.boxplot(y=df_train[\"v25\"])\n",
"ax.set_xlabel(\"v25\")\n",
"sns.set(style=\"darkgrid\")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "closed-african",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Outliers for the v25 are < -2.3207269050000003 or > 2.3542974140000004\n"
]
}
],
"source": [
"# calculating outlier space for V25\n",
"\n",
"IQR = df_train[\"v25\"].quantile(0.75) - df_train[\"v25\"].quantile(0.25)\n",
"lf = df_train[\"v25\"].quantile(0.25) - (IQR * 3)\n",
"uf = df_train[\"v25\"].quantile(0.75) + (IQR * 3)\n",
"\n",
"print('Outliers for the v25 are < {lbound} or > {ubound}'.format(\n",
" lbound=lf, \n",
" ubound=uf)\n",
" )"
]
},
{
"cell_type": "markdown",
"id": "three-detroit",
"metadata": {},
"source": [
"## Baseline model"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "cardiac-butterfly",
"metadata": {},
"outputs": [],
"source": [
"base = ['amount', 'v13', 'v14', 'v15', 'v16', 'v27']"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "excellent-bidder",
"metadata": {},
"outputs": [],
"source": [
"# isolate the target and filter the features we want to use\n",
"def baseline_model(X):\n",
" target = X[\"class\"]\n",
" X = X[base]\n",
" return X, target"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "seeing-cleanup",
"metadata": {},
"outputs": [],
"source": [
"X, y = baseline_model(df_train.copy())"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "armed-conclusion",
"metadata": {},
"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>amount</th>\n",
" <th>v13</th>\n",
" <th>v14</th>\n",
" <th>v15</th>\n",
" <th>v16</th>\n",
" <th>v27</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>149.62</td>\n",
" <td>-0.991390</td>\n",
" <td>-0.311169</td>\n",
" <td>1.468177</td>\n",
" <td>-0.470401</td>\n",
" <td>0.133558</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.69</td>\n",
" <td>0.489095</td>\n",
" <td>-0.143772</td>\n",
" <td>0.635558</td>\n",
" <td>0.463917</td>\n",
" <td>-0.008983</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>378.66</td>\n",
" <td>0.717293</td>\n",
" <td>-0.165946</td>\n",
" <td>2.345865</td>\n",
" <td>-2.890083</td>\n",
" <td>-0.055353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>123.50</td>\n",
" <td>0.507757</td>\n",
" <td>-0.287924</td>\n",
" <td>-0.631418</td>\n",
" <td>-1.059647</td>\n",
" <td>0.062723</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>69.99</td>\n",
" <td>1.345852</td>\n",
" <td>-1.119670</td>\n",
" <td>0.175121</td>\n",
" <td>-0.451449</td>\n",
" <td>0.219422</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" amount v13 v14 v15 v16 v27\n",
"0 149.62 -0.991390 -0.311169 1.468177 -0.470401 0.133558\n",
"1 2.69 0.489095 -0.143772 0.635558 0.463917 -0.008983\n",
"2 378.66 0.717293 -0.165946 2.345865 -2.890083 -0.055353\n",
"3 123.50 0.507757 -0.287924 -0.631418 -1.059647 0.062723\n",
"4 69.99 1.345852 -1.119670 0.175121 -0.451449 0.219422"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.head()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "deluxe-parliament",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(max_iter=1000)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=1000)</pre></div></div></div></div></div>"
],
"text/plain": [
"LogisticRegression(max_iter=1000)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.linear_model import LogisticRegression\n",
"\n",
"lr_model = LogisticRegression(max_iter=1000)\n",
"lr_model.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "included-distance",
"metadata": {},
"outputs": [],
"source": [
"# Make prediction\n",
"\n",
"lr_base_predicted_labels = lr_model.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "verified-sleep",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 284315\n",
" 1 0.85 0.55 0.67 492\n",
"\n",
" accuracy 1.00 284807\n",
" macro avg 0.92 0.78 0.84 284807\n",
"weighted avg 1.00 1.00 1.00 284807\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix\n",
"\n",
"from sklearn.metrics import confusion_matrix, classification_report\n",
"\n",
"cm = confusion_matrix(y, lr_base_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"\n",
"fig, ax = plt.subplots(1,1)\n",
"\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"\n",
"print(classification_report(y, lr_base_predicted_labels))"
]
},
{
"cell_type": "markdown",
"id": "acquired-tension",
"metadata": {},
"source": [
"## Feature engineering"
]
},
{
"cell_type": "markdown",
"id": "stuck-mainstream",
"metadata": {},
"source": [
"### Feature scaling"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "level-remedy",
"metadata": {},
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>time</th>\n",
" <td>284807.0</td>\n",
" <td>9.481386e+04</td>\n",
" <td>47488.145955</td>\n",
" <td>0.000000</td>\n",
" <td>54201.500000</td>\n",
" <td>84692.000000</td>\n",
" <td>139320.500000</td>\n",
" <td>172792.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v1</th>\n",
" <td>284807.0</td>\n",
" <td>1.759061e-12</td>\n",
" <td>1.958696</td>\n",
" <td>-56.407510</td>\n",
" <td>-0.920373</td>\n",
" <td>0.018109</td>\n",
" <td>1.315642</td>\n",
" <td>2.454930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v2</th>\n",
" <td>284807.0</td>\n",
" <td>-8.251130e-13</td>\n",
" <td>1.651309</td>\n",
" <td>-72.715728</td>\n",
" <td>-0.598550</td>\n",
" <td>0.065486</td>\n",
" <td>0.803724</td>\n",
" <td>22.057729</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v3</th>\n",
" <td>284807.0</td>\n",
" <td>-9.654937e-13</td>\n",
" <td>1.516255</td>\n",
" <td>-48.325589</td>\n",
" <td>-0.890365</td>\n",
" <td>0.179846</td>\n",
" <td>1.027196</td>\n",
" <td>9.382558</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v4</th>\n",
" <td>284807.0</td>\n",
" <td>8.321385e-13</td>\n",
" <td>1.415869</td>\n",
" <td>-5.683171</td>\n",
" <td>-0.848640</td>\n",
" <td>-0.019847</td>\n",
" <td>0.743341</td>\n",
" <td>16.875344</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v5</th>\n",
" <td>284807.0</td>\n",
" <td>1.649999e-13</td>\n",
" <td>1.380247</td>\n",
" <td>-113.743307</td>\n",
" <td>-0.691597</td>\n",
" <td>-0.054336</td>\n",
" <td>0.611926</td>\n",
" <td>34.801666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v6</th>\n",
" <td>284807.0</td>\n",
" <td>4.248366e-13</td>\n",
" <td>1.332271</td>\n",
" <td>-26.160506</td>\n",
" <td>-0.768296</td>\n",
" <td>-0.274187</td>\n",
" <td>0.398565</td>\n",
" <td>73.301626</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v7</th>\n",
" <td>284807.0</td>\n",
" <td>-3.054600e-13</td>\n",
" <td>1.237094</td>\n",
" <td>-43.557242</td>\n",
" <td>-0.554076</td>\n",
" <td>0.040103</td>\n",
" <td>0.570436</td>\n",
" <td>120.589494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v8</th>\n",
" <td>284807.0</td>\n",
" <td>8.777971e-14</td>\n",
" <td>1.194353</td>\n",
" <td>-73.216718</td>\n",
" <td>-0.208630</td>\n",
" <td>0.022358</td>\n",
" <td>0.327346</td>\n",
" <td>20.007208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v9</th>\n",
" <td>284807.0</td>\n",
" <td>-1.179749e-12</td>\n",
" <td>1.098632</td>\n",
" <td>-13.434066</td>\n",
" <td>-0.643098</td>\n",
" <td>-0.051429</td>\n",
" <td>0.597139</td>\n",
" <td>15.594995</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v10</th>\n",
" <td>284807.0</td>\n",
" <td>7.092545e-13</td>\n",
" <td>1.088850</td>\n",
" <td>-24.588262</td>\n",
" <td>-0.535426</td>\n",
" <td>-0.092917</td>\n",
" <td>0.453923</td>\n",
" <td>23.745136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v11</th>\n",
" <td>284807.0</td>\n",
" <td>1.874948e-12</td>\n",
" <td>1.020713</td>\n",
" <td>-4.797473</td>\n",
" <td>-0.762494</td>\n",
" <td>-0.032757</td>\n",
" <td>0.739593</td>\n",
" <td>12.018913</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v12</th>\n",
" <td>284807.0</td>\n",
" <td>1.053347e-12</td>\n",
" <td>0.999201</td>\n",
" <td>-18.683715</td>\n",
" <td>-0.405571</td>\n",
" <td>0.140033</td>\n",
" <td>0.618238</td>\n",
" <td>7.848392</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v13</th>\n",
" <td>284807.0</td>\n",
" <td>7.127611e-13</td>\n",
" <td>0.995274</td>\n",
" <td>-5.791881</td>\n",
" <td>-0.648539</td>\n",
" <td>-0.013568</td>\n",
" <td>0.662505</td>\n",
" <td>7.126883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v14</th>\n",
" <td>284807.0</td>\n",
" <td>-1.474791e-13</td>\n",
" <td>0.958596</td>\n",
" <td>-19.214325</td>\n",
" <td>-0.425574</td>\n",
" <td>0.050601</td>\n",
" <td>0.493150</td>\n",
" <td>10.526766</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v15</th>\n",
" <td>284807.0</td>\n",
" <td>-5.231558e-13</td>\n",
" <td>0.915316</td>\n",
" <td>-4.498945</td>\n",
" <td>-0.582884</td>\n",
" <td>0.048072</td>\n",
" <td>0.648821</td>\n",
" <td>8.877742</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v16</th>\n",
" <td>284807.0</td>\n",
" <td>-2.282250e-13</td>\n",
" <td>0.876253</td>\n",
" <td>-14.129855</td>\n",
" <td>-0.468037</td>\n",
" <td>0.066413</td>\n",
" <td>0.523296</td>\n",
" <td>17.315112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v17</th>\n",
" <td>284807.0</td>\n",
" <td>-6.425436e-13</td>\n",
" <td>0.849337</td>\n",
" <td>-25.162799</td>\n",
" <td>-0.483748</td>\n",
" <td>-0.065676</td>\n",
" <td>0.399675</td>\n",
" <td>9.253526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v18</th>\n",
" <td>284807.0</td>\n",
" <td>4.950748e-13</td>\n",
" <td>0.838176</td>\n",
" <td>-9.498746</td>\n",
" <td>-0.498850</td>\n",
" <td>-0.003636</td>\n",
" <td>0.500807</td>\n",
" <td>5.041069</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v19</th>\n",
" <td>284807.0</td>\n",
" <td>7.057397e-13</td>\n",
" <td>0.814041</td>\n",
" <td>-7.213527</td>\n",
" <td>-0.456299</td>\n",
" <td>0.003735</td>\n",
" <td>0.458949</td>\n",
" <td>5.591971</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v20</th>\n",
" <td>284807.0</td>\n",
" <td>1.766111e-12</td>\n",
" <td>0.770925</td>\n",
" <td>-54.497720</td>\n",
" <td>-0.211721</td>\n",
" <td>-0.062481</td>\n",
" <td>0.133041</td>\n",
" <td>39.420904</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v21</th>\n",
" <td>284807.0</td>\n",
" <td>-3.405756e-13</td>\n",
" <td>0.734524</td>\n",
" <td>-34.830382</td>\n",
" <td>-0.228395</td>\n",
" <td>-0.029450</td>\n",
" <td>0.186377</td>\n",
" <td>27.202839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v22</th>\n",
" <td>284807.0</td>\n",
" <td>-5.723197e-13</td>\n",
" <td>0.725702</td>\n",
" <td>-10.933144</td>\n",
" <td>-0.542350</td>\n",
" <td>0.006782</td>\n",
" <td>0.528554</td>\n",
" <td>10.503090</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v23</th>\n",
" <td>284807.0</td>\n",
" <td>-9.725856e-13</td>\n",
" <td>0.624460</td>\n",
" <td>-44.807735</td>\n",
" <td>-0.161846</td>\n",
" <td>-0.011193</td>\n",
" <td>0.147642</td>\n",
" <td>22.528412</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v24</th>\n",
" <td>284807.0</td>\n",
" <td>1.464150e-12</td>\n",
" <td>0.605647</td>\n",
" <td>-2.836627</td>\n",
" <td>-0.354586</td>\n",
" <td>0.040976</td>\n",
" <td>0.439527</td>\n",
" <td>4.584549</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v25</th>\n",
" <td>284807.0</td>\n",
" <td>-6.987102e-13</td>\n",
" <td>0.521278</td>\n",
" <td>-10.295397</td>\n",
" <td>-0.317145</td>\n",
" <td>0.016594</td>\n",
" <td>0.350716</td>\n",
" <td>7.519589</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v26</th>\n",
" <td>284807.0</td>\n",
" <td>-5.617874e-13</td>\n",
" <td>0.482227</td>\n",
" <td>-2.604551</td>\n",
" <td>-0.326984</td>\n",
" <td>-0.052139</td>\n",
" <td>0.240952</td>\n",
" <td>3.517346</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v27</th>\n",
" <td>284807.0</td>\n",
" <td>3.332082e-12</td>\n",
" <td>0.403632</td>\n",
" <td>-22.565679</td>\n",
" <td>-0.070840</td>\n",
" <td>0.001342</td>\n",
" <td>0.091045</td>\n",
" <td>31.612198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v28</th>\n",
" <td>284807.0</td>\n",
" <td>-3.518874e-12</td>\n",
" <td>0.330083</td>\n",
" <td>-15.430084</td>\n",
" <td>-0.052960</td>\n",
" <td>0.011244</td>\n",
" <td>0.078280</td>\n",
" <td>33.847808</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>284807.0</td>\n",
" <td>8.834962e+01</td>\n",
" <td>250.120109</td>\n",
" <td>0.000000</td>\n",
" <td>5.600000</td>\n",
" <td>22.000000</td>\n",
" <td>77.165000</td>\n",
" <td>25691.160000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>284807.0</td>\n",
" <td>1.727486e-03</td>\n",
" <td>0.041527</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% \\\n",
"time 284807.0 9.481386e+04 47488.145955 0.000000 54201.500000 \n",
"v1 284807.0 1.759061e-12 1.958696 -56.407510 -0.920373 \n",
"v2 284807.0 -8.251130e-13 1.651309 -72.715728 -0.598550 \n",
"v3 284807.0 -9.654937e-13 1.516255 -48.325589 -0.890365 \n",
"v4 284807.0 8.321385e-13 1.415869 -5.683171 -0.848640 \n",
"v5 284807.0 1.649999e-13 1.380247 -113.743307 -0.691597 \n",
"v6 284807.0 4.248366e-13 1.332271 -26.160506 -0.768296 \n",
"v7 284807.0 -3.054600e-13 1.237094 -43.557242 -0.554076 \n",
"v8 284807.0 8.777971e-14 1.194353 -73.216718 -0.208630 \n",
"v9 284807.0 -1.179749e-12 1.098632 -13.434066 -0.643098 \n",
"v10 284807.0 7.092545e-13 1.088850 -24.588262 -0.535426 \n",
"v11 284807.0 1.874948e-12 1.020713 -4.797473 -0.762494 \n",
"v12 284807.0 1.053347e-12 0.999201 -18.683715 -0.405571 \n",
"v13 284807.0 7.127611e-13 0.995274 -5.791881 -0.648539 \n",
"v14 284807.0 -1.474791e-13 0.958596 -19.214325 -0.425574 \n",
"v15 284807.0 -5.231558e-13 0.915316 -4.498945 -0.582884 \n",
"v16 284807.0 -2.282250e-13 0.876253 -14.129855 -0.468037 \n",
"v17 284807.0 -6.425436e-13 0.849337 -25.162799 -0.483748 \n",
"v18 284807.0 4.950748e-13 0.838176 -9.498746 -0.498850 \n",
"v19 284807.0 7.057397e-13 0.814041 -7.213527 -0.456299 \n",
"v20 284807.0 1.766111e-12 0.770925 -54.497720 -0.211721 \n",
"v21 284807.0 -3.405756e-13 0.734524 -34.830382 -0.228395 \n",
"v22 284807.0 -5.723197e-13 0.725702 -10.933144 -0.542350 \n",
"v23 284807.0 -9.725856e-13 0.624460 -44.807735 -0.161846 \n",
"v24 284807.0 1.464150e-12 0.605647 -2.836627 -0.354586 \n",
"v25 284807.0 -6.987102e-13 0.521278 -10.295397 -0.317145 \n",
"v26 284807.0 -5.617874e-13 0.482227 -2.604551 -0.326984 \n",
"v27 284807.0 3.332082e-12 0.403632 -22.565679 -0.070840 \n",
"v28 284807.0 -3.518874e-12 0.330083 -15.430084 -0.052960 \n",
"amount 284807.0 8.834962e+01 250.120109 0.000000 5.600000 \n",
"class 284807.0 1.727486e-03 0.041527 0.000000 0.000000 \n",
"\n",
" 50% 75% max \n",
"time 84692.000000 139320.500000 172792.000000 \n",
"v1 0.018109 1.315642 2.454930 \n",
"v2 0.065486 0.803724 22.057729 \n",
"v3 0.179846 1.027196 9.382558 \n",
"v4 -0.019847 0.743341 16.875344 \n",
"v5 -0.054336 0.611926 34.801666 \n",
"v6 -0.274187 0.398565 73.301626 \n",
"v7 0.040103 0.570436 120.589494 \n",
"v8 0.022358 0.327346 20.007208 \n",
"v9 -0.051429 0.597139 15.594995 \n",
"v10 -0.092917 0.453923 23.745136 \n",
"v11 -0.032757 0.739593 12.018913 \n",
"v12 0.140033 0.618238 7.848392 \n",
"v13 -0.013568 0.662505 7.126883 \n",
"v14 0.050601 0.493150 10.526766 \n",
"v15 0.048072 0.648821 8.877742 \n",
"v16 0.066413 0.523296 17.315112 \n",
"v17 -0.065676 0.399675 9.253526 \n",
"v18 -0.003636 0.500807 5.041069 \n",
"v19 0.003735 0.458949 5.591971 \n",
"v20 -0.062481 0.133041 39.420904 \n",
"v21 -0.029450 0.186377 27.202839 \n",
"v22 0.006782 0.528554 10.503090 \n",
"v23 -0.011193 0.147642 22.528412 \n",
"v24 0.040976 0.439527 4.584549 \n",
"v25 0.016594 0.350716 7.519589 \n",
"v26 -0.052139 0.240952 3.517346 \n",
"v27 0.001342 0.091045 31.612198 \n",
"v28 0.011244 0.078280 33.847808 \n",
"amount 22.000000 77.165000 25691.160000 \n",
"class 0.000000 0.000000 1.000000 "
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train.describe().T"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "extra-sweden",
"metadata": {},
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>284807.0</td>\n",
" <td>-3.065637e-16</td>\n",
" <td>1.000002</td>\n",
" <td>-1.996583</td>\n",
" <td>-0.855212</td>\n",
" <td>-0.213145</td>\n",
" <td>0.937217</td>\n",
" <td>1.642058</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>284807.0</td>\n",
" <td>2.594615e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-28.798555</td>\n",
" <td>-0.469892</td>\n",
" <td>0.009245</td>\n",
" <td>0.671694</td>\n",
" <td>1.253351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>284807.0</td>\n",
" <td>-3.991715e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-44.035292</td>\n",
" <td>-0.362471</td>\n",
" <td>0.039657</td>\n",
" <td>0.486720</td>\n",
" <td>13.357750</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>284807.0</td>\n",
" <td>-7.025418e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-31.871733</td>\n",
" <td>-0.587214</td>\n",
" <td>0.118612</td>\n",
" <td>0.677457</td>\n",
" <td>6.187993</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>284807.0</td>\n",
" <td>-3.991715e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-4.013919</td>\n",
" <td>-0.599379</td>\n",
" <td>-0.014017</td>\n",
" <td>0.525008</td>\n",
" <td>11.918743</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>284807.0</td>\n",
" <td>3.033703e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-82.408097</td>\n",
" <td>-0.501069</td>\n",
" <td>-0.039367</td>\n",
" <td>0.443346</td>\n",
" <td>25.214135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>284807.0</td>\n",
" <td>1.197515e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-19.636058</td>\n",
" <td>-0.576682</td>\n",
" <td>-0.205805</td>\n",
" <td>0.299163</td>\n",
" <td>55.020149</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>284807.0</td>\n",
" <td>5.189230e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-35.209396</td>\n",
" <td>-0.447886</td>\n",
" <td>0.032417</td>\n",
" <td>0.461111</td>\n",
" <td>97.478239</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>284807.0</td>\n",
" <td>-4.291094e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-61.302524</td>\n",
" <td>-0.174680</td>\n",
" <td>0.018720</td>\n",
" <td>0.274078</td>\n",
" <td>16.751534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>284807.0</td>\n",
" <td>-2.020806e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-12.228015</td>\n",
" <td>-0.585363</td>\n",
" <td>-0.046812</td>\n",
" <td>0.543531</td>\n",
" <td>14.194945</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>284807.0</td>\n",
" <td>1.886085e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-22.581908</td>\n",
" <td>-0.491736</td>\n",
" <td>-0.085336</td>\n",
" <td>0.416884</td>\n",
" <td>21.807579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>284807.0</td>\n",
" <td>3.512709e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-4.700128</td>\n",
" <td>-0.747022</td>\n",
" <td>-0.032093</td>\n",
" <td>0.724586</td>\n",
" <td>11.775038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>284807.0</td>\n",
" <td>-2.075692e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-18.698680</td>\n",
" <td>-0.405896</td>\n",
" <td>0.140145</td>\n",
" <td>0.618733</td>\n",
" <td>7.854679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>284807.0</td>\n",
" <td>-2.065713e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-5.819392</td>\n",
" <td>-0.651620</td>\n",
" <td>-0.013633</td>\n",
" <td>0.665652</td>\n",
" <td>7.160735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>284807.0</td>\n",
" <td>9.580116e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-20.044280</td>\n",
" <td>-0.443957</td>\n",
" <td>0.052787</td>\n",
" <td>0.514451</td>\n",
" <td>10.981465</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>284807.0</td>\n",
" <td>-3.033703e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-4.915191</td>\n",
" <td>-0.636813</td>\n",
" <td>0.052519</td>\n",
" <td>0.708850</td>\n",
" <td>9.699117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>284807.0</td>\n",
" <td>1.806251e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-16.125344</td>\n",
" <td>-0.534135</td>\n",
" <td>0.075793</td>\n",
" <td>0.597199</td>\n",
" <td>19.760439</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>284807.0</td>\n",
" <td>4.331011e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-29.626452</td>\n",
" <td>-0.569561</td>\n",
" <td>-0.077326</td>\n",
" <td>0.470574</td>\n",
" <td>10.895018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>284807.0</td>\n",
" <td>-1.676520e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-11.332656</td>\n",
" <td>-0.595162</td>\n",
" <td>-0.004338</td>\n",
" <td>0.597497</td>\n",
" <td>6.014342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>284807.0</td>\n",
" <td>1.771324e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-8.861402</td>\n",
" <td>-0.560537</td>\n",
" <td>0.004588</td>\n",
" <td>0.563793</td>\n",
" <td>6.869414</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>284807.0</td>\n",
" <td>-1.896065e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-70.691461</td>\n",
" <td>-0.274633</td>\n",
" <td>-0.081047</td>\n",
" <td>0.172573</td>\n",
" <td>51.134640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>284807.0</td>\n",
" <td>8.482394e-19</td>\n",
" <td>1.000002</td>\n",
" <td>-47.419067</td>\n",
" <td>-0.310943</td>\n",
" <td>-0.040094</td>\n",
" <td>0.253739</td>\n",
" <td>37.034714</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>284807.0</td>\n",
" <td>1.995858e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-15.065646</td>\n",
" <td>-0.747348</td>\n",
" <td>0.009345</td>\n",
" <td>0.728336</td>\n",
" <td>14.473041</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>284807.0</td>\n",
" <td>-3.592544e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-71.754464</td>\n",
" <td>-0.259178</td>\n",
" <td>-0.017924</td>\n",
" <td>0.236432</td>\n",
" <td>36.076675</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>284807.0</td>\n",
" <td>-1.456976e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-4.683638</td>\n",
" <td>-0.585468</td>\n",
" <td>0.067657</td>\n",
" <td>0.725715</td>\n",
" <td>7.569684</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>284807.0</td>\n",
" <td>-1.357183e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-19.750332</td>\n",
" <td>-0.608400</td>\n",
" <td>0.031832</td>\n",
" <td>0.672801</td>\n",
" <td>14.425318</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>284807.0</td>\n",
" <td>-9.692383e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-5.401098</td>\n",
" <td>-0.678072</td>\n",
" <td>-0.108122</td>\n",
" <td>0.499666</td>\n",
" <td>7.293975</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>284807.0</td>\n",
" <td>2.544718e-18</td>\n",
" <td>1.000002</td>\n",
" <td>-55.906596</td>\n",
" <td>-0.175505</td>\n",
" <td>0.003325</td>\n",
" <td>0.225565</td>\n",
" <td>78.319397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>284807.0</td>\n",
" <td>9.979288e-19</td>\n",
" <td>1.000002</td>\n",
" <td>-46.746117</td>\n",
" <td>-0.160444</td>\n",
" <td>0.034064</td>\n",
" <td>0.237153</td>\n",
" <td>102.543421</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>284807.0</td>\n",
" <td>2.913952e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-0.353229</td>\n",
" <td>-0.330840</td>\n",
" <td>-0.265271</td>\n",
" <td>-0.044717</td>\n",
" <td>102.362243</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>284807.0</td>\n",
" <td>-1.197515e-17</td>\n",
" <td>1.000002</td>\n",
" <td>-0.041599</td>\n",
" <td>-0.041599</td>\n",
" <td>-0.041599</td>\n",
" <td>-0.041599</td>\n",
" <td>24.039052</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% 50% 75% \\\n",
"0 284807.0 -3.065637e-16 1.000002 -1.996583 -0.855212 -0.213145 0.937217 \n",
"1 284807.0 2.594615e-18 1.000002 -28.798555 -0.469892 0.009245 0.671694 \n",
"2 284807.0 -3.991715e-18 1.000002 -44.035292 -0.362471 0.039657 0.486720 \n",
"3 284807.0 -7.025418e-17 1.000002 -31.871733 -0.587214 0.118612 0.677457 \n",
"4 284807.0 -3.991715e-18 1.000002 -4.013919 -0.599379 -0.014017 0.525008 \n",
"5 284807.0 3.033703e-17 1.000002 -82.408097 -0.501069 -0.039367 0.443346 \n",
"6 284807.0 1.197515e-18 1.000002 -19.636058 -0.576682 -0.205805 0.299163 \n",
"7 284807.0 5.189230e-18 1.000002 -35.209396 -0.447886 0.032417 0.461111 \n",
"8 284807.0 -4.291094e-18 1.000002 -61.302524 -0.174680 0.018720 0.274078 \n",
"9 284807.0 -2.020806e-18 1.000002 -12.228015 -0.585363 -0.046812 0.543531 \n",
"10 284807.0 1.886085e-17 1.000002 -22.581908 -0.491736 -0.085336 0.416884 \n",
"11 284807.0 3.512709e-17 1.000002 -4.700128 -0.747022 -0.032093 0.724586 \n",
"12 284807.0 -2.075692e-17 1.000002 -18.698680 -0.405896 0.140145 0.618733 \n",
"13 284807.0 -2.065713e-17 1.000002 -5.819392 -0.651620 -0.013633 0.665652 \n",
"14 284807.0 9.580116e-18 1.000002 -20.044280 -0.443957 0.052787 0.514451 \n",
"15 284807.0 -3.033703e-17 1.000002 -4.915191 -0.636813 0.052519 0.708850 \n",
"16 284807.0 1.806251e-17 1.000002 -16.125344 -0.534135 0.075793 0.597199 \n",
"17 284807.0 4.331011e-17 1.000002 -29.626452 -0.569561 -0.077326 0.470574 \n",
"18 284807.0 -1.676520e-17 1.000002 -11.332656 -0.595162 -0.004338 0.597497 \n",
"19 284807.0 1.771324e-17 1.000002 -8.861402 -0.560537 0.004588 0.563793 \n",
"20 284807.0 -1.896065e-18 1.000002 -70.691461 -0.274633 -0.081047 0.172573 \n",
"21 284807.0 8.482394e-19 1.000002 -47.419067 -0.310943 -0.040094 0.253739 \n",
"22 284807.0 1.995858e-18 1.000002 -15.065646 -0.747348 0.009345 0.728336 \n",
"23 284807.0 -3.592544e-18 1.000002 -71.754464 -0.259178 -0.017924 0.236432 \n",
"24 284807.0 -1.456976e-17 1.000002 -4.683638 -0.585468 0.067657 0.725715 \n",
"25 284807.0 -1.357183e-17 1.000002 -19.750332 -0.608400 0.031832 0.672801 \n",
"26 284807.0 -9.692383e-18 1.000002 -5.401098 -0.678072 -0.108122 0.499666 \n",
"27 284807.0 2.544718e-18 1.000002 -55.906596 -0.175505 0.003325 0.225565 \n",
"28 284807.0 9.979288e-19 1.000002 -46.746117 -0.160444 0.034064 0.237153 \n",
"29 284807.0 2.913952e-17 1.000002 -0.353229 -0.330840 -0.265271 -0.044717 \n",
"30 284807.0 -1.197515e-17 1.000002 -0.041599 -0.041599 -0.041599 -0.041599 \n",
"\n",
" max \n",
"0 1.642058 \n",
"1 1.253351 \n",
"2 13.357750 \n",
"3 6.187993 \n",
"4 11.918743 \n",
"5 25.214135 \n",
"6 55.020149 \n",
"7 97.478239 \n",
"8 16.751534 \n",
"9 14.194945 \n",
"10 21.807579 \n",
"11 11.775038 \n",
"12 7.854679 \n",
"13 7.160735 \n",
"14 10.981465 \n",
"15 9.699117 \n",
"16 19.760439 \n",
"17 10.895018 \n",
"18 6.014342 \n",
"19 6.869414 \n",
"20 51.134640 \n",
"21 37.034714 \n",
"22 14.473041 \n",
"23 36.076675 \n",
"24 7.569684 \n",
"25 14.425318 \n",
"26 7.293975 \n",
"27 78.319397 \n",
"28 102.543421 \n",
"29 102.362243 \n",
"30 24.039052 "
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.preprocessing import StandardScaler, MinMaxScaler\n",
"\n",
"pd.DataFrame( # mean of 0 and std of 1 but ranges are different (see min and max)\n",
" StandardScaler().fit_transform(df_train),\n",
").describe().T"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "russian-intranet",
"metadata": {},
"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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>284807.0</td>\n",
" <td>0.548717</td>\n",
" <td>0.274828</td>\n",
" <td>0.0</td>\n",
" <td>0.313681</td>\n",
" <td>0.490138</td>\n",
" <td>0.806290</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>284807.0</td>\n",
" <td>0.958294</td>\n",
" <td>0.033276</td>\n",
" <td>0.0</td>\n",
" <td>0.942658</td>\n",
" <td>0.958601</td>\n",
" <td>0.980645</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>284807.0</td>\n",
" <td>0.767258</td>\n",
" <td>0.017424</td>\n",
" <td>0.0</td>\n",
" <td>0.760943</td>\n",
" <td>0.767949</td>\n",
" <td>0.775739</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>284807.0</td>\n",
" <td>0.837414</td>\n",
" <td>0.026275</td>\n",
" <td>0.0</td>\n",
" <td>0.821985</td>\n",
" <td>0.840530</td>\n",
" <td>0.855213</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>284807.0</td>\n",
" <td>0.251930</td>\n",
" <td>0.062764</td>\n",
" <td>0.0</td>\n",
" <td>0.214311</td>\n",
" <td>0.251050</td>\n",
" <td>0.284882</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>284807.0</td>\n",
" <td>0.765716</td>\n",
" <td>0.009292</td>\n",
" <td>0.0</td>\n",
" <td>0.761060</td>\n",
" <td>0.765351</td>\n",
" <td>0.769836</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>284807.0</td>\n",
" <td>0.263020</td>\n",
" <td>0.013395</td>\n",
" <td>0.0</td>\n",
" <td>0.255295</td>\n",
" <td>0.260263</td>\n",
" <td>0.267027</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>284807.0</td>\n",
" <td>0.265356</td>\n",
" <td>0.007537</td>\n",
" <td>0.0</td>\n",
" <td>0.261980</td>\n",
" <td>0.265600</td>\n",
" <td>0.268831</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>284807.0</td>\n",
" <td>0.785385</td>\n",
" <td>0.012812</td>\n",
" <td>0.0</td>\n",
" <td>0.783148</td>\n",
" <td>0.785625</td>\n",
" <td>0.788897</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>284807.0</td>\n",
" <td>0.462780</td>\n",
" <td>0.037846</td>\n",
" <td>0.0</td>\n",
" <td>0.440626</td>\n",
" <td>0.461008</td>\n",
" <td>0.483350</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>284807.0</td>\n",
" <td>0.508722</td>\n",
" <td>0.022528</td>\n",
" <td>0.0</td>\n",
" <td>0.497644</td>\n",
" <td>0.506800</td>\n",
" <td>0.518113</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>284807.0</td>\n",
" <td>0.285286</td>\n",
" <td>0.060698</td>\n",
" <td>0.0</td>\n",
" <td>0.239943</td>\n",
" <td>0.283338</td>\n",
" <td>0.329266</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>284807.0</td>\n",
" <td>0.704193</td>\n",
" <td>0.037660</td>\n",
" <td>0.0</td>\n",
" <td>0.688907</td>\n",
" <td>0.709471</td>\n",
" <td>0.727494</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>284807.0</td>\n",
" <td>0.448331</td>\n",
" <td>0.077041</td>\n",
" <td>0.0</td>\n",
" <td>0.398130</td>\n",
" <td>0.447281</td>\n",
" <td>0.499613</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>284807.0</td>\n",
" <td>0.646053</td>\n",
" <td>0.032231</td>\n",
" <td>0.0</td>\n",
" <td>0.631744</td>\n",
" <td>0.647755</td>\n",
" <td>0.662635</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>284807.0</td>\n",
" <td>0.336327</td>\n",
" <td>0.068426</td>\n",
" <td>0.0</td>\n",
" <td>0.292753</td>\n",
" <td>0.339921</td>\n",
" <td>0.384831</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>284807.0</td>\n",
" <td>0.449352</td>\n",
" <td>0.027866</td>\n",
" <td>0.0</td>\n",
" <td>0.434468</td>\n",
" <td>0.451464</td>\n",
" <td>0.465994</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>284807.0</td>\n",
" <td>0.731130</td>\n",
" <td>0.024678</td>\n",
" <td>0.0</td>\n",
" <td>0.717074</td>\n",
" <td>0.729221</td>\n",
" <td>0.742743</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>284807.0</td>\n",
" <td>0.653292</td>\n",
" <td>0.057647</td>\n",
" <td>0.0</td>\n",
" <td>0.618983</td>\n",
" <td>0.653042</td>\n",
" <td>0.687736</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>284807.0</td>\n",
" <td>0.563315</td>\n",
" <td>0.063570</td>\n",
" <td>0.0</td>\n",
" <td>0.527682</td>\n",
" <td>0.563606</td>\n",
" <td>0.599155</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>284807.0</td>\n",
" <td>0.580265</td>\n",
" <td>0.008208</td>\n",
" <td>0.0</td>\n",
" <td>0.578011</td>\n",
" <td>0.579600</td>\n",
" <td>0.581682</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>284807.0</td>\n",
" <td>0.561480</td>\n",
" <td>0.011841</td>\n",
" <td>0.0</td>\n",
" <td>0.557798</td>\n",
" <td>0.561005</td>\n",
" <td>0.564484</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>284807.0</td>\n",
" <td>0.510031</td>\n",
" <td>0.033854</td>\n",
" <td>0.0</td>\n",
" <td>0.484730</td>\n",
" <td>0.510347</td>\n",
" <td>0.534688</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>284807.0</td>\n",
" <td>0.665434</td>\n",
" <td>0.009274</td>\n",
" <td>0.0</td>\n",
" <td>0.663030</td>\n",
" <td>0.665267</td>\n",
" <td>0.667626</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>284807.0</td>\n",
" <td>0.382234</td>\n",
" <td>0.081611</td>\n",
" <td>0.0</td>\n",
" <td>0.334454</td>\n",
" <td>0.387756</td>\n",
" <td>0.441460</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>284807.0</td>\n",
" <td>0.577907</td>\n",
" <td>0.029261</td>\n",
" <td>0.0</td>\n",
" <td>0.560104</td>\n",
" <td>0.578838</td>\n",
" <td>0.597593</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>284807.0</td>\n",
" <td>0.425448</td>\n",
" <td>0.078771</td>\n",
" <td>0.0</td>\n",
" <td>0.372036</td>\n",
" <td>0.416932</td>\n",
" <td>0.464807</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>284807.0</td>\n",
" <td>0.416511</td>\n",
" <td>0.007450</td>\n",
" <td>0.0</td>\n",
" <td>0.415203</td>\n",
" <td>0.416536</td>\n",
" <td>0.418191</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>284807.0</td>\n",
" <td>0.313124</td>\n",
" <td>0.006698</td>\n",
" <td>0.0</td>\n",
" <td>0.312049</td>\n",
" <td>0.313352</td>\n",
" <td>0.314712</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>284807.0</td>\n",
" <td>0.003439</td>\n",
" <td>0.009736</td>\n",
" <td>0.0</td>\n",
" <td>0.000218</td>\n",
" <td>0.000856</td>\n",
" <td>0.003004</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>284807.0</td>\n",
" <td>0.001727</td>\n",
" <td>0.041527</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min 25% 50% 75% max\n",
"0 284807.0 0.548717 0.274828 0.0 0.313681 0.490138 0.806290 1.0\n",
"1 284807.0 0.958294 0.033276 0.0 0.942658 0.958601 0.980645 1.0\n",
"2 284807.0 0.767258 0.017424 0.0 0.760943 0.767949 0.775739 1.0\n",
"3 284807.0 0.837414 0.026275 0.0 0.821985 0.840530 0.855213 1.0\n",
"4 284807.0 0.251930 0.062764 0.0 0.214311 0.251050 0.284882 1.0\n",
"5 284807.0 0.765716 0.009292 0.0 0.761060 0.765351 0.769836 1.0\n",
"6 284807.0 0.263020 0.013395 0.0 0.255295 0.260263 0.267027 1.0\n",
"7 284807.0 0.265356 0.007537 0.0 0.261980 0.265600 0.268831 1.0\n",
"8 284807.0 0.785385 0.012812 0.0 0.783148 0.785625 0.788897 1.0\n",
"9 284807.0 0.462780 0.037846 0.0 0.440626 0.461008 0.483350 1.0\n",
"10 284807.0 0.508722 0.022528 0.0 0.497644 0.506800 0.518113 1.0\n",
"11 284807.0 0.285286 0.060698 0.0 0.239943 0.283338 0.329266 1.0\n",
"12 284807.0 0.704193 0.037660 0.0 0.688907 0.709471 0.727494 1.0\n",
"13 284807.0 0.448331 0.077041 0.0 0.398130 0.447281 0.499613 1.0\n",
"14 284807.0 0.646053 0.032231 0.0 0.631744 0.647755 0.662635 1.0\n",
"15 284807.0 0.336327 0.068426 0.0 0.292753 0.339921 0.384831 1.0\n",
"16 284807.0 0.449352 0.027866 0.0 0.434468 0.451464 0.465994 1.0\n",
"17 284807.0 0.731130 0.024678 0.0 0.717074 0.729221 0.742743 1.0\n",
"18 284807.0 0.653292 0.057647 0.0 0.618983 0.653042 0.687736 1.0\n",
"19 284807.0 0.563315 0.063570 0.0 0.527682 0.563606 0.599155 1.0\n",
"20 284807.0 0.580265 0.008208 0.0 0.578011 0.579600 0.581682 1.0\n",
"21 284807.0 0.561480 0.011841 0.0 0.557798 0.561005 0.564484 1.0\n",
"22 284807.0 0.510031 0.033854 0.0 0.484730 0.510347 0.534688 1.0\n",
"23 284807.0 0.665434 0.009274 0.0 0.663030 0.665267 0.667626 1.0\n",
"24 284807.0 0.382234 0.081611 0.0 0.334454 0.387756 0.441460 1.0\n",
"25 284807.0 0.577907 0.029261 0.0 0.560104 0.578838 0.597593 1.0\n",
"26 284807.0 0.425448 0.078771 0.0 0.372036 0.416932 0.464807 1.0\n",
"27 284807.0 0.416511 0.007450 0.0 0.415203 0.416536 0.418191 1.0\n",
"28 284807.0 0.313124 0.006698 0.0 0.312049 0.313352 0.314712 1.0\n",
"29 284807.0 0.003439 0.009736 0.0 0.000218 0.000856 0.003004 1.0\n",
"30 284807.0 0.001727 0.041527 0.0 0.000000 0.000000 0.000000 1.0"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame( # mean and std are different but min and max are 0s and 1s\n",
" MinMaxScaler().fit_transform(df_train),\n",
").describe().T"
]
},
{
"cell_type": "markdown",
"id": "macro-pavilion",
"metadata": {},
"source": [
"**Update the model with the other features**"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "liked-banks",
"metadata": {},
"outputs": [],
"source": [
"# save dataset\n",
"df_train.to_csv('preprocessed_data.csv', index=None)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "incorrect-paragraph",
"metadata": {},
"outputs": [],
"source": [
"new_data = pd.read_csv('./preprocessed_data.csv')"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "continuous-pharmacology",
"metadata": {},
"outputs": [],
"source": [
"def update_model(X):\n",
" target = X[\"class\"]\n",
" X = X.drop([\"class\"], axis=1)\n",
" return X, target"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "compressed-ensemble",
"metadata": {},
"outputs": [],
"source": [
"X, y = update_model(new_data.copy())"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "immediate-conservation",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(max_iter=1000)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=1000)</pre></div></div></div></div></div>"
],
"text/plain": [
"LogisticRegression(max_iter=1000)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lr_model.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "accredited-swedish",
"metadata": {},
"outputs": [],
"source": [
"# Make prediction\n",
"\n",
"lr_base_updated_predicted_labels = lr_model.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "limiting-blood",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 284315\n",
" 1 0.85 0.55 0.67 492\n",
"\n",
" accuracy 1.00 284807\n",
" macro avg 0.92 0.78 0.84 284807\n",
"weighted avg 1.00 1.00 1.00 284807\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix\n",
"\n",
"from sklearn.metrics import confusion_matrix, classification_report\n",
"\n",
"cm = confusion_matrix(y, lr_base_updated_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y, lr_base_predicted_labels))"
]
},
{
"cell_type": "markdown",
"id": "stopped-islam",
"metadata": {},
"source": [
"**Weight of variables**"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "seventh-frost",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['time', 'v1', 'v2', 'v3', 'v4', 'v5', 'v6', 'v7', 'v8', 'v9',\n",
" 'v10', 'v11', 'v12', 'v13', 'v14', 'v15', 'v16', 'v17', 'v18',\n",
" 'v19', 'v20', 'v21', 'v22', 'v23', 'v24', 'v25', 'v26', 'v27',\n",
" 'v28', 'amount'], dtype=object)"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_names = lr_model.feature_names_in_\n",
"feature_names"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "every-conversation",
"metadata": {},
"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>Coefficients</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>v3</th>\n",
" <td>-1.167256</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v15</th>\n",
" <td>-0.897130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v25</th>\n",
" <td>-0.833816</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v14</th>\n",
" <td>-0.793581</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v11</th>\n",
" <td>-0.606635</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v9</th>\n",
" <td>-0.602953</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v17</th>\n",
" <td>-0.515965</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v13</th>\n",
" <td>-0.505511</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v8</th>\n",
" <td>-0.476484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v2</th>\n",
" <td>-0.449773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v10</th>\n",
" <td>-0.413056</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v16</th>\n",
" <td>-0.399403</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v27</th>\n",
" <td>-0.122023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v5</th>\n",
" <td>-0.121882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v6</th>\n",
" <td>-0.077509</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v24</th>\n",
" <td>-0.013119</td>\n",
" </tr>\n",
" <tr>\n",
" <th>amount</th>\n",
" <td>-0.006276</td>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <td>-0.000058</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v19</th>\n",
" <td>0.002891</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v23</th>\n",
" <td>0.049393</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v28</th>\n",
" <td>0.067823</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v18</th>\n",
" <td>0.111300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v26</th>\n",
" <td>0.135808</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v12</th>\n",
" <td>0.144170</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v4</th>\n",
" <td>0.183679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v20</th>\n",
" <td>0.201338</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v1</th>\n",
" <td>0.411559</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v21</th>\n",
" <td>0.615650</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v22</th>\n",
" <td>0.660915</td>\n",
" </tr>\n",
" <tr>\n",
" <th>v7</th>\n",
" <td>0.933920</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Coefficients\n",
"v3 -1.167256\n",
"v15 -0.897130\n",
"v25 -0.833816\n",
"v14 -0.793581\n",
"v11 -0.606635\n",
"v9 -0.602953\n",
"v17 -0.515965\n",
"v13 -0.505511\n",
"v8 -0.476484\n",
"v2 -0.449773\n",
"v10 -0.413056\n",
"v16 -0.399403\n",
"v27 -0.122023\n",
"v5 -0.121882\n",
"v6 -0.077509\n",
"v24 -0.013119\n",
"amount -0.006276\n",
"time -0.000058\n",
"v19 0.002891\n",
"v23 0.049393\n",
"v28 0.067823\n",
"v18 0.111300\n",
"v26 0.135808\n",
"v12 0.144170\n",
"v4 0.183679\n",
"v20 0.201338\n",
"v1 0.411559\n",
"v21 0.615650\n",
"v22 0.660915\n",
"v7 0.933920"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coefficients = pd.DataFrame(\n",
" lr_model.coef_[0],\n",
" columns=[\"Coefficients\"],\n",
" index=feature_names,\n",
")\n",
"\n",
"coefficients.sort_values(by=['Coefficients'])"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "accredited-bride",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEcCAYAAAAhoQi5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAhdUlEQVR4nO3de1SUdf4H8PfMgBiCKYQ2JGXaRTTpsiSl5GKCiIIwbZqZtYcy1sCwtBL9KZWYiasZ2XFNN7ssaYqhKBGS5hJiaXTVvJRu5oWLLEQCAjrM9/dHh1mGGXRGZuCZ+b5f53AOPHye7/OZ+QLv4fs8M6MSQggQEZGU1F3dABERdR2GABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxOwWAunp6bj//vtx66234qeffrJY09zcjJdffhnh4eGIiIhAVlaWvQ5PRERXwM1eA40ePRqPPfYYHnnkkXZrtm/fjpMnT6KgoAA1NTWIi4vDvffei379+ll9nN9+q4fBYPrUBl9fL1RV1Vm1vxJqldKHEmqV0oez1SqlDyXUKqUPJdRaqlerVejdu0e79XYLgeDg4MvW5OXlYeLEiVCr1fDx8UF4eDjy8/Mxbdo0q49jMAizEGjZbssYXV2rlD6UUKuUPpytVil9KKFWKX0oodbW+k49J1BWVgZ/f3/j11qtFuXl5Z3ZAhERtWK3/wQ6i6+vl8Xtfn7eVo+hhFql9KGEWqX04Wy1SulDCbVK6UMJtbbWd2oIaLValJaWIigoCID5fwbWqKqqM/tXx8/PG5WVtVbtr4RapfShhFql9OFstUrpQwm1SulDCbWW6tVqVbsPnoFOXg4aO3YssrKyYDAYUF1djZ07dyIyMrIzWyAiolbsFgKLFi3CyJEjUV5ejvj4eIwfPx4A8OSTT+LAgQMAgNjYWPTr1w9jxozBpEmTkJSUhICAAHu1QERENrLbctD8+fMxf/58s+1r1641fq7RaPDyyy/b65BERNRBfMYwEZHEnO7qIOoY755XobvH/6a95SqCxiY9as81dFVbRNRFGAKS6e7hhpjZOWbbty+PhfXXHxCRq+ByEBGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDG3rm6AiKiFd8+r0N3jjz9Lfn7eAIDGJj1qzzV0ZVsujSFARIrR3cMNMbNzTLZtXx6L2i7qRwZcDiIikhhDgIhIYlwOIiKHab3GD3CdX4kYAkTkMJbW+AGu8ysJl4OIiCTGECAikhhDgIhIYgwBIiKJMQSIiCRmt6uDfvnlF6SkpKCmpga9evVCeno6+vfvb1KzcuVKrF+/Hn369AEA3HXXXXjxxRft1QIREdnIbiHw4osvYsqUKYiNjUVOTg5SU1Px/vvvm9XFxcVhzpw59josERF1gF2Wg6qqqnDo0CFER0cDAKKjo3Ho0CFUV1fbY3giInIQu4RAWVkZ+vbtC41GAwDQaDTo06cPysrKzGo//vhjxMTE4PHHH8e3335rj8MTEdEV6tRnDE+ePBnTp0+Hu7s7iouLkZiYiLy8PPTu3dvqMXx9vSxub3k6ujWUUKukPqzdz9XvC2erVUofjvp5s7VWCbdPCbW21tslBLRaLSoqKtDc3AyNRoPm5macPXsWWq22TWN+xs9HjBgBrVaLn3/+GcOGDbP6WFVVdTAYRJtxvVFZad2T0JVQ25V9XOqH43L7udp94cy1SunD3j9v7dVfrh9nuC86o9ZSvVqtavfBM2Cn5SBfX18EBgYiNzcXAJCbm4vAwED4+PiY1FVUVBg/P3z4MM6cOYMbb7zRHi0QEdEVsNty0EsvvYSUlBSsWrUKPXv2RHp6OgDgySefRHJyMoYOHYrXXnsNP/74I9RqNdzd3bF06VKT/w6IiKhz2S0EBg4ciKysLLPta9euNX7eEgxERKQMfMYwEZHEGAJERBJjCBARSUyKdxbjW9wREVkmRQjwLe6IiCzjchARkcQYAkREEmMIEBFJjCFARCQxhgARkcQYAkREEmMIEBFJjCFARCQxhgARkcQYAkREEmMIEBFJjCFARCQxhgARkcQYAkREEmMIEBFJjCFARCQxhgARkcQYAkREEpPi7SWJyH74nt2uhSFARDbhe3a7FoZAJ7L0CIqPnoioKzEEOpGlR1B89EREXYknhomIJMYQICKSGJeDyKXwyhXqTK7w88YQIJfCK1eoM7nCzxuXg4iIJMb/BIhclCssVZDjMQSIXJQrLFWQ43E5iIhIYgwBIiKJcTmIiEiBWp/TceT5HIYAETklV38trs56mRm7hcAvv/yClJQU1NTUoFevXkhPT0f//v1Napqbm7Fo0SIUFRVBpVIhISEBEydOtFcLRCQRvhaXfdjtnMCLL76IKVOmYMeOHZgyZQpSU1PNarZv346TJ0+ioKAAGzduxMqVK3H69Gl7tUBERDaySwhUVVXh0KFDiI6OBgBER0fj0KFDqK6uNqnLy8vDxIkToVar4ePjg/DwcOTn59ujBSIiugJ2CYGysjL07dsXGo0GAKDRaNCnTx+UlZWZ1fn7+xu/1mq1KC8vt0cLRER0JYQdHDhwQIwbN85kW1RUlDh48KDJtujoaPH9998bv16zZo1IS0uzRwuX1HRBb/V2W2rtMYar9NbZx1Nyb519PHv0ZgtXud86+3hK6a0tu5wY1mq1qKioQHNzMzQaDZqbm3H27FlotVqzutLSUgQFBQEw/8/AGlVVdTAYhMk2Pz9vVFZadzrocrV+ft7tPsvS0n6W6tur7WgftvRgTR9deV84qrbtfva6fa5+XzhzrTX13j2vsrjdYBAdnmtre3DUuIDl29dy29RqFXx9vdrd1y7LQb6+vggMDERubi4AIDc3F4GBgfDx8TGpGzt2LLKysmAwGFBdXY2dO3ciMjLSHi0QEbWr9lwDKitrjX9MWz53lctJLd0+a2+b3a4Oeumll5CZmYnIyEhkZmbi5ZdfBgA8+eSTOHDgAAAgNjYW/fr1w5gxYzBp0iQkJSUhICDAXi0QEZGN7PY8gYEDByIrK8ts+9q1a42fazQaYzgQEVHX42sHERFJjCFARCQxvnaQC2hs0mP78liL24mILoUh4AJqzzUYXy/F1kvriEhuXA4iIpIYQ4CISGIMASIiifGcgEJZOtnLE71EzkupF3AwBBSKJ3uJXItSf6e5HEREJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUnMrasbIJJdY5Me25fHmm0j6gwMAeoS/MP3P7XnGlALwM/PG5WVtV3dDkmGIUBdouUPH8A/fkRdiecEiIgkxv8E2rC0TNGynYjI1XQ4BBoaGjB37lz8+OOP0Gg0mDNnDkaNGmVWt2/fPiQkJKB///4AgG7duiErK6ujh7c7LlMQkUw6HAJvv/02vLy88Omnn+LEiRN45JFHUFBQgB49epjVDhw4ENnZ2R09JBER2UmHQ+CTTz7BkiVLAAD9+/fHbbfdhs8//xxRUVEdbo66FpfGiFxfh0OgtLQU1113nfFrrVaL8vJyi7UnTpyATqeDm5sbpkyZAp1O19HDkwNxaYzI9V02BHQ6HUpLSy1+b+/evVYfaMiQISgsLIS3tzdOnTqF+Ph49O3bF8OHD7e+WwC+vl4Wt/v5eVs9hqNqbd1PCT07433h6HFt3c+etUq5j52t1tFjW7ufM94Xlw2BLVu2XPL7/v7+OHPmDHx8fAAAZWVlCAkJMavz8vrfH++AgACEh4fjm2++sTkEqqrqYDAIk222PEq1d217d7Y1+3VVz46qddR94ahxvXte1e5yV+25Bqt6aK+PK+mZP29XVmvvsW2da0f0cKW1lurValW7D54BOywHjR07Fhs3bsTQoUNx4sQJHDhwAMuXLzerO3v2LPz8/KBSqVBTU4Pi4mLMnDmzo4cnumLOuNzFZ1qTvXU4BJ544gmkpKQgIiICarUaCxcuND7qz8jIQJ8+ffDwww+joKAAGzZsgJubG5qbmxEXF4fw8PAO3wAimThjcJGydTgEPD098cYbb1j8XutH+lOnTsXUqVM7ejgiIrIjvmwEEZHEGAJERBJjCBARSYwhQEQkMYYAEZHE+FLSZDeOuoad18YTOQ5DgOzGUW+TyGvjiRyHy0FERBJjCBARSYwhQEQkMYYAEZHEGAJERBJjCBARSYwhQEQkMYYAEZHEGAJERBJjCBARSYwhQEQkMYYAEZHEGAJERBJjCBARSYwhQEQkMYYAEZHE+KYyRFaw9O5mLduJnBlDgMgKfHczclVcDiIikhhDgIhIYlwOIiJqRbbzPwwBIqJWZDv/w+UgIiKJMQSIiCTGECAikhhDgIhIYjwxTOQAlq4wcdWrS8i5MQSIHKDlChMZri4h58blICIiiTEEiIgkxhAgIpJYh0MgJycHMTExGDx4MDIzMy9Zu2nTJkRERCA8PBwLFy6EwWDo6OGJiKgDOhwCgYGBWLFiBaKjoy9Zd+rUKbz55pvYuHEjCgoK8Ouvv2Lbtm0dPTwREXVAh0PglltuwU033QS1+tJD7dixA+Hh4fDx8YFarcbEiRORl5fX0cMTEVEHdNo5gbKyMvj7+xu/9vf3R1lZWWcdnoiILLjs8wR0Oh1KS0stfm/v3r3QaDR2b+pSfH29LG738/O2egxH1dq6nxJ6VkKtUvpwtlql9KGEWqX0oYRaW+svGwJbtmyx6eDt0Wq1JmFSWloKrVZr8zhVVXUwGITJNluekGPv2vbubGv266qelVSrlD6crVYpfSihVil9KKHWUr1arWr3wTPQictBkZGR2LlzJ6qrq2EwGJCVlYWoqKjOOjwREVnQ4RDIzc3FyJEjkZ+fj4yMDIwcORLHjh0DAGRkZGDDhg0AgICAACQmJmLSpEkYM2YM+vXrhwkTJnT08ERE1AEdfu2g6Ojodi8PnTlzpsnXkydPxuTJkzt6SCIishM+Y5iISGIMASIiiTEEiIgkxhAgIpIYQ4CISGIMASIiiTEEiIgkxhAgIpIYQ4CISGIMASIiiTEEiIgk1uHXDpJdY5Me25fHmm0jInIGDIEOqj3XgFrY/prfRERKwOUgIiKJMQSIiCTGECAikhhDgIhIYgwBIiKJMQSIiCTGECAikpjTPU9ArVbZtF2ptUrpQwm1SunD2WqV0ocSapXShxJq29Zfbl+VEELYNDoREbkMLgcREUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGRxBgCREQSYwgQEUmMIUBEJDGGABGREzt+/LhV29rjtCHwxRdfIDMzEwDw3//+F7/88ovV+3700UcWt5eWluKbb77BhQsXTLYXFxeb1e7evRuFhYUAgJKSEixatAhZWVlWHf9vf/ubVXX/+c9/sHXrVhw5csTse0ePHkV9fT0A4OLFi1i1ahWmT5+O119/HY2NjSa1mZmZqK6utuqYAHD+/Hm8/fbb+PjjjwEA77zzDqZPn47ly5cbj9naDz/8gEWLFiExMRHJycnIyMhAZWWlxbFLSkqQlpaGxMREJCYmIi0tDSUlJVb3BlieP6XNHdA18+fIuSstLcW6devwyiuv4JVXXsG6detw5swZq/pqzdKcXLhwARUVFWbbf/75Z7NtP/30k3H7iRMn8O6772Lv3r1WHTs1NdWqut9//x0lJSWoqqoy+151dbXJz1lOTs4lf4Z2796NixcvWnVcg8GA/Px8fPvttwCAgoICpKWl4cMPP4TBYLC4z3PPPWfVtvY45QvIrVmzBoWFhaisrERBQQHKy8vx7LPPYsOGDVbtHxYWhn//+98m27Zt24bFixfDz88PdXV1eO2113DnnXcCAHQ6HbZs2WKsff3111FcXAy9Xo977rkHBw8exH333YeioiIMGzYMTz/9tLF25syZZsf//PPPMXLkSABARkaGcfvTTz+NlStXAgAKCwvxf//3f7jrrrvw/fffY9asWYiNjTXWxsTE4KOPPkK3bt2Qnp6OM2fOICoqCnv27IHBYMCrr75qrA0KCoJGo8G9996LBx98EGFhYVCr28//WbNmQa/Xo6GhAT179sSFCxcQFRWFoqIiXLx4EcuWLTPWrlu3Djk5Obj77ruxZ88ehISEQK1WY+fOnVi+fDmGDRtmrF21ahXy8/MRFxcHrVYLACgrK8PWrVsRGRmJpKSkdntqre38KWHuAGXMn6PmLisrC2+++SbCw8NN5m7Xrl1ISkrCxIkT25ktc23nb8+ePXj22WcBAAEBAVixYgVuuOEGAObz969//QvvvPMO9Ho9nnjiCeTk5GDo0KHYt28fHn30UTzyyCPG2qVLl5odOysry9jrCy+8YNyelpaGBQsWAAC+++47JCYm4tprr0VpaSn+/ve/47777jPWTpgwAevXr4eXlxf+8Y9/4PPPP8fo0aPxxRdf4JZbbsGcOXNMjhkYGIirr74aMTEx+Mtf/oJBgwa1e98sXLgQBw8ehF6vR2hoKPbv328ce8CAAZg/f76xtrq6GtXV1UhOTsbKlSvR8qe8trYWKSkp2LFjR7vHMSGcUExMjLhw4YKIjY01bouOjjapSU5Otvjx9NNPizvuuMNszAkTJojy8nIhhBBffvmlCAsLE0VFRUIIYXKclmPp9XpRW1srbr/9dvHbb78JIYSor68362P48OFi7ty5Ijs7W2RnZ4uPPvpIhISEGL9urfVxpk6dKg4dOiSEEOL06dNmPYwfP974uU6nExcvXhRCCGEwGERMTIzZuFVVVWLdunUiOjpajBgxQqSnp4tjx46Z3Q8tt08IIZqamsSwYcNEU1OTEEKI5uZms9sXFRUlzp8/L4QQoqqqSsTHxwshhDh8+LDQ6XQmtREREaKxsdHseA0NDSI8PNxkmy3zp4S5a3usrpo/R83dmDFjRFVVldnxqqqqREREhNn29PR0ix9LliwRd911l0ntAw88IA4fPiyEECI7O1uMGjXK+HXb+y0mJkbU19eLyspKERQUJMrKyox9tK29/fbbxezZs8XKlSuNH8HBwcbPW4uLizN+/vjjj4vi4mIhhBCHDh0SDz74oElt6/tRp9OJuro6IYQQFy5cMLuPW27D4cOHRVpamggJCRE6nU5kZmaKc+fOmdWOGzdO6PV6UVdXJ+68805RW1srhPhjPlv/zAghxLvvvitGjRolhgwZIkaNGmX8mDBhgti0aZPZ2O1xyuWg7t27w93d3WSbSmX6mtmFhYUYMWIEwsLCzD66detmNqYQAn379gUAhISEYO3atUhNTcXu3bvNxnZzc4NGo4GXlxeuv/569OrVCwDg6ekJjUZjUrt9+3bU19fjxx9/xNixY/HAAw/A09MTOp0OOp2u3dtQV1eHwMBAAMB1111n1q+Hhwd+/fVXAIC3tzeampoAAHq9Hs3NzWbj+vj4ID4+Htu3b8eqVatQX1+PyZMnY/LkyWZjt95PCGHsS61WGx9ttNBoNLjqqqsAAD179jT++zxo0CCzpZnWY1k6Tmu2zJ8S5q7ldrTo6vmz99wZDAb4+PiYHad3795m4wJ/PGL38PCAp6enyUePHj3M5kSv1xsfHet0OixZsgRPPfUUfvjhB7NatVoNT09PXHPNNQgICMC1114LAPDx8TGrzc7ORkVFBXr06IGkpCTMmDED3t7emDFjBmbMmGHxfgP+WF4ePnw4gD8exbe9LwAYl+c8PT3h4eEBAHB3dzebO+CPuRg0aBDmz5+PoqIiTJs2Dbt378bIkSMxe/Zsk1qNRgONRgNPT09cddVV8PLyAgB069bN7L+/v/71r/jss88wY8YMfPbZZ8aPnJwcm/4zc7o3lQGAa6+9FiUlJVCpVDAYDFi9ejVuvvlmk5rAwEAMGjQIQUFBZvu3/Te+xblz59CzZ08AwE033YR169Zh2rRp+P33303qDAaD8Rds8eLFxu1CCOj1epNaHx8fZGRkYNu2bZg6dSqef/55i38IAeD06dOYOXMmhBCoqKjAhQsXjH/w2o773HPPIT4+HjqdDoMGDUJ8fDzCwsLw5ZdfIi4uzqS27S9pUFAQgoKCMHfuXHz66admfdx666145pln0NjYiNDQUKSkpCAiIgJ79uzBjTfeaFI7ePBgLFiwAKGhodixYwf+9Kc/AQCamprM1kHj4uIwceJExMXFwd/fH8Af68xbt24169nW+evquQOUMX+OmrvQ0FBMmzYNkyZNMpm7TZs2YcSIEWb3xS233ILIyEiLSx9t186bm5vR1NRk/GM6bNgwvPbaa5g5c6YxHFu0XhefNWuWyffa9jxgwAC89957WLNmDR577DG89NJL7c5fRUUFli5dCiEEfv/9dzQ3NxsfFLRdi3/qqafw2GOP4fHHH0dwcDCSk5MRGRmJ4uJi41Jha63nz93dHePGjcO4ceNQXl6OrVu3mtRqtVosXboU9fX1GDhwIBYvXoyYmBgUFRXhmmuusdj79OnT0dDQgPLycpMQuummmyzWt+WU5wQqKysxZ84c7N+/HyqVCsHBwVi2bBl8fX2NNUeOHIGPjw969uyJ7t27m+x/5swZs0dnWVlZ6N+/P4YOHWpSf+rUKSxbtszkD09RURGCg4OhUqlMak+cOIFdu3bhiSeeMOu5sbER586dw4IFC/Ddd99h3759ZjUta58NDQ3w9PREWFgYevXqhYqKCqxfv964btqioqIC69atQ2lpKfR6Pfz9/REdHW1cD2+xfPlyzJ49G42NjWb3hSWNjY3YuHEj1Go1HnroIezduxcffvgh+vXrh6SkJPTu3dtYe/78ebz11lv47rvvEBwcjISEBHh4eKCurg6nT582+yNQUlKCvLw8lJaWAgD8/f0xduxYk/Vn4I/58/X1hZ+fn1l/beevZe7uvvtuk7pLzV3LI+AWl5o74I/7OjU1td25A2Cydg0Ao0aNuuz8rV+/HsePH0dzc/Nl588aLXOnUqkwefJkq+buyJEjGDJkCBISEtC9e3eLc2cwGLBt2zZ88sknZnMXGxtr9ii1uLgY119/PQICAsx6/Prrr42BA/xxruj22283C5MffvgBCxcuxObNm43bsrOzERkZiR49epjUHj9+HJs2bcLcuXMt3i9HjhxBamoqTp06hS+++MLs+2+++abJ1w8//DB8fX1RUVGBFStWYMmSJSbfP3DgAN577z2zuRs/frxZ0MyZMwfp6ekW+2qruroaq1evhkqlQmJiIvLz85GZmYl+/fph3rx5Fu/PDz74AMuWLcPVV19tnAeVSoVdu3ZZdUynDIEWDQ0NMBgMZj8Qrd1zzz0YPXo0dDodgoODLzumLfWuXOvosYk6m16vR2VlpfHEtqsYPXo03n//fYvLjtZwynMCAHDy5El8/fXXKCkpQWFhofGSv7by8/MRGBiIxYsXIzIyEqtXr0Z5eXm741qqt3Tpmq1jO1uto8duq73Ldl2hVil9dLTWlstwba3vjFo3NzdjAHRmD44e28/P74oDAIBzXh2Unp4u7r33XjFlyhQxdepUMXXqVPHoo49edr+jR4+KlJQUMXjwYKuOY0u9K9c6emwhhPjzn//ssrVK6aMjtTk5OSIkJERER0eLsLAw8c033xi/1/rKmiupd+VaR48thBAZGRkiPT1dHDx4UPz888/GD2s55YnhnTt3YteuXWbruu0xGAwoLCzEli1b8NVXX1m8suNK61251t5jW7ruHoDxZJwz1yqlD0fVvv3228jJyUHfvn2xb98+zJo1C2lpaQgNDbV4dZAt9a5c6+ixARhPLufn5xu32XJOwClDQKvVml0i2p5XX30VeXl5uPnmmxEXF4elS5de8uSoLfWuXOuIsQsLCzFv3jyzuRNCmJ1sdbZapfThqFph4TLchIQELFiwwOIVN7bUu3Kto8cGgM8++8zidms5ZQikpKRg+vTpGDFihMk1462fLdiiV69e2LRpk9Ung2ypd+VaR4xty2WfzlarlD4cefusvQz3SupdudbRYx87dszidmsvEXXKcwLPPPOMmDBhgnj++edFSkqK8YOU7fDhw6KiokI0NDSYfe/06dNOXauUPhxVu2nTJrF//36z2pMnT4rk5GSz/W2pd+VaR48thDB5tvCIESPErbfeKkaNGmWx1hKnDIGIiAhhMBi6ug26QiEhIWLevHniq6++crlapfShhFql9KGEWkeP3drevXvFkiVLrK53yucJJCQkYMWKFZd8fgApV01NDXJzc5GdnY36+nrodDrExcUZXwLAmWuV0kdn1up0OuM6dkfqXbnW0WO31faF9y7J5phRgGeffVaMGTNGpKWlmbw4FTkfJVwC64yX1jpbrVL6UEKtvcdufVno0aNHxebNm8W4ceOs6kMIJ71EdMCAARgwYEBXt0EdoIRLYJ3l0lpnrlVKH0qoddTYCQkJxs/d3Nxwww03mL3MxSVZHRdEdrJ48WIRGhoq4uPjRU5OjsUTk85aq5Q+lFCrlD6UUOvosTvCqf4T+OSTTxAVFYUPPvjA4vctXSJKyqOES2Cd6dJaZ61VSh9KqHX02EVFRcZ3VwsNDbX4yq7tcaoTw2+88QaSk5ORlJRkvI62RW1trdkrARIRubp//vOf2Lp1K8aPHw8AyMvLQ1xcXLuviNuWU4VAC0tnvm06G05E5CJiYmKwYcMG4xvQ1NXV4eGHH8b27dut2t+ploP0ej0uXrwIg8GAxsZGk/fUbGho6OLuiIi6RksAtP3cGk4VAqtXrzYu+dxxxx3G7V5eXoiPj++iroiIus5tt92GuXPnGt9ScvPmzbjtttus3t8pl4MWLlyI1NTUrm6DiKjLnT9/HqtWrTKeGB4+fDgSExPh6elp1f5OGQJERGQfTrUcREREphobG5Gbm4uTJ09Cr9cbt7/wwgtW7c8QICJyYjNmzIBarcaQIUNMXlrfWgwBIiInVlZWho8//viK93faN5onIiLg5ptvxtmzZ694f54YJiJyYseOHcO0adMwaNAgeHh4GLdbenc4S7gcRETkxF544QXcf//9GDx4MDQajc37MwSIiJzYxYsXO/S8KZ4TICJyYnfccQeOHj16xfvznAARkROLjY3F8ePHceONN8LDwwNCCKhUKmzevNmq/RkCRERObP/+/WbbVCoV7r77bqv2ZwgQETmx2tparFmzBkeOHEFTU5Nx+/vvv2/V/jwnQETkxObNmweNRoMTJ05g0qRJ0Gg0CAoKsnp/hgARkRP79ddf8cwzz6B79+6Ijo7GW2+9hZKSEqv3ZwgQETmxltcLcnd3R01NDdzd3VFdXW31/nyeABGRE+vfvz9qamoQExODhx56CN7e3hgyZIjV+/PEMBGRiygpKUFtbS3uu+8+uLlZ9xifIUBEJDGeEyAikhhDgIhIYgwBIiKJMQSIiCTGECAiktj/A4sy5RRJFM7JAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axes = coefficients['Coefficients'].plot.bar()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "alternative-statistics",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-3.295466040646744"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# bias\n",
"lr_model.intercept_[0]"
]
},
{
"cell_type": "markdown",
"id": "disciplinary-treaty",
"metadata": {},
"source": [
"## 5. Training other models\n"
]
},
{
"cell_type": "markdown",
"id": "likely-aquarium",
"metadata": {},
"source": [
"**Algorithms to use**\n",
"- Decision tree\n",
"- Naive Bayes\n",
"- Support vector machine (SVM)\n",
"- Random Forest\n",
"- Gradient Boosting"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "junior-honolulu",
"metadata": {},
"outputs": [],
"source": [
"# split the dataset\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(\n",
" X, y, test_size=0.4, random_state=1) # 60/40\n",
"\n",
"X_train, X_val, y_train, y_val = train_test_split(\n",
" X_train, y_train, test_size=0.5, random_state=1) # 20/20"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "protected-sleep",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(max_iter=1000)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(max_iter=1000)</pre></div></div></div></div></div>"
],
"text/plain": [
"LogisticRegression(max_iter=1000)"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Fit again Logistic regression with the split data\n",
"lr_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "special-packet",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier()</pre></div></div></div></div></div>"
],
"text/plain": [
"DecisionTreeClassifier()"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.tree import DecisionTreeClassifier\n",
"\n",
"dt_model = DecisionTreeClassifier()\n",
"dt_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "internal-duncan",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-5 {color: black;background-color: white;}#sk-container-id-5 pre{padding: 0;}#sk-container-id-5 div.sk-toggleable {background-color: white;}#sk-container-id-5 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-5 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-5 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-5 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-5 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-5 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-5 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-5 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-5 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-5 div.sk-item {position: relative;z-index: 1;}#sk-container-id-5 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-5 div.sk-item::before, #sk-container-id-5 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-5 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-5 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-5 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-5 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-5 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-5 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-5 div.sk-label-container {text-align: center;}#sk-container-id-5 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-5 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GaussianNB()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" checked><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GaussianNB</label><div class=\"sk-toggleable__content\"><pre>GaussianNB()</pre></div></div></div></div></div>"
],
"text/plain": [
"GaussianNB()"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.naive_bayes import GaussianNB\n",
"\n",
"nb_model = GaussianNB()\n",
"nb_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "amended-livestock",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-6 {color: black;background-color: white;}#sk-container-id-6 pre{padding: 0;}#sk-container-id-6 div.sk-toggleable {background-color: white;}#sk-container-id-6 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-6 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-6 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-6 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-6 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-6 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-6 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-6 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-6 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-6 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-6 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-6 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-6 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-6 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-6 div.sk-item {position: relative;z-index: 1;}#sk-container-id-6 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-6 div.sk-item::before, #sk-container-id-6 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-6 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-6 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-6 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-6 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-6 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-6 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-6 div.sk-label-container {text-align: center;}#sk-container-id-6 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-6 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-6\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" checked><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC()</pre></div></div></div></div></div>"
],
"text/plain": [
"SVC()"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.svm import SVC\n",
"\n",
"svm_model = SVC()\n",
"svm_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "floral-functionality",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-7 {color: black;background-color: white;}#sk-container-id-7 pre{padding: 0;}#sk-container-id-7 div.sk-toggleable {background-color: white;}#sk-container-id-7 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-7 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-7 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-7 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-7 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-7 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-7 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-7 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-7 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-7 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-7 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-7 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-7 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-7 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-7 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-7 div.sk-item {position: relative;z-index: 1;}#sk-container-id-7 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-7 div.sk-item::before, #sk-container-id-7 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-7 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-7 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-7 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-7 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-7 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-7 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-7 div.sk-label-container {text-align: center;}#sk-container-id-7 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-7 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-7\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" checked><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier()</pre></div></div></div></div></div>"
],
"text/plain": [
"RandomForestClassifier()"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.ensemble import RandomForestClassifier\n",
"\n",
"rf_model = RandomForestClassifier()\n",
"rf_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "olive-milan",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-8 {color: black;background-color: white;}#sk-container-id-8 pre{padding: 0;}#sk-container-id-8 div.sk-toggleable {background-color: white;}#sk-container-id-8 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-8 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-8 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-8 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-8 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-8 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-8 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-8 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-8 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-8 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-8 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-8 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-8 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-8 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-8 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-8 div.sk-item {position: relative;z-index: 1;}#sk-container-id-8 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-8 div.sk-item::before, #sk-container-id-8 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-8 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-8 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-8 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-8 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-8 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-8 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-8 div.sk-label-container {text-align: center;}#sk-container-id-8 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-8 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-8\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GradientBoostingClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GradientBoostingClassifier</label><div class=\"sk-toggleable__content\"><pre>GradientBoostingClassifier()</pre></div></div></div></div></div>"
],
"text/plain": [
"GradientBoostingClassifier()"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.ensemble import GradientBoostingClassifier\n",
"\n",
"gb_model = GradientBoostingClassifier()\n",
"gb_model.fit(X_train, y_train)"
]
},
{
"cell_type": "markdown",
"id": "technical-signature",
"metadata": {},
"source": [
"## 6. Evaluating models"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "celtic-burner",
"metadata": {},
"outputs": [],
"source": [
"# Make prediction on validation data\n",
"\n",
"lr_predicted_labels = lr_model.predict(X_val)\n",
"dt_predicted_labels = dt_model.predict(X_val)\n",
"nb_predicted_labels = dt_model.predict(X_val)\n",
"svm_predicted_labels = svm_model.predict(X_val)\n",
"rf_predicted_labels = rf_model.predict(X_val)\n",
"gb_predicted_labels = gb_model.predict(X_val)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "together-scratch",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Ik7UlSQiIk6UGERExIkSg4iIOFFiEBERJ0oMIiLiRIlBmkxGRgZPP/00AAUFBcTHxzfJdc8//3yKi4sb9Zyn3ktTHivSFJQYxMmQIUPo1asXffv25bLLLiMjI4MjR440+nXi4uLIz8//1f3ee+89brnllka//s/+8Ic/8Pbbb3vs/CItkRKD1PDiiy/y9ddfs3jxYjZt2sTf/va3GvucOHHCC5GJSFNQYhCXIiIiGDRoED/88ANwsktmwYIFDB8+nOHDhwPwwQcfkJiYSFxcHKNHj2bLli2O4wsLC0lKSqJv376MHz+e48ePO+o2bNjAlVde6fhssVhIS0vjkksuYeDAgUybNo2ioiKysrLYuHEjffv2JS4uDoCqqiqys7O56qqruOyyy8jMzKSystJxrrlz53LFFVdwxRVX8M4775z2/f/pT3/i8ssvp1+/ftx6662O7+FnBw8e5M4776Rv377cdttt7N2711FXVFTEnXfeyYABA4iPj2fFihWnHYdIU1NiEJcsFgsfffQRsbGxjrI1a9bw1ltvsWLFCgoLC5k8eTLTpk1jw4YNJCcnM2bMGKqqqqiqqmLs2LEkJiby+eefM2LECFavXl3rdWw2G/feey9dunRh3bp1fPTRR/z+97/nnHPO4dFHH6VPnz58/fXXFBQUADB79mx27NjBkiVLWL16NaWlpcyZMweAjz76iNdee43XXnuN1atX8+mnn572/V955ZXk5+fz6aef0qNHDx588EGn+mXLljFmzBg2bNjABRdc4Kg/evQod911FwkJCfz73//m6aef5tFHH2Xbtm2nHYtIU1JikBrGjh1LXFwcKSkp9O/fn/vuu89Rd8899xASEkKbNm148803SU5Opnfv3phMJpKSkggMDGTjxo188803VFdXk5qaSmBgICNGjOCiiy6q9XrffvstpaWlTJw4kXbt2hEcHOxoHfySYRi89dZbTJ48mZCQENq3b8+9997rmBdo5cqV3HDDDZx33nm0a9eOtLS00/4ebrzxRtq3b09QUBDp6els2bKFQ4cOOeqvuuoq+vfvT1BQEA888AAbN27EYrGwfv16oqKiGDVqFAEBAfTo0YP4+HhWrVp12rGINKUAbwcgzc+cOXO47LLLaq07dXrvffv2sWTJEubPn+8oq66uprS0FD8/PyIiIvDz83PUdenSpdZzWiwWunTpQkDAr/9zLC8v59ixY9xwww2OMsMwsNvtAJSWltKzZ09H3ekudWmz2Xj66adZtWoV5eXl+Puf/Bvq4MGDdOjQAYDOnTs79j/jjDPo2LEjpaWl7N27l2+//dYpudlsNkaOHHlasYg0NSUGqZdTf9FHRkZy3333cf/999fY7/PPP6ekpATDMBzH7Nu3j7PPPrvGvpGRkVgsFk6cOFEjOZx6PYDQ0FDatGnD8uXLiYiIqHGuX65mt2/fvvrd4H8tW7aMtWvXMm/ePKKjozl06BD9+/fn1Dkn9+/f7/j5yJEj/PTTT4SHhxMZGUn//v2ZN2/eaV1bxNvUlSSn7aabbmLRokV88803GIbB0aNHWb9+PYcPH6ZPnz4EBATw+uuvU11dzerVq/nPf/5T63l69erFWWedxZNPPsnRo0c5fvw4X375JXBy/YmSkhKqqqoA8Pf356abbmLGjBmUlZUBUFJSwr/+9S8ARowYweLFi9m2bRvHjh0jJyfnV+/jxIkTHD9+3LFVV1dz5MgRgoKCCA0N5dixYzz11FM1jvvwww8pKCigqqqKZ599lt69exMZGclVV13Fzp07WbJkCdXV1VRXV/Ptt99SVFR0Wt+zSFNTYpDTdtFFFzF9+nSmTZtG//79GT58OO+99x4AQUFBPP/88yxevJgBAwawYsUKhg0bVut5TCYTL774IsXFxfzud7/jyiuvZOXKlQBccsklnHvuuVxxxRUMHDgQgAkTJtC1a1duvvlmLr74Yu644w527NgBwODBg0lNTSU1NZVhw4ZxySWX/Op9TJ06lV69ejm2hx56iOuvv54uXbowaNAgrr32Wvr06VPjuISEBObMmcPAgQP57rvvmDVrFgDt27fn1VdfZcWKFQwaNIgrrriC2bNnO5KbSHOn9RhERMSJWgwiIuJEiUFERJwoMYiIiBMlBhERcaLEICIiTpQYRETEiRKDiIg4UWIQEREnSgwiIuLk/wG37t6oXHjrjwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.84 0.70 0.77 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.92 0.85 0.88 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for logistic reg\n",
"\n",
"cm = confusion_matrix(y_val, lr_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, lr_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "sudden-pierce",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.77 0.76 0.76 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.88 0.88 0.88 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for decision tree\n",
"\n",
"cm = confusion_matrix(y_val, dt_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, dt_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "acceptable-chain",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.77 0.76 0.76 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.88 0.88 0.88 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for Naive Bayes\n",
"\n",
"cm = confusion_matrix(y_val, nb_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, nb_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "common-satin",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.00 0.00 0.00 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.50 0.50 0.50 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/metrics/_classification.py:1334: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n",
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/metrics/_classification.py:1334: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n",
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/metrics/_classification.py:1334: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for SVM\n",
"\n",
"cm = confusion_matrix(y_val, svm_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, svm_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "offensive-uganda",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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HZb40FNPPcWaNWs4fPgwoaGhhISEsGLFCl+HJY2UEoOIiLjQUJKIiLhQYhARERdKDCIi4kKJQUREXCgxiIiICyUGqTepqanMnj0bgC1bthAbG1sv173kkkvYs2dPnb7nmZ+lPs8VqQ9KDOKif//+XHnllfTo0YNrrrmG1NRUysrK6vw6MTEx5OTknPW4999/nzvvvLPOr/8ff/nLX/jf//1fr72/SGOkxCCVvPTSS3zzzTcsWbKE7du38+KLL1Y65tSpUz6ITETqgxKDuBUREUHfvn358ccfgdNDMosWLWLQoEEMGjQIgA0bNjB06FBiYmK444472Llzp/P83Nxc4uPj6dGjB2PHjuXkyZPOts2bN3P99dc7X1utVpKTk7n66qvp06cPU6dOJS8vj/T0dLZt20aPHj2IiYkBoLy8nIyMDG644QauueYa0tLSOHHihPO95s+fz3XXXcd1113Hu+++e86f/+9//zvXXnstPXv25K677nL+Hv7jyJEj3HffffTo0YO7776bAwcOONvy8vK477776N27N7GxsaxcufKc4xCpb0oM4pbVauXjjz8mOjraWbd27VreeecdVq5cSW5uLpMmTWLq1Kls3ryZhIQERo0aRXl5OeXl5YwePZqhQ4fy5ZdfMnjwYNasWVPldex2OyNHjqR9+/asX7+ejz/+mD//+c906dKFJ598ku7du/PNN9+wZcsWAGbNmkV+fj5Lly5lzZo1FBYWMnfuXAA+/vhjXn/9dV5//XXWrFnD559/fs6f//rrrycnJ4fPP/+cyy67jEcffdSlffny5YwaNYrNmzdz6aWXOtuPHTvG/fffT1xcHJ999hmzZ8/mySef5KeffjrnWETqkxKDVDJ69GhiYmJITEykV69ePPTQQ862Bx98kJCQEFq0aMHbb79NQkIC3bp1w2QyER8fT/Pmzdm2bRvffvstFRUVJCUl0bx5cwYPHswVV1xR5fW+++47CgsLmTBhAq1atSI4ONjZO/gtwzB45513mDRpEiEhIZx//vmMHDnSuS/QqlWruPXWW7n44otp1aoVycnJ5/x7uO222zj//PMJCgoiJSWFnTt3Ulpa6my/4YYb6NWrF0FBQYwbN45t27ZhtVrZuHEjkZGRDB8+nGbNmnHZZZcRGxvL6tWrzzkWkfrUzNcBSMMzd+5crrnmmirbztze++DBgyxdupSFCxc66yoqKigsLCQgIICIiAgCAgKcbe3bt6/yPa1WK+3bt6dZs7P/cywuLub48ePceuutzjrDMHA4HAAUFhbStWtXZ9u5PurSbrcze/ZsVq9eTXFxMYGBp79DHTlyhNatWwPQrl075/HnnXcebdq0obCwkAMHDvDdd9+5JDe73c6QIUPOKRaR+qbEIDVy5h96i8XCQw89xN/+9rdKx3355ZcUFBRgGIbznIMHD9KhQ4dKx1osFqxWK6dOnaqUHM68HkBoaCgtWrRgxYoVREREVHqv3z7N7uDBgzX7gP9n+fLlrFu3jgULFhAVFUVpaSm9evXizD0nDx065Py5rKyMX3/9lfDwcCwWC7169WLBggXndG0RX9NQkpyzESNGsHjxYr799lsMw+DYsWNs3LiRo0eP0r17d5o1a8Ybb7xBRUUFa9as4fvvv6/yfa688kouvPBCnnnmGY4dO8bJkyf5+uuvgdPPnygoKKC8vByAwMBARowYwfTp0ykqKgKgoKCATz75BIDBgwezZMkSfvrpJ44fP05mZuZZP8epU6c4efKks1RUVFBWVkZQUBChoaEcP36cZ599ttJ5H330EVu2bKG8vJw5c+bQrVs3LBYLN9xwA7t372bp0qVUVFRQUVHBd999R15e3jn9nkXqmxKDnLMrrriCadOmMXXqVHr16sWgQYN4//33AQgKCuKFF15gyZIl9O7dm5UrVzJw4MAq38dkMvHSSy+xZ88e/vSnP3H99dezatUqAK6++mr+8Ic/cN1119GnTx8Axo8fT8eOHbn99tu56qqruPfee8nPzwegX79+JCUlkZSUxMCBA7n66qvP+jmeeOIJrrzySmd57LHHGDZsGO3bt6dv377cfPPNdO/evdJ5cXFxzJ07lz59+vDDDz8wc+ZMAM4//3xee+01Vq5cSd++fbnuuuuYNWuWM7mJNHR6HoOIiLhQj0FERFwoMYiIiAslBhERcaHEICIiLpQYRETEhRKDiIi4UGIQEREXSgwiIuJCiUFERFz8f7LG/ljoGvF5AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.87 0.78 0.82 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.93 0.89 0.91 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for Random forest\n",
"\n",
"cm = confusion_matrix(y_val, rf_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, rf_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "suffering-saudi",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6NAhQkNDCQkJYdWqVd4OS1ooJQYREXGiriQREXGixCAiIk6UGERExIkSg4iIOFFiEBERJ0oM0mRSU1OZM2cOAPn5+cTGxjbJfa+44gr27NnTqO95+mdpymtFmoISgzgZPHgw11xzDb179+b6668nNTWVY8eONfp9YmJiyM3NPet577//Pvfcc0+j3/8/fv/73/N///d/Hnt/kZZIiUFqeOWVV/jmm29YtmwZW7du5a9//WuNc06ePOmFyESkKSgxiEsREREMGDCAH3/8ETjVJbN48WKGDRvGsGHDAPjwww8ZOXIkMTEx3H333Wzfvt1xfUFBAfHx8fTu3Zvx48dz4sQJR93mzZsZOHCg47XZbCY5OZnrrruO/v37k5GRQWFhIenp6WzZsoXevXsTExMDQFVVFZmZmdx4441cf/31pKWlUVlZ6XivBQsWcMMNN3DDDTfw3nvvnfPnf+yxx/jNb35Dnz59uPfeex3fw38cPnyYBx98kN69e3Pfffdx4MABR11hYSEPPvgg/fr1IzY2ltWrV59zHCJNTYlBXDKbzXz88cdER0c7ytatW8e7777L6tWrKSgoYMqUKWRkZLB582YSEhIYM2YMVVVVVFVVMXbsWEaOHMkXX3zB8OHDycvLq/U+VquV0aNH06lTJzZs2MDHH3/M7373Oy655BKefvppevXqxTfffEN+fj4As2fPpqioiOXLl5OXl0dJSQnz5s0D4OOPP+aNN97gjTfeIC8vj88+++ycP//AgQPJzc3ls88+46qrruLxxx93ql+5ciVjxoxh8+bNXHnllY7648eP89BDDxEXF8c///lP5syZw9NPP83OnTvPORaRpqTEIDWMHTuWmJgYEhMT6du3L48++qij7pFHHiEkJIQ2bdrwzjvvkJCQQM+ePTEYDMTHxxMYGMiWLVv49ttvqa6uJikpicDAQIYPH87VV19d6/2+++47SkpKmDRpEu3atSM4ONjROjiT3W7n3XffZcqUKYSEhHD++eczevRox7pAa9as4fbbb+fyyy+nXbt2JCcnn/P3cMcdd3D++ecTFBRESkoK27dv58iRI476G2+8kb59+xIUFMSECRPYsmULZrOZjRs3EhkZyahRowgICOCqq64iNjaWtWvXnnMsIk0pwNsBSPMzb948rr/++lrrTl/e++DBgyxfvpy33nrLUVZdXU1JSQl+fn5ERETg5+fnqOvUqVOt72k2m+nUqRMBAWf/51hWVkZFRQW33367o8xut2Oz2QAoKSmhR48ejrpz3erSarUyZ84c1q5dS1lZGf7+p/6GOnz4MO3btwegY8eOjvPPO+88LrjgAkpKSjhw4ADfffedU3KzWq2MGDHinGIRaWpKDFIvp/+iN5lMPProo/zxj3+scd4XX3xBcXExdrvdcc3Bgwfp3LlzjXNNJhNms5mTJ0/WSA6n3w8gNDSUNm3asGrVKiIiImq815m72R08eLB+H/DfVq5cyfr161m4cCFRUVEcOXKEvn37cvqakz/99JPj52PHjvHLL78QHh6OyWSib9++LFy48JzuLeJt6kqSc3bnnXeyZMkSvv32W+x2O8ePH2fjxo0cPXqUXr16ERAQwKJFi6iuriYvL49//etftb7PNddcw0UXXcRzzz3H8ePHOXHiBF999RVwav+J4uJiqqqqAPD39+fOO+9kxowZlJaWAlBcXMwnn3wCwPDhw1m2bBk7d+6koqKCrKyss36OkydPcuLECcdRXV3NsWPHCAoKIjQ0lIqKCp5//vka13300Ufk5+dTVVXFiy++SM+ePTGZTNx4443s3r2b5cuXU11dTXV1Nd999x2FhYXn9D2LNDUlBjlnV199NdOnTycjI4O+ffsybNgw3n//fQCCgoKYO3cuy5Yto1+/fqxevZqhQ4fW+j4Gg4FXXnmFPXv28Nvf/paBAweyZs0aAK677jouvfRSbrjhBvr37w/AxIkT6dKlC3fddRfXXnstDzzwAEVFRQAMGjSIpKQkkpKSGDp0KNddd91ZP8dTTz3FNddc4zieeOIJbrvtNjp16sSAAQO45ZZb6NWrV43r4uLimDdvHv379+f7779n1qxZAJx//vm8/vrrrF69mgEDBnDDDTcwe/ZsR3ITae60H4OIiDhRi0FERJwoMYiIiBMlBhERcaLEICIiTpQYRETEiRKDiIg4UWIQEREnSgwiIuJEiUFERJz8Pwwb2p3gN5RnAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.80 0.72 0.76 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.90 0.86 0.88 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix for Gradient Boosting\n",
"\n",
"cm = confusion_matrix(y_val, gb_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, gb_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "successful-northern",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"F1-scores of the models:\n",
"Logistic regression: 0.7676767676767676\n",
"Decision tree: 0.7639751552795032\n",
"Naive Bayes: 0.7639751552795032\n",
"Support Vector Machine: 0.0\n",
"Random Forest: 0.8208469055374594\n",
"Gradient boosting: 0.7557003257328991\n"
]
}
],
"source": [
"from sklearn.metrics import f1_score\n",
"\n",
"print(\"F1-scores of the models:\")\n",
"\n",
"print(\"Logistic regression:\", f1_score(y_val, lr_predicted_labels))\n",
"print(\"Decision tree:\", f1_score(y_val, dt_predicted_labels))\n",
"print(\"Naive Bayes:\", f1_score(y_val, nb_predicted_labels))\n",
"print(\"Support Vector Machine:\", f1_score(y_val, svm_predicted_labels))\n",
"print(\"Random Forest:\", f1_score(y_val, rf_predicted_labels))\n",
"print(\"Gradient boosting:\", f1_score(y_val, gb_predicted_labels))"
]
},
{
"cell_type": "markdown",
"id": "fluid-canadian",
"metadata": {},
"source": [
"## Hyperparameter tuning"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "expressed-objective",
"metadata": {},
"outputs": [],
"source": [
"lr_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000],\n",
" 'solver' : ['liblinear','lbfgs'],#saga\n",
" 'max_iter': [5000]}"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "laden-mexico",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 3 folds for each of 10 candidates, totalling 30 fits\n",
"[CV] END ..................C=10, max_iter=5000, solver=lbfgs; total time= 6.3s\n",
"[CV] END ..................C=10, max_iter=5000, solver=lbfgs; total time= 5.9s\n",
"[CV] END ..................C=10, max_iter=5000, solver=lbfgs; total time= 4.3s\n",
"[CV] END .................C=100, max_iter=5000, solver=lbfgs; total time= 4.9s\n",
"[CV] END .................C=100, max_iter=5000, solver=lbfgs; total time= 2.7s\n",
"[CV] END .................C=100, max_iter=5000, solver=lbfgs; total time= 2.0s\n",
"[CV] END ...........C=0.001, max_iter=5000, solver=liblinear; total time= 0.7s\n",
"[CV] END ...........C=0.001, max_iter=5000, solver=liblinear; total time= 0.7s\n",
"[CV] END ...........C=0.001, max_iter=5000, solver=liblinear; total time= 0.7s\n",
"[CV] END ............C=1000, max_iter=5000, solver=liblinear; total time= 0.7s\n",
"[CV] END ............C=1000, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ............C=1000, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END .................C=0.1, max_iter=5000, solver=lbfgs; total time= 3.8s\n",
"[CV] END .................C=0.1, max_iter=5000, solver=lbfgs; total time= 4.9s\n",
"[CV] END .................C=0.1, max_iter=5000, solver=lbfgs; total time= 3.0s\n",
"[CV] END ..............C=10, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ..............C=10, max_iter=5000, solver=liblinear; total time= 0.9s\n",
"[CV] END ..............C=10, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ............C=0.01, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ............C=0.01, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ............C=0.01, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END ...............C=0.001, max_iter=5000, solver=lbfgs; total time= 3.8s\n",
"[CV] END ...............C=0.001, max_iter=5000, solver=lbfgs; total time= 2.7s\n",
"[CV] END ...............C=0.001, max_iter=5000, solver=lbfgs; total time= 4.5s\n",
"[CV] END ................C=1000, max_iter=5000, solver=lbfgs; total time= 7.2s\n",
"[CV] END ................C=1000, max_iter=5000, solver=lbfgs; total time= 3.0s\n",
"[CV] END ................C=1000, max_iter=5000, solver=lbfgs; total time= 3.7s\n",
"[CV] END .............C=0.1, max_iter=5000, solver=liblinear; total time= 0.8s\n",
"[CV] END .............C=0.1, max_iter=5000, solver=liblinear; total time= 0.7s\n",
"[CV] END .............C=0.1, max_iter=5000, solver=liblinear; total time= 0.8s\n"
]
}
],
"source": [
"from sklearn.model_selection import RandomizedSearchCV, GridSearchCV\n",
"\n",
"# Setup random seed\n",
"np.random.seed(42)\n",
"\n",
"# Setup random hyperparameter search for LogisticRegression\n",
"rs_lr = RandomizedSearchCV(LogisticRegression(),\n",
" param_distributions=lr_grid,\n",
" cv=3,\n",
" verbose=2)\n",
"\n",
"rs_lr.fit(X_train, y_train);"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "mechanical-mayor",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-9 {color: black;background-color: white;}#sk-container-id-9 pre{padding: 0;}#sk-container-id-9 div.sk-toggleable {background-color: white;}#sk-container-id-9 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-9 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-9 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-9 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-9 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-9 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-9 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-9 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-9 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-9 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-9 div.sk-item {position: relative;z-index: 1;}#sk-container-id-9 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-9 div.sk-item::before, #sk-container-id-9 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-9 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-9 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-9 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-9 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-9 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-9 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-9 div.sk-label-container {text-align: center;}#sk-container-id-9 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-9 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(C=1000, max_iter=5000)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" checked><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(C=1000, max_iter=5000)</pre></div></div></div></div></div>"
],
"text/plain": [
"LogisticRegression(C=1000, max_iter=5000)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Find the best parameters\n",
"rs_lr.best_estimator_"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "excited-dinner",
"metadata": {},
"outputs": [],
"source": [
"# Evaluate the randomized search logistic regression model\n",
"rs_lr_predicted_labels = rs_lr.predict(X_val)"
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "stable-million",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.84 0.73 0.79 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.92 0.87 0.89 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix\n",
"\n",
"cm = confusion_matrix(y_val, rs_lr_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, rs_lr_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "numeric-meaning",
"metadata": {},
"outputs": [],
"source": [
"# RandomForestClassifier hyperparameters\n",
"rf_grid = {\n",
" 'n_estimators': [100, 200, 300],\n",
" 'max_depth': [2],\n",
" 'min_samples_leaf': [1, 2, 3]\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "removable-marsh",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 3 folds for each of 9 candidates, totalling 27 fits\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=100; total time= 8.3s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=100; total time= 6.4s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=100; total time= 5.7s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=200; total time= 12.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=200; total time= 12.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=200; total time= 12.0s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=300; total time= 17.7s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=300; total time= 17.3s\n",
"[CV] END ..max_depth=2, min_samples_leaf=1, n_estimators=300; total time= 17.0s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=100; total time= 5.5s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=100; total time= 5.6s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=100; total time= 5.7s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=200; total time= 12.0s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=200; total time= 12.6s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=200; total time= 11.0s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=300; total time= 16.3s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=300; total time= 16.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=2, n_estimators=300; total time= 16.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=100; total time= 5.6s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=100; total time= 5.4s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=100; total time= 5.4s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=200; total time= 11.0s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=200; total time= 10.8s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=200; total time= 11.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=300; total time= 16.4s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=300; total time= 17.2s\n",
"[CV] END ..max_depth=2, min_samples_leaf=3, n_estimators=300; total time= 16.5s\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-10 {color: black;background-color: white;}#sk-container-id-10 pre{padding: 0;}#sk-container-id-10 div.sk-toggleable {background-color: white;}#sk-container-id-10 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-10 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-10 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-10 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-10 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-10 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-10 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-10 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-10 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-10 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-10 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-10 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-10 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-10 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-10 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-10 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-10 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-10 div.sk-item {position: relative;z-index: 1;}#sk-container-id-10 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-10 div.sk-item::before, #sk-container-id-10 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-10 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-10 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-10 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-10 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-10 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-10 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-10 div.sk-label-container {text-align: center;}#sk-container-id-10 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-10 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-10\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=3, estimator=RandomForestClassifier(),\n",
" param_grid={&#x27;max_depth&#x27;: [2], &#x27;min_samples_leaf&#x27;: [1, 2, 3],\n",
" &#x27;n_estimators&#x27;: [100, 200, 300]},\n",
" verbose=2)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(cv=3, estimator=RandomForestClassifier(),\n",
" param_grid={&#x27;max_depth&#x27;: [2], &#x27;min_samples_leaf&#x27;: [1, 2, 3],\n",
" &#x27;n_estimators&#x27;: [100, 200, 300]},\n",
" verbose=2)</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier()</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier()</pre></div></div></div></div></div></div></div></div></div></div>"
],
"text/plain": [
"GridSearchCV(cv=3, estimator=RandomForestClassifier(),\n",
" param_grid={'max_depth': [2], 'min_samples_leaf': [1, 2, 3],\n",
" 'n_estimators': [100, 200, 300]},\n",
" verbose=2)"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Setup random seed\n",
"np.random.seed(42)\n",
"\n",
"gs_rf = GridSearchCV(RandomForestClassifier(),\n",
" param_grid=rf_grid,\n",
" cv=3,\n",
" verbose=2)\n",
"\n",
"gs_rf.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "legal-quilt",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-11 {color: black;background-color: white;}#sk-container-id-11 pre{padding: 0;}#sk-container-id-11 div.sk-toggleable {background-color: white;}#sk-container-id-11 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-11 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-11 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-11 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-11 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-11 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-11 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-11 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-11 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-11 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-11 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-11 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-11 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-11 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-11 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-11 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-11 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-11 div.sk-item {position: relative;z-index: 1;}#sk-container-id-11 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-11 div.sk-item::before, #sk-container-id-11 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-11 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-11 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-11 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-11 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-11 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-11 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-11 div.sk-label-container {text-align: center;}#sk-container-id-11 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-11 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-11\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(max_depth=2, n_estimators=300)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" checked><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(max_depth=2, n_estimators=300)</pre></div></div></div></div></div>"
],
"text/plain": [
"RandomForestClassifier(max_depth=2, n_estimators=300)"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Find the best parameters\n",
"gs_rf.best_estimator_"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "unlikely-bolivia",
"metadata": {},
"outputs": [],
"source": [
"# Evaluate the grid search random forest model\n",
"gs_rf_predicted_labels = gs_rf.predict(X_val)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "threatened-cardiff",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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H3nirwsYPvi3Lf75pelMJhNhYWGYTMEn/dvEwAH9OO+8cwgKCiIqKpInn3iE9ev/hc12yN8lt02Gw/MlgPh8dtWdO3eSm5vL1q1biY2NBU48oKJ379489NBDvzj9688Fyuyq27aX8H9PPcf2HaUEBwczqP/FPDD5T5SU7uKROfmU/XiA9uHh9L3wfP5nwp10P7sbAInX305Z+QFCQkOc75U8aji59594QtTh6moeynuKD/71OR07nsH11yRxzx3pBAUFUbDoHQpefwfbocN06tSREUMuY+LdGZxxRge//Aya0+k2u2rOg/eR8+D/uKyb+chf+HZ7CY/OzCYm5ixstkOsWfsh2Q88SlnZj36q1L+aOrtq9cxbPN72jJyFTTpWa9Ji025XVlZitVqBE08q+qUHRbgTKMEgzet0CwbxTJODIecmj7c9Y+aiJh2rNWmx+xiioqJOOQxERPwiwE4ReUo3uImIuBNgg8qe0qUKIiJu+Opy1ePHj5Obm8uoUaO45pprePDBBwEoLS0lLS2NxMRE0tLSXO718kWbOwoGERF3fHS56pw5cwgLC6OoqIhly5YxceJEAHJzc0lPT6eoqIj09HRycnKc+/iizR0981kCggafpSFNHXw+PDXV420dDxZgs9nqrTebzS6X5ldXVzN06FDef/99zjjj/994WFFRQWJiIhs2bMBkMmG32xk0aBCrV6/GMIxmb2tszFdjDCIi7ngx1UVBQQH5+fWnH8nMzCQrK8v5evfu3URERJCfn8+GDRs444wzmDhxIuHh4cTGxmIymYAT96rExMRgtVoxDKPZ2xQMIiKnwJtnPmdkZJCaWr+H8fMbee12O7t37+b8889n2rRpfPXVV9xzzz3MmzevyfU2FwWDiIg7XgTDz08ZuWOxWGjXrh3JyckAXHzxxURGRhIeHk5ZWRl2u9152qe8vByLxYJhGM3e1hgNPouIuONweL54KCoqikGDBvHxxycmsCwtLaWiooIePXoQHx9PYWEhAIWFhcTHxxMVFUV0dHSztzVGg88SEDT4LA1p6uDzofFXerxtx2dWerzt7t27mT59OlVVVbRr145JkyYxdOhQSkpKyM7OxmazYTabycvLc04b5Is2dxQMEhAUDNKQJgfDPUkeb9vx2VVNOlZrojEGERE3DLumxBARkZOdplNiKBhERNzw5nLVQKJgEBFx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P/CPf/zDZ+8v0hYpGKSeZ599li+//JLFixezZcsW/vrXv9bbpq6uzg+ViUhLUDCIW7GxsQwePJjvvvsOOHFKZuHChYwaNYpRo0YB8N577zF69GgSEhK46aab2LZtm3P/4uJiUlNT6devH5MmTeL48ePOtg0bNjBkyBDna6vVSmZmJpdeeimDBg1i5syZlJSUkJuby+bNm+nXrx8JCQkA1NTUkJeXx7Bhw7jsssvIycnh2LFjzvd68cUXufzyy7n88st56623Tvnz33vvvfzud7+jf//+3HLLLc6fw38dPHiQO+64g379+nHrrbeyd+9eZ1tJSQl33HEHAwcOJDExkRUrVpxyHSItTcEgblmtVj744APi4+Od69asWcObb77JihUrKC4uZvr06cycOZMNGzaQlpbG+PHjqampoaamhgkTJjB69Gg+++wzkpKSWL16dYPHsdvtjBs3jq5du7Ju3To++OADrrrqKs455xwefvhh+vbty5dffsnGjRsBmDt3LqWlpSxZsoTVq1dTXl7O/PnzAfjggw94+eWXefnll1m9ejWffPLJKX/+IUOGUFRUxCeffML555/PlClTXNqXLVvG+PHj2bBhA71793a2HzlyhLFjx5KcnMy//vUvnnjiCR5++GF27NhxyrWItCQFg9QzYcIEEhISSE9PZ8CAAdxzzz3OtrvvvpuIiAjCw8N54403SEtL4+KLL8ZkMpGamkpISAibN2/mq6++ora2loyMDEJCQkhKSuLCCy9s8Hhff/015eXl3H///XTo0IGwsDBn7+DnDMPgzTffZPr06URERHDmmWcybtw457xAK1eu5LrrruO8886jQ4cOZGZmnvLP4frrr+fMM88kNDSUrKwstm3bxqFDh5ztw4YNY8CAAYSGhjJ58mQ2b96M1Wpl/fr1dOvWjTFjxtCuXTvOP/98EhMTWbVq1SnXItKS2vm7AGl95s+fz2WXXdZg28nTe+/bt48lS5bw6quvOtfV1tZSXl5OUFAQsbGxBAUFOdu6du3a4HtarVa6du1Ku3a//HWsrKzk6NGjXHfddc51hmHgcDgAKC8vp0+fPs62U33Upd1u54knnmDVqlVUVlYSHHzib6iDBw/SsWNHALp06eLc/owzzqBTp06Ul5ezd+9evv76a5dws9vtpKSknFItIi1NwSBeOfkXvcVi4Z577uFPf/pTve0+++wzysrKMAzDuc++ffs4++yz621rsViwWq3U1dXVC4eTjwcQGRlJeHg4y5cvJzY2tt57/fxpdvv27fPuA/7HsmXLWLt2LQsWLCAuLo5Dhw4xYMAATp5zcv/+/c5/V1dX89NPPxETE4PFYmHAgAEsWLDglI4t4m86lSSn7IYbbmDRokV89dVXGIbBkSNHWL9+PYcPH6Zv3760a9eOV155hdraWlavXs0333zT4PtcdNFFdO7cmb/85S8cOXKE48ePs2nTJuDE8yfKysqoqakBIDg4mBtuuIFZs2ZRUVEBQFlZGR9++CEASUlJLF68mB07dnD06FHy8/N/8XPU1dVx/Phx51JbW0t1dTWhoaFERkZy9OhRHn/88Xr7vf/++2zcuJGamhrmzZvHxRdfjMViYdiwYezcuZMlS5ZQW1tLbW0tX3/9NSUlJaf0cxZpaQoGOWUXXnghjzzyCDNnzmTAgAGMGjWKd955B4DQ0FCefvppFi9ezMCBA1mxYgUjR45s8H1MJhPPPvssu3bt4ve//z1Dhgxh5cqVAFx66aX85je/4fLLL2fQoEEATJ06le7du3PjjTdyySWXcPvtt1NaWgrA0KFDycjIICMjg5EjR3LppZf+4ud46KGHuOiii5zLAw88wLXXXkvXrl0ZPHgwV199NX379q23X3JyMvPnz2fQoEH8+9//Zs6cOQCceeaZvPTSS6xYsYLBgwdz+eWXM3fuXGe4ibR2eh6DiIi4UI9BRERcKBhERMSFgkFERFwoGERExIWCQUREXCgYRETEhYJBRERcKBhERMSFgkFERFz8PxdvEnTqZOgJAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 85280\n",
" 1 0.86 0.59 0.70 162\n",
"\n",
" accuracy 1.00 85442\n",
" macro avg 0.93 0.80 0.85 85442\n",
"weighted avg 1.00 1.00 1.00 85442\n",
"\n"
]
}
],
"source": [
"# Plotting the Confusion Matrix\n",
"\n",
"cm = confusion_matrix(y_val, gs_rf_predicted_labels)\n",
"cmdf = pd.DataFrame(cm, index=[\"0\",\"1\"],columns=[\"0\",\"1\"])\n",
"fig, ax = plt.subplots(1,1)\n",
"sns.heatmap(cmdf,annot=True, fmt='d', ax = ax)\n",
"ax.set_xlabel('Predicted Label')\n",
"ax.set_ylabel('True Label')\n",
"plt.show()\n",
"\n",
"#Printing the Classification Report\n",
"print(classification_report(y_val, gs_rf_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "alike-judgment",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Logistic regression evaluation: 0.7854785478547854\n"
]
}
],
"source": [
"# Evaluate f1-score logistic regression model\n",
"print(\"Logistic regression evaluation:\", f1_score(y_val, rs_lr_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 82,
"id": "worst-court",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random forest evaluation: 0.7032967032967032\n"
]
}
],
"source": [
"# Evaluate f1-score random forest model\n",
"print(\"Random forest evaluation:\", f1_score(y_val, gs_rf_predicted_labels))"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "apart-trout",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function plot_roc_curve is deprecated; Function :func:`plot_roc_curve` is deprecated in 1.0 and will be removed in 1.2. Use one of the class methods: :meth:`sklearn.metrics.RocCurveDisplay.from_predictions` or :meth:`sklearn.metrics.RocCurveDisplay.from_estimator`.\n",
" warnings.warn(msg, category=FutureWarning)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# AUC Score\n",
"# Import ROC curve function from metrics module\n",
"from sklearn.metrics import plot_roc_curve\n",
"\n",
"# Plot ROC curve and calculate AUC metric\n",
"plot_roc_curve(rs_lr, X_val, y_val);"
]
},
{
"cell_type": "code",
"execution_count": 87,
"id": "multiple-robert",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function plot_roc_curve is deprecated; Function :func:`plot_roc_curve` is deprecated in 1.0 and will be removed in 1.2. Use one of the class methods: :meth:`sklearn.metrics.RocCurveDisplay.from_predictions` or :meth:`sklearn.metrics.RocCurveDisplay.from_estimator`.\n",
" warnings.warn(msg, category=FutureWarning)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_roc_curve(rf_model, X_val, y_val);"
]
},
{
"cell_type": "markdown",
"id": "historic-surprise",
"metadata": {},
"source": [
"## 7. Testing the model\n"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "annual-playback",
"metadata": {},
"outputs": [],
"source": [
"y_pred_test = rf_model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"id": "seventh-klein",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random forest evaluation: 0.8231884057971014\n"
]
}
],
"source": [
"# Evaluate f1-score random forest model\n",
"print(\"Random forest evaluation:\", f1_score(y_test, y_pred_test))"
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "subjective-welsh",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function plot_roc_curve is deprecated; Function :func:`plot_roc_curve` is deprecated in 1.0 and will be removed in 1.2. Use one of the class methods: :meth:`sklearn.metrics.RocCurveDisplay.from_predictions` or :meth:`sklearn.metrics.RocCurveDisplay.from_estimator`.\n",
" warnings.warn(msg, category=FutureWarning)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot ROC curve and calculate AUC metric\n",
"plot_roc_curve(rf_model, X_test, y_test);"
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "demanding-difficulty",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0., 0., 0., ..., 0., 0., 0.])"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# make predictions on test data \n",
"rf_predicted_test_labels = rf_model.predict_proba(X_test)[:, 1]\n",
"rf_predicted_test_labels"
]
},
{
"cell_type": "markdown",
"id": "velvet-annotation",
"metadata": {},
"source": [
"**Use the model**"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "compound-faculty",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'time': 58022.0,\n",
" 'v1': -1.071075751,\n",
" 'v2': 0.74032389,\n",
" 'v3': 2.138828111,\n",
" 'v4': 0.246285129,\n",
" 'v5': 0.06198512,\n",
" 'v6': -0.371016514,\n",
" 'v7': 0.797548048,\n",
" 'v8': 0.021495732,\n",
" 'v9': -0.129206888,\n",
" 'v10': -0.886336993,\n",
" 'v11': -0.176539632,\n",
" 'v12': 0.723445645,\n",
" 'v13': 0.157480258,\n",
" 'v14': -0.282065003,\n",
" 'v15': -0.674822792,\n",
" 'v16': -0.531534111,\n",
" 'v17': 0.070645295,\n",
" 'v18': -1.153616413,\n",
" 'v19': -1.155834158,\n",
" 'v20': -0.234713579,\n",
" 'v21': -0.11976122,\n",
" 'v22': -0.23017531,\n",
" 'v23': -0.091648999,\n",
" 'v24': 0.602902637,\n",
" 'v25': 0.086165058,\n",
" 'v26': -0.71868059,\n",
" 'v27': 0.016999323,\n",
" 'v28': 0.092905471,\n",
" 'amount': 49.99}"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"credit_card = X_test.iloc[1000]\n",
"credit_card_dict = credit_card.to_dict()\n",
"credit_card_dict"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "formal-lender",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/assitan/.local/lib/python3.8/site-packages/sklearn/base.py:450: UserWarning: X does not have valid feature names, but RandomForestClassifier was fitted with feature names\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf_model.predict_proba([credit_card])[0, 1]"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "vital-denmark",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test.iloc[1000]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment