2025-04-24 23:39:36 +01:00
{
"cells": [
2025-04-25 17:53:04 +01:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Importing Libraries"
]
},
2025-04-24 23:39:36 +01:00
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
2025-04-25 17:53:04 +01:00
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from datetime import datetime"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Loading the dataset"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv('../data/raw/fraudTrain.csv')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Unnamed: 0', 'trans_date_trans_time', 'cc_num', 'merchant', 'category',\n",
" 'amt', 'first', 'last', 'gender', 'street', 'city', 'state', 'zip',\n",
" 'lat', 'long', 'city_pop', 'job', 'dob', 'trans_num', 'unix_time',\n",
" 'merch_lat', 'merch_long', 'is_fraud'],\n",
" dtype='object')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Initial Exploration"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
2025-04-24 23:39:36 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Unnamed: 0 trans_date_trans_time cc_num \\\n",
"0 0 2019-01-01 00:00:18 2703186189652095 \n",
"1 1 2019-01-01 00:00:44 630423337322 \n",
"2 2 2019-01-01 00:00:51 38859492057661 \n",
"3 3 2019-01-01 00:01:16 3534093764340240 \n",
"4 4 2019-01-01 00:03:06 375534208663984 \n",
"\n",
" merchant category amt first \\\n",
"0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n",
"1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n",
"2 fraud_Lind-Buckridge entertainment 220.11 Edward \n",
"3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n",
"4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n",
"\n",
" last gender street ... lat long \\\n",
"0 Banks F 561 Perry Cove ... 36.0788 -81.1781 \n",
"1 Gill F 43039 Riley Greens Suite 393 ... 48.8878 -118.2105 \n",
"2 Sanchez M 594 White Dale Suite 530 ... 42.1808 -112.2620 \n",
"3 White M 9443 Cynthia Court Apt. 038 ... 46.2306 -112.1138 \n",
"4 Garcia M 408 Bradley Rest ... 38.4207 -79.4629 \n",
"\n",
" city_pop job dob \\\n",
"0 3495 Psychologist, counselling 1988-03-09 \n",
"1 149 Special educational needs teacher 1978-06-21 \n",
"2 4154 Nature conservation officer 1962-01-19 \n",
"3 1939 Patent attorney 1967-01-12 \n",
"4 99 Dance movement psychotherapist 1986-03-28 \n",
"\n",
" trans_num unix_time merch_lat merch_long \\\n",
"0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n",
"1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n",
"2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n",
"3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n",
"4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n",
"\n",
" is_fraud \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 \n",
"\n",
"[5 rows x 23 columns]\n",
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 1296675 entries, 0 to 1296674\n",
"Data columns (total 23 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Unnamed: 0 1296675 non-null int64 \n",
" 1 trans_date_trans_time 1296675 non-null object \n",
" 2 cc_num 1296675 non-null int64 \n",
" 3 merchant 1296675 non-null object \n",
" 4 category 1296675 non-null object \n",
" 5 amt 1296675 non-null float64\n",
" 6 first 1296675 non-null object \n",
" 7 last 1296675 non-null object \n",
" 8 gender 1296675 non-null object \n",
" 9 street 1296675 non-null object \n",
" 10 city 1296675 non-null object \n",
" 11 state 1296675 non-null object \n",
" 12 zip 1296675 non-null int64 \n",
" 13 lat 1296675 non-null float64\n",
" 14 long 1296675 non-null float64\n",
" 15 city_pop 1296675 non-null int64 \n",
" 16 job 1296675 non-null object \n",
" 17 dob 1296675 non-null object \n",
" 18 trans_num 1296675 non-null object \n",
" 19 unix_time 1296675 non-null int64 \n",
" 20 merch_lat 1296675 non-null float64\n",
" 21 merch_long 1296675 non-null float64\n",
" 22 is_fraud 1296675 non-null int64 \n",
"dtypes: float64(5), int64(6), object(12)\n",
"memory usage: 227.5+ MB\n",
"None\n",
" Unnamed: 0 cc_num amt zip lat \\\n",
"count 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 \n",
"mean 6.483370e+05 4.171920e+17 7.035104e+01 4.880067e+04 3.853762e+01 \n",
"std 3.743180e+05 1.308806e+18 1.603160e+02 2.689322e+04 5.075808e+00 \n",
"min 0.000000e+00 6.041621e+10 1.000000e+00 1.257000e+03 2.002710e+01 \n",
"25% 3.241685e+05 1.800429e+14 9.650000e+00 2.623700e+04 3.462050e+01 \n",
"50% 6.483370e+05 3.521417e+15 4.752000e+01 4.817400e+04 3.935430e+01 \n",
"75% 9.725055e+05 4.642255e+15 8.314000e+01 7.204200e+04 4.194040e+01 \n",
"max 1.296674e+06 4.992346e+18 2.894890e+04 9.978300e+04 6.669330e+01 \n",
"\n",
" long city_pop unix_time merch_lat merch_long \\\n",
"count 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 \n",
"mean -9.022634e+01 8.882444e+04 1.349244e+09 3.853734e+01 -9.022646e+01 \n",
"std 1.375908e+01 3.019564e+05 1.284128e+07 5.109788e+00 1.377109e+01 \n",
"min -1.656723e+02 2.300000e+01 1.325376e+09 1.902779e+01 -1.666712e+02 \n",
"25% -9.679800e+01 7.430000e+02 1.338751e+09 3.473357e+01 -9.689728e+01 \n",
"50% -8.747690e+01 2.456000e+03 1.349250e+09 3.936568e+01 -8.743839e+01 \n",
"75% -8.015800e+01 2.032800e+04 1.359385e+09 4.195716e+01 -8.023680e+01 \n",
"max -6.795030e+01 2.906700e+06 1.371817e+09 6.751027e+01 -6.695090e+01 \n",
"\n",
" is_fraud \n",
"count 1.296675e+06 \n",
"mean 5.788652e-03 \n",
"std 7.586269e-02 \n",
"min 0.000000e+00 \n",
"25% 0.000000e+00 \n",
"50% 0.000000e+00 \n",
"75% 0.000000e+00 \n",
"max 1.000000e+00 \n",
"Unnamed: 0 0\n",
"trans_date_trans_time 0\n",
"cc_num 0\n",
"merchant 0\n",
"category 0\n",
"amt 0\n",
"first 0\n",
"last 0\n",
"gender 0\n",
"street 0\n",
"city 0\n",
"state 0\n",
"zip 0\n",
"lat 0\n",
"long 0\n",
"city_pop 0\n",
"job 0\n",
"dob 0\n",
"trans_num 0\n",
"unix_time 0\n",
"merch_lat 0\n",
"merch_long 0\n",
"is_fraud 0\n",
"dtype: int64\n"
]
2025-04-25 17:53:04 +01:00
}
],
"source": [
"print(df.head())\n",
"print(df.info())\n",
"print(df.describe())\n",
"\n",
"# Check for missing values\n",
"print(df.isnull().sum())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 1. Target Variable Analysis"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"is_fraud\n",
"0 1289169\n",
"1 7506\n",
"Name: count, dtype: int64"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y = df['is_fraud']\n",
"y.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
2025-04-25 17:53:04 +01:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAGrCAYAAAAb/EoSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP3BJREFUeJzt3QeYU2XWB/CTPpkOM8MMDL13RFCaHRVQFHHVta7l213ril3Rtbuiq2LBvgoKumtDULEgihURpapIZwYYmGEK0yc993vOC4lJppBkkpube/+/5wnDJJnk9nPf8577Xp0kSRIBAADIQC/HlwAAADAEHQAAkA2CDgAAyAZBBwAAZIOgAwAAskHQAQAA2SDoAACAbBB0AABANgg6AACgnqBz3333kU6nIzmccMIJ4uHz9ddfi+9+7733ZPn+yy67jHr27ElK1tDQQH/961+poKBALJsbbriBkplvHfNPSG687/A+BOreDyIKOq+99pqYMd8jJSWFunTpQpMmTaJnnnmG6uvrYzJR+/btE8Fq/fr1pDRKnrZwPPzww2I9Xn311bRgwQK65JJL2jwIBK7vwIfdbpd1upXOd3KVn59PTU1NLS7LqVOnJnTaWnq8+OKLlCw4ILU2H4EPNQeu559/Xuy/ycwYzR898MAD1KtXL3K5XFRWViaiK58xz549mz788EMaPny4/73//Oc/6Y477oj4wH7//feLHfWII44I++8+//xzire2pu0///kPeb1eUrLly5fT2LFj6d577w3r/TyPN998c7PnzWZzHKYu+ZWXl9MLL7zQ4jJLNJ6u9PT0oOfGjBlDyeLKK6+kk08+2f97UVER3XPPPfT3v/+djj32WP/zffr0ITUHndzc3GaB9bjjjiObzZYU+2VUQWfKlCk0evRo/+8zZ84UBzM+kzvzzDNp06ZNZLVaD36B0Sge8cRnlqmpqQlf4CaTiZLhoDh48OCw319YWEgXX3xxxOtCqzhIP/bYY3TNNdf49wGlOOecc8QBKxyNjY2UlpZGSjJu3Djx8Fm9erUIOvxcW9uoEucl1vR6vcg8aapP56STTqK7776bdu3aRW+88UabfTrLli2jY445hrKzs8WZ14ABA+jOO+8Ur3Gr6aijjhL/v/zyy/1NZl+Tkvtshg4dSmvWrBHRnQ9wvr8N7dPx8Xg84j3cj8EbHwfGPXv2hJVPDvzMw01bS306vMHzWW+3bt3IYrGIeX388ccpdHBv/pzrrruOFi9eLOaP3ztkyBD67LPPwg4m//d//yfSO7zxjRgxgl5//fVmOV8+O/z444/9015cXEzRamtdfPDBB3T66aeL9CvPC599Pvjgg2JdRLrcfUpKSuiss84S67BTp0504403ksPhOOx0cp8ez+s333zT7LWXXnpJvPbbb7+J37nlzuu2a9euYro7d+5M06ZNC3s58UFw//79olVxOHJtG+GmzXn5cLDkZcvzz3h/5ud42jiI5uTk0LnnnttsebTWd+v77MD38/w99NBD4jt4mznxxBNp48aNipkX32esWLGCbrrpJsrLyxPb3PTp06mioiLovRz4uHuBgzl/JmeArrjiiqD38DodP368+D6r1UqjRo1qtZ+Zj51HH320WC4dOnQQ+5Uvg8P7Ci8nnjff/ht4bGqpT+fdd98V38ffy9PIwXnv3r1B7+H9j4/D/DzvX/x/nudbbrml2f761ltvic/LyMigzMxMGjZsGD399NMRraOYNkG4f4APOryQ/va3v7X4Hl5o3CLiFByn6XgH2r59u1jBbNCgQeL50GYzrzSfqqoq0do6//zzxULkA21b/vWvf4kVcvvtt4uD81NPPSWa6dwvE8nZaDjTFoh3Lg5wX331lQgIfBa8dOlSuvXWW8UKfvLJJ4Pe//3339P7778vdgxeqdxP9qc//Yl2794tNtjWcLOaNz5ejnxw4g2fNzbemGpqamjGjBli2rkPhw/UvBP60j+8cbWFU6iVlZVBz/EO4WvNtLYueMfljZd3Wv7JLWFebnV1daIlECmex4kTJ4plcf3114tgxvPDn3s4HPx4Gt555x06/vjjg157++23xQGcD+aMlzdvo//4xz/ETs7bC58k8feGUyTC2wSfgP373/8W/WatbV9ybRuBDhw4EPS7wWAQBzYf/mzeHng9cUBkP//8M/3www9i/fJ2wwdoDqi8vf3+++9RtWr58znonHbaaeKxdu1aOvXUU8npdFKsxGJeeBvg5cOpaH4vHzd4/+JthvG2wdPN38NdCHwSze/j9RSID8q8ri+66CIxj3zg5mC3ZMkSsW36cNqegzcfT/g4w5mbVatWiW2cv4e/n6eJt+W77rpL/E1bxz7eB/kEik+UZ82aJU6GeFr4WLtu3ToxvT4cXDh4crqVg+QXX3xBTzzxhDhZ5O2Y8X5wwQUXiP3w0UcfFc9xVos/j48xYZMiMG/ePD4Fk37++edW35OVlSWNHDnS//u9994r/sbnySefFL9XVFS0+hn8+fwe/r5Qxx9/vHjtxRdfbPE1fvh89dVX4r2FhYVSXV2d//l33nlHPP/000/7n+vRo4d06aWXHvYz25o2/nv+HJ/FixeL9z700ENB7zvnnHMknU4nbd++3f8cv89sNgc9t2HDBvH8nDlzpLY89dRT4n1vvPGG/zmn0ymNGzdOSk9PD5p3nr7TTz+9zc8LfC9/buiD1+nh1kVTU1Oz56688kopNTVVstvtES933zzyuvNpbGyU+vbtK57ndd2WCy64QOrUqZPkdrv9z5WWlkp6vV564IEHxO/V1dXisx577DEpUr7tnLfrb775Rvx/9uzZrS53ubaNwGkLffi2Vd9+fcwxxwQtn9bW48qVK8X758+f3+w7Qvk+u6ioSPxeXl4u5oWXhdfr9b/vzjvvFO9raVtoTUv7YizmxfcZJ598ctA03njjjZLBYJBqamrE74sWLTrs8bCl73U6ndLQoUOlk046yf/ctm3bxLY4ffp0yePxBL0/cBqGDBkStF+EHut8+wF/B2/v/D02m83/viVLloj33XPPPf7neJnzc779wIeP46NGjfL/PmPGDCkzM7PZco1UzEumOQq3VcXmi66cfom2051bRxzBw/WXv/xFnB0G5rY5bfLJJ59QPPHn89kkn5kH4lYGH0s+/fTToOe59RXYCcqtQW7C7ty587Dfw6lDPgsJ7F/i7+US6ZbSSuHiMx8+wwl88PI83LoIPMPn7YFbS9wK4D6fzZs3RzwdPI+8znjd+fCZKbc4w/HnP/9ZnJkGph84xcHbIL/mm2Y+u+T3VFdXU7Q4JcIpI27tcAstkdtGoIULFwatxzfffDPodc5O8DS1th651cst2759+4r9mFsokeIzaD7b5zP2wHRcrEv3YzEvvG0FTiNvv9wi4DRd4LGMWyz8ea0J/N7q6mqqra0VnxX4nZw65W2RW2bcPxMomktOOO3H2zu3+AL7erhlNXDgQJFiD3XVVVcF/c7TGLh98fxyq5G3nfaIedDhg1zgAT4U7+ATJkwQ14pw05Cbupz2iCQAced2JEUD/fr1a7YSeWNrT39GOHjj5DRQ6PLgVJfv9UDdu3dv9hncvD/cAZA/h+cxdGNt7XsiwXlgPuAFPnr37n3YdcEpKs6BZ2VliYMjpyB8nb2800WK54HXWegOyPn5cEyePFlMiy81wvj/nNbq37+/P4By2oAP+LxtcvDgwMH9PJHiNAn/XWslybHeNvhAzt8X+AjNx/P8BK5H3g8DcVo2FAdNPhD6+p14e+B1yWnbaNdjS/skf2Zgqq+9YjEvocvcN32+Zc6pWk5xclqMP4v7/ubNm9esn5GDEleM8sG/Y8eO4js5rRf4nTt27BD7byRFPuEs55b2Dw46odsXT1toqj302MMBjPcVTqdzepL7rqLpV4xp0OGOXl6QfHBoK+p/++234oyH+4B++eUXEYhOOeWUZjtJW58Ra62dTYQ7TbEQembmo+Q7ire0Lngn5h1yw4YNIjf90UcfibMjXx448ARDruXOBxnuJF20aBG53W7Rb8K5aF8rJ/CMe+vWrSIHzjsiF8dwIOAceCT4AM9
2025-04-24 23:39:36 +01:00
"text/plain": [
"<Figure size 800x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Target variable analysis\n",
"plt.figure(figsize=(8,5))\n",
"df['is_fraud'].value_counts().plot.pie(autopct='%1.1f%%', startangle=90, labels=['Non-Fraud', 'Fraud'], colors=['skyblue', 'orange'])\n",
"plt.title('Distribution of Fraud vs Non-Fraud Transactions')\n",
"plt.ylabel('') # Remove y-label for better appearance\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2. Transaction amount analysis"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Transaction amount analysis\n",
"plt.figure(figsize=(12,6))\n",
"sns.boxplot(x='is_fraud', y='amt', data=df)\n",
"plt.yscale('log') # Using log scale due to wide range\n",
"plt.title('Transaction Amount by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 3. Transaction Categories Analysis"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKIAAAJmCAYAAABvzSgSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAApBdJREFUeJzt3Qm8ldP+x/Ffc2lWmpSEKA2iRKZLUmaROUpSpkhR1E2loqtEg8gURYiLTEnJWCIiUmSKcpMMDYrm/X991/2vfZ+922fs9Jxz9vN5v15Hzt7POXvvdZ5hPb/1W79VJBaLxQwAAAAAAADYzYru7hcAAAAAAAAAhEAUAAAAAAAAQkEgCgAAAAAAAKEgEAUAAAAAAIBQEIgCAAAAAABAKAhEAQAAAAAAIBQEogAAAAAAABAKAlEAAAAAAAAIBYEoAAAAAAAAhIJAFAAACNVll11m++67b36/jch6++23rUiRIu7fsAwePNi95m+//WZR98MPP7i2eOyxx/L7rQAAkC8IRAEAsBvoRjM7X2EGA8K0cuVKF3xYuHChFTTr16+32267zQ455BArV66clSlTxho3bmw333yze985NX36dPdZkf+OP/74DI+1r776ygpj0KpLly62//77W+nSpa1GjRp23HHH2aBBgxK2u++++3YpsFWQj1cAQPopnt9vAACAdPT4448nfD958mSbNWvWTo83bNjQ0pFubBXsUeZTs2bNEp576KGHbMeOHfnyvr7//ntr06aNLV++3M477zzr3r27lSxZ0j7//HN75JFH7IUXXrCvv/46x4Go8ePHF5pglAIZf//9t/vc6ah27do2fPjwnR6vVauWFSbffvutHX744S5Qevnll7tj6eeff7ZPPvnE7rzzTnd8BQNRVatWddmGeX28AgCQ1whEAQCwG1xyySUJ33/wwQcuEJX8eLK//vrL9thjD0tnJUqUyJfX3bZtm51zzjn2yy+/uEy0Y445JuH522+/3d3gp6tNmza54FPRokVddk26qlixYpbHWdDGjRutbNmyVtDcc889tmHDBpelVLdu3YTnVq9enW/vCwCAXcXUPAAA8nEakaaELViwwGWpKADVv39/99yLL75op512msviKFWqlJuaM3ToUNu+fXvK37FkyRI74YQT3O/Ye++9bcSIETu93rhx46xRo0Zum8qVK1uLFi3sySefjD//448/2jXXXGMHHXSQy8KoUqWKyxrS9KBka9eutV69erkMCr0/ZaF06tTJ1QBSkEeZHKJpRX5qlJ86lKpGlIIBN954o9WpU8f9Pr2Hu+66y2KxWMJ2+j09evSwadOmuc+tbfWZZsyYkWV7P/fcc/bZZ5/ZP//5z52CUFKhQgUXjPLee+899/n32Wcf9zp6b/rMyiby9FmUDeXfm//ylPk1evRo9x4V/KlevbpdeeWVtmbNmoTX1nbKqNLfW38f/S31N1U7JWe5KKtL72vPPfd02x555JH26quvpqwD9fTTT9uAAQPcPqFtNS0xoxpRH374oZ188skukKNt//GPf9jcuXMTtvnzzz/thhtuiP/dq1WrZieddJLL0skO7R/nn3++a2vtXz179nQBMk+vqSmTqWifaNeune0KtaWmY3733Xd26qmnWvny5a1jx47Z/nv7Y05fqX538n6t40SPq00rVapknTt3do9lh96jjqvkIJSo3T295uLFi+2dd96J73/+/f3xxx920003WZMmTdznVrufcsop7jjwsjpeU+2DGbVDVucYAACEjCgAAPLR77//7m4ML7zwQpfFoUCF6CZQN469e/d2/7755ps2cOBAF0gYOXJkwu9QUEMBBGX76Cb/3//+t6t3pJtP/W4/He7666+3c889N37zr+loCj5cfPHFbpuPPvrI3n//ffdedAOsANT999/vbjYVFPGZWsrSOPbYY+3LL790U4YOO+wwF2B46aWX7KeffnLTDYcMGeLer6a+aVs56qijUraBgk1nnnmmvfXWW9a1a1c3Nej111+3Pn362H/+8x+XGRI0Z84ce/75513QTIGEsWPHWocOHdx0OwU3MqL3J5deemm2/jbPPvusy1C7+uqr3e+dP3++u9HWZ9RzoqCSpjWlmnbpn9ffUjf4av9ly5bZvffea59++qkL8vjssH79+rng4RlnnOGCLQoU6N9gkEaUzaV21PvS79P7mjRpkms//d3PPvvshO0VvFQWlIIRmzdvznA6nvYv7SvNmzd39YeUNfXoo49a69atXYCmZcuWbrurrrrKvY6CgQcffLDbf/X30L6g/SAr2j8V2NDUOWUJ6m+n/VdTV/3fplu3bvbFF1+4QKOnfVNTJhVUy4qCtclF0RUE1HHkM+PUtgpGKtjp9+vs/L1zQvv1WWed5dpH7abjQlM/FYzKDgWg3njjDfe30d8hIwp0Xnfdde7zKcgq/jyioKWCtgqw1atXz+0/DzzwgAv46ZhW4DOnx2tGsnOOAQDAiQEAgN3u2muvVWpPwmP/+Mc/3GMTJkzYafu//vprp8euvPLK2B577BHbtGnTTr9j8uTJ8cc2b94cq1GjRqxDhw7xx84666xYo0aNMn2PqV5z3rx5O/3+gQMHuseef/75nbbfsWOH+/ejjz5y2zz66KM7bdO5c+dY3bp1499PmzbNbTts2LCE7c4999xYkSJFYt9++238MW1XsmTJhMc+++wz9/i4ceMy/XyHHnporGLFirHsStUew4cPd+/pxx9/zPRvK++99557fMqUKQmPz5gxI+HxVatWxYoXLx5r3759wnaDBw9226m9vBtuuME9pt/t/fnnn7F69erF9t1339j27dvdY2+99Zbbbr/99tvpc/jn9K//m9WvXz/Wrl27+N/Pf3793pNOOin+mNpPnzenBg0a5F7zzDPPTHj8mmuucY/rbyhr166NlS5dOnbzzTcnbHf99dfHypYtG9uwYUOmr+OPh+Qv34b6V9/fcsstuf576zX0ld39esSIEfHHtm3bFjv22GMzPDaCvvjii1iZMmXcts2aNYv17NnT/c6NGzfutK2O7VTvSecKv094y5Yti5UqVSo2ZMiQ+GOZHa/6TMF9MKN2yM45BgAAYWoeAAD5SFOAlC2TTFPjgtOhlOGhTAVlbCSv/qVMiGBNHGW9KINF2RCepgUps0OZJRkJvubWrVtdtssBBxzgfjY49UpT3DR9Kjn7RoLT0nJS7LtYsWIumyJIU/UUe3rttdcSHlexcU1V9Jo2beqmHAU/byrKJlMGVXYF20NTB/U3UJaI3pMymrKiLBpNydLUNf2s/1LWkf5mygCT2bNnuywdZXgFKcslVVvpbxucWqjfpUwWZbApyyVI2TfBz5GKahB98803LmtFf3P/PvWZTzzxRHv33XfjxeW1LyjDJTerC8q1116b8jPqc4naS1lETz31VHxapjKcpk6dau3bt89WLSdlXClDLfjVt2/fhG2U9ZTXf+9k+kzFixdPeC3t56n+rqloipv+Njq29bcdM2aMawNlOyn7KLvnF2W3+XbU31f7i6Y5Znc6ZXZl5xwDAIAQiAIAIB+pdk+q6VKq+aJAj27MFWTZa6+94sGmdevWJWyraXTJASDVZwnWIdJUPd2AKohRv359FxBIrv+jWjianuPrNGkVLr2uatoEX1O1a4LTpnaValNpilBykMivKKjng1TDJ1ny501F7aigXnZpqp9q46gWk9pObaEpTan+BqkouKPtVM9HPxv80vRGX3Dafz4F/YL0uvpcQdpWQYRkGbWVpmNl5336oFXy+3z44YfdlD7/eTV9UNPmtI9oX1Jdq6wCgEHa94IUUFSgJFiHTLXG1PaaEiianqYpZdmdUqlglYKVwS9NI/QUHNIxk9d/72T6W9SsWTM+JdBL9ffLyIEHHuimfCoopmlud9xxh3v/CjyqXbKiAKKmtqrdg8e0flduPlNmsnOOAQBAqBEFAEA+SpWtosCPboAVOFHtFt2sq8aNMhh0s+ezU4JZFqkEC30rULF06VJ75ZVXXGFvZTVpyXcFnvwy8MrUUF0gFaNu1aqVC4IpwKWaUcmvmZ+y83lTadCggct
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Transaction categories analysis\n",
"plt.figure(figsize=(14,6))\n",
"sns.countplot(x='category', hue='is_fraud', data=df)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Transaction Categories by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4. Time-based Analysis"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/8AAAIjCAYAAABViau2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAV3xJREFUeJzt3Qm8VGX9OP6HfVERFQERRU0TV0hcy0yRxKVywSIzxT1NTLTUKMW1LE1cUXLB5asmWpm5Ie6Z4r6vX01KSxFNAcUFhPm/Ps/vO/c/93LBi17uDIf3+/U6DHPOc888c+bMmfN51lalUqmUAAAAgMJqXe0MAAAAAIuW4B8AAAAKTvAPAAAABSf4BwAAgIIT/AMAAEDBCf4BAACg4AT/AAAAUHCCfwAAACg4wT8AAAAUnOAfgGZ32WWXpVatWqV//vOf1c5Koa222mppn332qXY2mI/4bJZeeulqZ6Mm3HPPPfmaEI8AVIfgH2AxDq4fffTRRrdvvfXWaf31109FCRiashTVAw88kE444YQ0bdq0VGvnX3np2LFj+vKXv5yGDx+e3nrrrYXe369//ev0l7/8ZbF477VaCDS/78XHH3+cFjfPPPNM2n333VOfPn3yubXyyiunb37zm+ncc89t0nnTVM8//3w+vxRSAkuKttXOAADMzzrrrJP+53/+p966kSNH5trUX/7yl2lJEAHwiSeemGuRu3btWm/bSy+9lFq3rl45/kknnZRWX331HGD+/e9/TxdccEG65ZZb0rPPPps6d+7c5P1EEBfB3i677NLk9059/fv3Tz/96U/nWd++ffu0OInPfJtttkmrrrpqOvDAA1PPnj3T66+/nh588MF09tlnp8MOO+wzz5uFCf7j/IrC0ihAASg6wT8AzWbmzJlpqaWWarb99ejRI/3whz+st+43v/lN6tat2zzrK82dOzfNmjUr1xoWWYcOHar6+jvssEPaeOON8/8POOCAtMIKK6TRo0enG264Ie2xxx6pVn344YcLVTixOIja8QV9JxaXY/CrX/0qLbvssumRRx6Zp8Bn6tSpVcsXQBFo9g+whPj000/TySefnL70pS/loDFqun7xi1+kTz75pF66aCocTWE/q395uen3vffem3784x+n7t27p969ezf62sOGDcsB++zZs+fZtt1226W11177C723yEc0Ob/qqqvSeuutl9/fhAkT8rbf/e536atf/WoOTDt16pQGDBiQ/vjHP853H9GMOLpMxD5iX+X9lL3//vtpxIgR+XhEmnjf0ST58ccfr0tz3333pe9+97u59jLSrLLKKumII45IH3300Tyv++KLL6bvfe97acUVV8z5i2NRbtUQn8NRRx2V/x817OWm3OVmyo31+X/11Vfzay+//PI5uNt8883TzTff3Gh3imuvvTYHW/G5RUHJtttum1555ZXP/TkMHDgwP06ePLnJxz7yEYVGl19+ed37i/f0We89XHnllXmfse94v9///vdzLXFjXWAee+yxtNVWW+VjEud97Cf2F3m88MIL674Xm2yySQ48K02ZMiXtu++++ThFmpVWWintvPPOTW4uHp/J4MGDc8FYr169couJUqmUt8VjfI6xv4aiRUUEwj/60Y/SFzG/YxCioGannXbK+Yr3FschrhNz5sxp0vgSse9YKv373//OtfHxfuP7Eed+w+vM/PzjH//I37vGWnrEvj7rvAn/+te/8jUpvktxbsT5F9+Jys8rrl+xLkRLg/I+ymMSNPU6GNe0aD2w1lpr5e9QvNaWW26Zbr/99ia9X4CWpOYfYDE2ffr09M4778yzvrEgO2pm40Y5mslG8+CHHnoonXrqqemFF15I119//efOQ9xkR+A6atSofDPemL322itdccUV6bbbbkvf+ta36gVVd911Vzr++OPTFxX7iWA2AvgoaCg3442mwt/5znfSnnvumVsDXHPNNfmm/6abbspBT6Vouv7nP/85v6dlllkmnXPOOWnIkCHptddeyzf14eCDD84BbLzOuuuum/773//mv4vjuNFGG+U01113Xa5ZPeSQQ/LfPfzww7m/cgRFsa3s6aefTl//+tdTu3bt0kEHHZTzHMHPjTfemIPy3XbbLf3v//5v+sMf/pDOPPPM/L5CHO/GRH/7CLbjtX/yk5/k147PPN5/5HnXXXedpxVFdBv42c9+ls+l0047LR+nODc+j8h7KB+rphz76NYR5+amm26aj0GIADQCxwW99zg+xx13XC44ib9/++238zGO4PaJJ56oFzzGZxStFKJwIGrHo0VJ2dVXX50LdCLAjoAvjkEc9wjY43MJcQ4899xzucl5fEZRAx3BXZwXn9VcPILo7bffPhfCxL6jMCnO9yiMi0KAeM3IU2x79913cyFGWZwHM2bMaFKNfnznG14LIsgv1+7P7xhEEBzdaI488sj8GN+j+C7H655++ulpYUUBVxQixbGJczAKFeIzjv02RfTznzRpUu46sqBxS+Z33oQovInuA/Feo8Amgv7okhKFFNHUP45JnCeRv/iOR0FIdDEK5cemigKCuI6W8xLHLcZiicLAKBQEqCklABY7l156aVQbLnBZb7316tI/+eSTed0BBxxQbz8/+9nP8vq77rqrbl08P/744+d5zT59+pSGDRs2Tx623HLL0qefftpo/iZPnpyfz5kzp9S7d+/S0KFD66UbPXp0qVWrVqVXX321ye893tc3vvGNeuvitVq3bl167rnn5kn/4Ycf1ns+a9as0vrrr18aOHDgPPto37596ZVXXqlb99RTT+X15557bt26ZZddtnTooYcuMI8NXzOceuqp+b3+61//qlu31VZblZZZZpl668LcuXPr/n/66afXO5YL+kxGjBiR09533311695///3S6quvXlpttdXy5xDuvvvunG6dddYpffLJJ3Vpzz777Lz+mWeeWeD7K3++d9xxR+ntt98uvf7666VrrrmmtMIKK5Q6depU+ve//71Qx36ppZaq9z4+673/85//LLVp06b0q1/9qt76yHfbtm3rrY9zJfYxduzYemljn7E+8vzuu+/Wrb/hhhvy+htvvDE/f++99/LzyMvCivcUf3vYYYfV+2x32mmnfK7FsQsvvfRSTnfBBRfU+/vvfOc7+XOrPB8aE+dBY9eA8vd4fsdgfufqj370o1Lnzp1LH3/8cb3XaOwzin1Xfh/POuus/FrXXntt3bqZM2eW1lxzzbw+zr0FmThxYv5sY9liiy1KRx99dOm2227L505D8ztvGntPkyZNyq9/xRVX1K277rrr5punpl4H+/Xrlz9PgMWBZv8Ai7ExY8bkGsiGy4YbblgvXQzCFqJ2r1J5gLCGzcIXRgzK1aZNmwWmidrlqP3961//mmtZy6KZftRUR7PuL+ob3/hGrolvKJr9lr333nu5hjtq2yub6ZcNGjSorvYwxHHs0qVLrgUuixrlqBl/44035puXyteM1hBRIxvvM2KKqJUOUVP9t7/9Le233365e0Clzzt7QXzOUfsYzY7LojY3akaj9jNqPStFU/bKAeHiuITK97sgcbyiJj66NUQta7xWtCKJ/ucLe+wXRrTOiHEdotY/jm15icHhovn13XffXS99NGeP99qYoUOHpuWWW26+xyDeQxyjaA4e7+HziFYiDbuXREuIO+64I6+LmRI222yz/H0oi1YAt956a/7eNOV8iL9veB3Ye++9P/MYVH5G8d2M4xjHIFqPRJeUz3MORreIaGFUFjXt5dr5zxK15VHzHy1GnnrqqdwiIrpMxDkV14+mqHxP0SIiWj2sueaa+bv7Rc+9hmKf0Srk5Zdfbtb9AiwKmv0DLMYi0CsPuFYpgpnKJsDRBzYC8LgBrhTBUty8xvbPq6mBewQiv/3tb3NwGP+PkeqjD/LYsWM/92s3JR/RxPyUU05JTz75ZL1+x40FVA2D8PKxrAz6IhiJMQwi4I3+5jvuuGN+P2ussUZdmmjyHE2nI1hpGDBGAFwZXDbnlIzxOUYQ2FC5KXNsr3y9hu+3HAQ3NciNwqcIXNu2bZubkUcf68rZBxbm2C+MCLSiICUC/caUm+u
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Time-based analysis\n",
"df['trans_date_trans_time'] = pd.to_datetime(df['trans_date_trans_time'])\n",
"df['hour'] = df['trans_date_trans_time'].dt.hour\n",
"df['day_of_week'] = df['trans_date_trans_time'].dt.dayofweek\n",
"\n",
"plt.figure(figsize=(12,6))\n",
"sns.countplot(x='hour', hue='is_fraud', data=df)\n",
"plt.title('Hourly Transaction Patterns by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 5. Geographical Analysis"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\babaw\\Documents\\Work\\Mana Knight Digital\\task_fraud_detection\\.venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Creating legend with loc=\"best\" can be slow with large amounts of data.\n",
" fig.canvas.print_figure(bytes_io, **kw)\n"
]
2025-04-24 23:39:36 +01:00
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1200x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Geographical analysis\n",
"plt.figure(figsize=(12,8))\n",
"sns.scatterplot(x='long', y='lat', hue='is_fraud', data=df, alpha=0.5)\n",
"plt.title('Geographical Distribution of Transactions')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 6. Population Analysis"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA+wAAAIjCAYAAACZEJFdAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO0VJREFUeJzt3QuUlVX9P/49gIAKjCIKoiBZ3sYLFIyIaYJRpMk3dVVmZYgFGeOVvH4rqb5eshJJGyNNw75lolZU1lczvFBGMsJCrcmUJMWUm5cZQAVlzn/tZ/1nfjMMA8PMwNlzzuu11uPwPOeZ5+xzkcP77L0/uySXy+UCAAAAkJQu+W4AAAAA0JzADgAAAAkS2AEAACBBAjsAAAAkSGAHAACABAnsAAAAkCCBHQAAABIksAMAAECCBHYAAABIkMAOwA4zZMiQcOaZZ+a7GUkoKSkJX//61zv0mqNHj862HW3WrFnZ43n88cd3+H0Xy2sLQHES2AFot3/961/hi1/8Yth///1Dz549Q58+fcL73//+8L3vfS+8+eabLf5edXV1Fmz+/e9/d2h74pcCMTTVb7E9Q4cODdddd11Yv3596My213PWGWz6ujbe7rvvvtDZrFq1Kpx//vnh4IMPDjvvvHPYa6+9wpFHHhkuvfTSsHbt2obz7rjjjjBjxow2388bb7yRvWcefvjhDmo5ADtKtx12TwAUpN/97nfhE5/4ROjRo0f43Oc+Fw477LCwYcOG8Oc//zlcfPHF4e9//3u4+eabs3P/+c9/hi5dujQJn9/4xjeyXuHY+96RYnt+9KMfZX9+/fXXwy9+8Ytw0UUXhaqqqnDnnXeGzmpLz9kf/vCHUOgav66NxS9kOpNXX301jBgxItTW1oazzjorC+2vvPJKePLJJ8MPfvCD8KUvfSn06tWrIbD/7W9/CxdccEGbA3t8z0T5GIEBQNsJ7AC02dKlS8OnPvWpsN9++4UHH3ww7L333g23VVRUhCVLlmSBvnHY2lG6desWPvvZzzbsT5kyJYwcOTLMnj07TJ8+PQwcODAUmu7du4dCt+nrujXr1q0Lu+66a0jNrbfeGl544YXw6KOPhqOPPrrJbTHEF8NrCcDWGRIPQJt9+9vfzobuxvDROKzXe8973pMN+d3cHPY47zn2zEdjxoxpGNoch+1OmDAh9OvXL7z99tvNrvnhD384HHTQQdvc1tizX9+7WD+cfOXKleHzn/986N+/fzaUP/bS3n777U1+L54b2/Xd7343XH/99dmXE3H48nHHHZf1erZmDnl8zFsbQfD8889nXyrExxavv8cee2TPT+Oh71t6zlq6/219jHE0xLvf/e7sy5Xy8vJsRMK29OTGqRGx7XEaQhxx8dprrzXcvj1e18bisO/4OOIohE9/+tNh9913D8ccc0x2W+y5jq9D/bSNAQMGZD3bsVe7Na9V/bUbi9MrLrzwwrDnnnuG3r17h//6r/8KL774YqunkXTt2jUcddRRzW6Lz11sYxRfz/ilV3x/1L/e9e2LI1muuOKKMHz48FBaWpp9MXHssceGhx56qMlrG9sXxV72+mvUz7HflvdsHJkS7ys+1tjGww8/PJv2AsD2o4cdgDb77W9/mwWgTXsIW+MDH/hAOO+888INN9wQ/vu//zsccsgh2fH484wzzgg/+clPwv333x9OOumkht9Zvnx51pM/bdq0NrU3hqQoBso4tz4GlTgK4Jxzzgnvete7wt13350FlTiEvvEXDVFsz5o1a7KRA2+99VYWVI4//vjw1FNPZWG4vWIw/stf/pKNWNh3332zoBWHRsc2xgC6yy67bPE525xtfYxx6HV8jDF0x1AXv5A59dRTw3PPPRd22mmnrT6GeB+77bZbFgbj9IfY/hg04xcK8Xod9bquXr26yX5sWwys9eKXGgcccEC4+uqrQy6Xy4498MAD2eOYOHFiFtbrp2rEn3/961+bhfHW+MIXvhB++tOfZl8OxP8H4mP46Ec/2qrfjV/8bNy4Mfzv//5v9kVGS77yla+Empqa7IuA+IVRVD9UPvbEx+kBp59+epg0aVL22sUvz8aNGxcWLFgQhg0bloX1+iH2p5xySvZ6RkccccQ2Pdb4/MX7+eAHPxiuvfba7Ng//vGPbITApu8jADpQDgDaoKamJiah3Mc+9rFW/85+++2XmzBhQsP+3XffnV3joYceanLexo0bc/vuu2/utNNOa3J8+vTpuZKSktxzzz23xfuJ97HrrrvmVq1alW1LlizJXX311dnvHnHEEdk5M2bMyO77pz/9acPvbdiwITdq1Khcr169crW1tdmxpUuXZuftvPPOuRdffLHh3Mceeyw7fuGFFzYcO+6447Jtc+2Jj72x+LvTpk1r2H/jjTea/d78+fOz837yk59s9Tnb3P1v62PcY489cq+++mrDub/+9a+z47/97W9zW/LjH/84O2/48OHZ9et9+9vfzo7H63TU6xqvt+lW/5jj8xn3Tz/99Ga/u7nn9+c//3l2/rx587b4WjW+dr3Fixdn+1OmTGly3qc//elmr+3mLF++PLfnnntm5x588MG5s88+O3fHHXfkXn/99WbnfvSjH91sm955553c+vXrmxx77bXXcv3798+dddZZDcfi/wMttam179nzzz8/16dPn+w+AdhxDIkHoE1i714Uh8d2tDh8/TOf+Uz4zW9+k/Ua1vvZz36W9WTGnuLWzF2OvYtxi0PzY4/0qFGjwq9+9avs9t///vdZT2vsNWzcUxt7sOMw/0ceeaTJ9U4++eSwzz77NOzHat5xTny8TkeIw+DrxSHjcah2bHfssV60aFGbrrmtj/G0007LhpHXi8Oro9gz3RqTJ09u0hMfe3XjnPP656gjXtc4VDz29jbeYvX/xs4+++wtPr9xhETspa8fjt6W57f+McXnsrHWFoaLozKeeOKJrK1x2sDMmTOznvpYKf5//ud/GkYGbEkcUl8/172uri4rZPfOO+9kxeza+p5pSXwfxv+n4vMNwI4jsAPQJnEOa9Q4eHWkOP85DumuD9hxiPXChQuzYdWt0TjYzZs3LyxbtiwbvhuH8EdxqHYcNt24an3j4eXx9sbiuZs68MADO2x5tfhY43zkQYMGZfPH41zv+GVDHLoeh0S3xbY+xsGDBzfZrw/vjeehb8mmz1Ecuh1rGzR+jtr7usaQOnbs2CZbnFfd2OaCfwyzceh2DMoxvMfntv68tjy/8bmLz2uc79/YtszDj89NHK7+8ssvZ89DnOoQ2xXfB3Foe2vEegRxeHt8v8epHvH345z3tr5nWhLrK8T3+wknnJBN2Yjz/zvjUnoAnY3ADkCbA3ustL5p4bWOUlZWlgWxOEc4ij9jb+InP/nJbQ52sac4hoztraV50HGu8tace+654aqrrsoe31133ZUt0Ra/bIghLPae7gjxOduc1vT27qjXtTUa96bXi9e/5ZZbsh7tX/7yl9nzWx84Gz+/7XkN2yreZwzD8T0Qv1yKXwTEUQdbE5+7WI8gfmkQA358PPE9E2srtPY909rHG3v+Fy9enI2OiMX1YmG7GN63NP8egPYT2AFos1g4LBZymz9/fpt+f2uFvmJvbCzkFXsgY0G0WNCr8ZDt9ohFv5599tlmwebpp59uuL2xeO6mnnnmmSaVtGPbYo/4pjbtyd6ce+65Jws/cXj3xz/+8fChD30oq3C+6fW2pTjatj7G9tr0OYrD7uNrt2m18e35um5OHCEwd+7ccNlll2WV0mPxtfj81o+2aKy1r2F87uLzWl/IsF7sKW+P2KbYhvjcbO01j++ZeH78AiKOUIjF5uIXVHHIf2vfM9vyno1frIwfPz7cdNNN2eOOxQljEcFY1BCA7UNgB6DNLrnkkmwpqVgte8WKFc1uj/+o39KyT/XrY28uMERx7nUMG3Eoc5xHvS3rb2/NiSeemFUnj+uy14vzf2+88cZsKHdctq2xOXPmhP/85z8N+7EK92OPPZb1MtaLPZ0xDK9atarhWJynHIfit6Z3e9Oe7NiWTXs6t/actecxtlesut54ybY43DveX+PnaHu/rlsaObDp8ztjxox
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Population analysis\n",
"plt.figure(figsize=(12,6))\n",
"sns.boxplot(x='is_fraud', y='city_pop', data=df)\n",
"plt.yscale('log')\n",
"plt.title('City Population by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 7. Age Analysis"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA+QAAAIjCAYAAACKx9GpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOQxJREFUeJzt3QmYVnXdP/4PI6ssg6CCyKK4gQtpaIiiGZI8PmoSpC1WaJSVhgqlxeX6kIRaroXrZZjlkuZS+qRmqPTTcMMll8KNAEWwVEBRFuH+X9/zNPOfGRZZhvnO8npd13HmPufMub/3Mozv+/NdmpVKpVIAAAAAdaqsbu8OAAAASARyAAAAyEAgBwAAgAwEcgAAAMhAIAcAAIAMBHIAAADIQCAHAACADARyAAAAyEAgBwAAgAwEcgAalX/+85/RrFmzuO666zb5faX7SPeV7rPCdtttF4cffnjUhYceeqi4//S1rtXl46zvzjnnnOJ1AID1JZADsIrLL7+8CBgDBgzI3ZSiHRVb8+bNo1OnTtG/f/84+eST48UXX6zVx1wXIb6xta0uPlxZ3bbvvvtGQ3TXXXfFpz/96dh6661j8803j969e8fRRx8d9957b+U5c+fOLUL+M888s8H388c//rG4BgD1W7NSqVTK3QgA6pf999+/CAUpEL388sux4447ZmtLCl+f/exn4+tf/3qkP1kLFy6MZ599Nm699dZYvHhxnH/++TF27NjK89M5S5cujRYtWsRmm222zvez++67x5Zbbrle1eYVK1bE8uXLo1WrVpUV0lQ5Tte6++671/ORrn/bVq5cGcuWLYuWLVtGWVndfsa+KR5nTen9t/3228eXv/zl+O///u9qx7baaqsYOnRo1Acp+P7P//xP8d5bm5/97Gdx6qmnFoH8yCOPLAL5K6+8En/+85/jE5/4ROWHLk8++WTss88+MXny5Dj22GM3qE3f+973YtKkSR/bJgDyap75/gGoZ2bOnBl//etf4/bbb49vf/vbccMNN8TZZ5+dtU0777xzfPWrX62277zzzosjjjgivv/970efPn0qA1sKxq1bt96k7UkfBLRt27YI/OsT+mtbCuGb+rHWB5/85CdXef3XpOJDivr2vHz00Ufx4x//uPhw6U9/+tMqx996660s7QIgL13WAagmBfAtttgiDjvssPjCF75Q3F6dt99+O772ta9Fhw4domPHjjFy5Miicr268dv/+Mc/imul7uYpKO29997xhz/8YaPa2blz57j55puLbuwTJkxY6xjyefPmxXHHHRfdu3cvqtnbbLNNUaGsGPudqr0vvPBCTJ06tbJL9EEHHVRtnHg6dsIJJxRdjdN11jSGvEIKXXvuuWfxeHfdddfiA451GXdc85pra9uaxpCn3gOpW3+bNm2KynoKs2+88Ua1c1LltV27dsX+YcOGFd+nqvMPfvCDovK/rtb2OF977bWifRdffPEqP5c+9EnHbrrpptgY6RqpGpzep7vttlvx+lZ0/04V6f322694r6TnIj0nv/vd79Z5zoG0v2a374cffrioXqfHu8MOO8RVV121Tu3897//HYsWLSp6n6xOel8l6bVM10/Se7biNa9o3//7f/8vjjrqqOjZs2fxWHv06BFjxoyJDz/8sNprm6rjFY+hYlvbe2ZDfm8A2Hgq5ABUk4LN8OHDi27QqavwFVdcEU888URlSKioQqbq9OOPPx7f/e53iwr173//+yKU15TCZAoh2267bfzoRz8qKsu33HJLEQJvu+22+PznP7/BbU2hJHX/ffDBB4uwkz4cWJ0RI0YU7Rg9enQRcFM18v7774/Zs2cXty+55JLiWAqlp59+evEzXbp0qXaNFMZTYD3rrLOKCvnapG7+X/ziF+M73/lO8ZykrscpRKWgmCqk62Nd2lZVClQpRKXXa+LEiTF//vy49NJL45FHHomnn366+PCkQgreqdt3misghdfUdfrCCy8sgmZ6XT/Oxz3OND46vfbpPZVCY1VpX/v27YuA93E++OCDItBWVV5eXgxLSB544IHiPZWCefoAIr2mSXrcn/vc5+KYY44pqubpA5zUvtTNPn3gtL6ee+65OOSQQ4r3QQrqqeqdeo+s7fWoGrjThwJpDHl6PdOHU6vTt2/fGD9+fPE+O/744+OAAw4o9qcPFio+bEnPR3p90gcN6Xfw5z//ebz++uvFsST1bElDTtJ7/Ne//nVsqI/7vQGgFqQx5ACQPPnkk2nAaen+++8vbq9cubLUvXv30sknn1ztvNtuu60475JLLqnct2LFitLgwYOL/ZMnT67cf/DBB5f22GOP0pIlSyr3pevut99+pZ122ulj25Sud+KJJ67xeGpbOufZZ58tbs+cObNaG959993i9k9/+tO13s9uu+1W+vSnP73K/nSd9PODBg0qffTRR6s9lu6zQq9evYp96TmqsHDhwtI222xT2muvvSr3nX322cV5a7q/qtdcU9sefPDB4tz0NVm2bFlp6623Lu2+++6lDz/8sPK8u+++uzjvrLPOqtw3cuTIYt/48eOrXTO1sX///mt9rtbncV511VXFeX//+98r96V2brnllkUb1qbitVzdVvGY0/dlZWWlF154YZWf/+CDD6rdTvebnpv0Pq15H1XfsxXS/vQ6VRg2bFipdevWpVmzZlXue/HFF0ubbbbZal/LmtLzn85r27Zt6dBDDy1NmDChNH369FXOe+KJJ9bYppqPKZk4cWKpWbNm1dqVfmdW16aa75k1PQ/r+nsDwMbRZR2AalXLVO37zGc+U9xOXVhTBTRVFqt2Y04V0FSd/Na3vlVtPPOJJ55Y7XrvvPNOUb1Ms0i/9957RZUzbam7e6rMpgprza7U6ytVjpN0/dVJVclU7U9ddN99990Nvp/0WNd1vHi3bt2qVf5T5T5NSpcq1Kkb8KaSJgNLVcxUza86hjpVg1Mvhv/93/9d5WdSdbuqVJFNXc1r63Gm1z61perQh/vuu694H6zruPBUKU6V2apbmgStQuolkbrLr+61r5Be+zQhYHp8Tz31VKyv9P5P7U49O1LPjKoV7XWdXC5N/HbjjTfGXnvtVVwr9XhI3ejTGPm///3v63SNqo8p9dRIz2OqnqfPD9LzXltq6/cGgLUTyAGoDBwpeKcwniZ2S7M/py11Z07dnqdMmVJ57qxZs4rxpGmW6Kpqzsaefj4FhTPPPLPo5lt1q5gobmMns3r//feLr6n78+qksa9pJvZ77rmn+LDhwAMPjAsuuGC9g3Ga7Xtdpeeh5vjwNDFdsinH36bXJdlll11WOZYCecXxCikop9eiqjR/wLoGsHV5nKmLfBrekIJohRTO0xCGwYMHr9P97LTTTjFkyJBqW2rnx702qWt6Wh4tPc7URTw91jQEIwXz9fWvf/2rGKed2lLT6p7vNUnDQNI48PQcp/H3X/nKV4ognZ6jJUuWfOzPp+7iaYx4ejwV4/7TBxLJhjyuNamt3xsA1k4gB6CQKtlvvvlmEcpT6KjYUoUzWdPkbmuTxponaaKwmhXOim1jl1R7/vnni8r12gLzKaecEi+99FIxpjqFs/QBQapsrk9FsWplsjasbkK3ZH0mVNtYdTVDfKqap6p7msgt9WRIE/qlYFpbS7Wt7rVJoTeNH0+vd1rHPa3Lnd5vKQBXXQos1+uQehOkcfbp9yqNv3/11VfjscceW+vPpDaln0k9HX74wx/GnXfeWTymionYKn7f1mZ9Hm9t/N4AsHYmdQOgkIJBmniqYnbmqtLM2XfccUdceeWVRfjp1atXMZFamlyqapU8VcSrSpN6Jal7e6pq1rZULUyzjw8cOHCNFfIKaaKytERa2lJX+TQzeJrA7De/+c1ag8qGqOgZUPWaKdgkFZNhVVR4FyxYUG2itZpV7PVpW3pdkhkzZqxSfU77Ko7X5eNM/uu//quo5Kb3WOpxkd43aYb+TSlNGJhCZOoanqq9FdLEc1VVfR2qqvk6pPan935679SUntuNkVYd+NWvflV8ILa21ztNKpee33Ru+pCjQgrlNa3pGuv6eNf19waAjaNCDkDRFTeF7sMPP7x
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Age analysis (from dob)\n",
"df['dob'] = pd.to_datetime(df['dob'])\n",
"reference_date = pd.to_datetime('2020-06-21')\n",
"df['age'] = (reference_date - df['dob']).dt.days // 365\n",
"\n",
"plt.figure(figsize=(12,6))\n",
"sns.boxplot(x='is_fraud', y='age', data=df)\n",
"plt.title('Age Distribution by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 8. Gender Analysis"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAAHWCAYAAACxJNUiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAARW5JREFUeJzt3QuYzeX6//F7nI9DToMcixzCyMihg4io6JeSTSkT0o8oTDmVKPXbioRdDrULtXd2Ulu7CNmEQmhkOxRRdpRzxTDOZv2v+77+33WtNYZZzxizZma9X9e1GmutZ32/zzrM9FnPur/3ivL5fD4BAAAAELI8oQ8FAAAAoAjRAAAAgCNCNAAAAOCIEA0AAAA4IkQDAAAAjgjRAAAAgCNCNAAAAOCIEA0AAAA4IkQDAAAAjgjRALKdatWqycMPPyzZVVRUlDz33HOXfT/Lli2zfelPT8uWLaVevXqSFf773//a/mfOnClZLSvvZ3anj78+D/p8AMg+CNFABNu5c6f0799frrnmGilSpIid6tatK/369ZONGzdKpAR2DSh6ypMnj5QsWVLq168vjz76qKxZsybT9jNr1iyZOHGiZEfZeW6Xm/fcpz6VL19ecqKvvvpK7rjjDrnyyiulUKFCUqVKFbnrrrvsOfYcP37c3gQGvjlztWrVKtvG4cOHM2nmQM6TL9wTABAe8+bNky5duki+fPmkW7duEhsbayFy69at8s9//lOmTp1qIbtq1aqS2zVs2FCefPJJ+/fRo0fl+++/lzlz5shf//pXGTRokLz66qtB40+cOGGPmwsNMZs3b5aBAweGfJsWLVrYvgoUKCCX04Xmps+97j9//vySm912223SvXv3oMsKFy4sOY2+ZvV3Wl/PAwYMkCuuuMJ+h1esWGGv5QceeMAfop9//nn/in9GQ7RuQz8x0jeeQCQiRAMR6Mcff5SuXbtaSFqyZIlUqFAh6PqXX35ZpkyZYqE6pzt79qykpKRcNIjqqt2DDz543mOgoWPChAlSs2ZN6du3r/86XeG7nE6ePGnz1cf/cu/rYnRFNpz7zyr6SUzq5/9CfD6fPT/ZMWTryrB+kvT111+f93o/cOBA2OYF5FY5//+QAJyNHTtWkpOTZcaMGecFaKWrrE888YRUrlw56HJdpb7vvvukVKlSFq4aN24sn3zySZr1mytXrpSEhAQpW7asFC1aVO655x45ePDgeYHkxRdflEqVKlkpSatWrWTLli1pzlk/NtaVUp1TwYIFpUaNGhZ0NSCnruF95ZVXrDzh6quvtrHfffed82OkIelvf/ub3df/+7//s7leqCZaV691bloaovsrV66crW6uX7/ev9o3f/58+fnnn/3lAjo2sO75/ffflxEjRlig18ciKSkpzZpoT2Jiotxwww02z+rVq8u0adNCqqNNvc2Lze1CNdFLly6Vm2++2Z5XXYW8++67bfU+kD4+etsdO3b4VytLlCghPXr0sJXQUF3sfh47dszmoKuuqf3yyy+SN29eGTNmjFwKfSw6dOggixYtste7zuONN96w6/T359Zbb7XnW593DbD6CU6oNfRp1f7r61+3qfvR3wv9/Qh8jaf35vj6669P8w2jztF7TvV3UulKsvece/PTMi6d01VXXWW/41rW0rNnT/ntt9/829KxgwcPtn/rc+JtQ7d9sTp6198bILtjJRqI0FIODaFNmzYN+Tb6P/cbb7zRQt6wYcMsvHzwwQfSsWNH+eijjywkB3r88cft4+RRo0bZ/1g11Gr99ezZs/1jRo4caSHhzjvvtJP+z7Nt27Zy+vTpoG1p6Lrlllvk119/lf/93/+1Ok/9OHn48OGyd+/e8+p5NdzoaqHWNev/nDUIZ0SxYsXsfr399tsWxK+99to0x/Xp00c+/PBDu38apDRwaG2qBstGjRrJM888I0eOHLFgpyvb3rYDvfDCCxZ+nnrqKTl16tRFV87/+OMPe7z+9Kc/yf3332/Pg66U62008LgIZW6B/v3vf1vNrYYsDURa7vHaa6/Za0OfPy+Ae3SOGrQ0zOr1b731loUlfQOUnvTup/f86GtKS240NHv+8Y9/2BsfLVVKj75WDh06FHRZ8eLF7bWjtm3bZvvX117v3r2lVq1adrkGZn1N/M///I+98fz000/lscces9CrxxW42rdvn72R1E9PvN+xN998M+RVb++TJX0uNYCnRQO0zlsfR33s7r33Xru8QYMG9nPx4sXy008/2ZsdDdD6e69z0J+6wq1BWG/zww8/2GOsr5kyZcr4t536jfLFpPd7A2R7PgAR5ciRI7qk6uvYseN51/3xxx++gwcP+k/Hjx/3X9e6dWtf/fr1fSdPnvRflpKS4rvhhht8NWvW9F82Y8YM236bNm3ses+gQYN8efPm9R0+fNjOHzhwwFegQAFf+/btg8Y9/fTTdvv4+Hj/ZS+88IKvaNGivh9++CFovsOGDbNt7tq1y87v3LnTbhsdHW3bD0XVqlVtDhcyYcIE2+a//vUv/2V6ftSoUf7zJUqU8PXr1++i+9F96L5S++KLL2x7V111VdDjHXid/vTccsstdtn48eP9l506dcrXsGFDX7ly5XynT58Oeh70MUlvmxeam/d46rY83n5+++03/2X/+c9/fHny5PF1797df5k+Pnrbnj17Bm3znnvu8ZUuXfqij5XL/Vy0aJGNW7BgQdDtGzRoYNtIj942rZN3n/Vx0fMLFy4877apny/Vrl07ey5T7yPw9eLRbQe+zgcOHGhj16xZ479MX8f6+krruUzt7bfftnH6e9WqVSvfs88+6/vyyy99586dCxqnv9sXmlNa9+kf//iHjV+xYoX/snHjxqU5p7ReM5fyewNkZ5RzABFGywQutNqoH+3rapJ3mjx5sl3++++/20f4uiKoH8Hqqp2edOWoXbt2sn37dlslDqSrwLpq5dGP/8+dO2dlA96Kpq4464p14Li0DrzTA6b09rqy7e1bT23atLFt6oFTgTp16uT/yPpSeY+T3u8L0VIF7eSxZ8+eDO8nPj4+5BVHXfXUVVGPrszqea171fKHy0VX/Tds2GAf9weu7usqpn4M/9lnn6W52hhIn0d93Xivw0u9n/oaqFixorz33nv+cXqQpJYlhFrnrOUougIbeNLXtUdX0gPPewKfL13N19ekfmKiK7l63pU+fs2aNZMmTZr4L9PXcSir6UpX5xcuXGi/x7qiq59u6OOtNf36yU0oAu+Tt0Kvc1KZXWaRGb83QDgRooEIox9Te/WkqWmtpwaIv//970GXa12rLiQ9++yzQSFbT1qukdaBS1pyEUgDsPcRvfLCtP4PPpBu0xvr0ZCu4SD1vjVApbVvDT2ZxXucvMftQjXmGty0XlsDkJY5aJBy4TJnDY36UX/qg+PU5ewl7D1nXjlDoDp16ljg0lp7l9fBpd5PPfhSQ+bHH3/sr7XWQK31vJ07dw7pfmnpg76WAk+Bxwpc6LnRun8d69WG62vy6aeftusyEqL18U39+3Chx/tCNOxr/bYeQ6BvLrWsRLerdd2hHFyob5i1xjwmJsYCtd4n7/5n5D5dTGb83gDhRE00EGH04C4NCPo/r9S8GunUQcw7sEnrddNakVNaYx0osD41UOABeqHS/etK55AhQ9K83gtWnszsnOA9TqnvXyBdodcVv7lz58rnn38u48aNs5pfbRWo9cOhyOxuD4Gr+4F05T4rZebr4EK0PZ0+5hqktXZZW/ZpaNTXemZI67nRg/hat24ttWvXtnpsDYK6Uq6ryVonHMrBgJfzudCDU/U1qSetWdaDCBcsWGCfeFyMvpZ11VoPHNRWefpJjN6X22+/PaT75PK6y4zfGyCcCNFABGrfvr0d4LV27dqgj44vRA8iU9ov2Fv9vVRe/2ldZfa2r/TApNSrlNplQ1eEM2vfodJ96v/gNSDpSuvF6BsTPahMT7ripwdGaVcPLwxcKFxkhH78rSu+gau0eqCX8g7s81Z8U38ZhreaHCjUuXnPmR5ol5p2btGwlnrl+HLfT6XfbHjdddfZCrSuKu/atcsOdryc9CBCPQBUu9MErrZ/8cUX543
"text/plain": [
"<Figure size 800x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-04-25 17:53:04 +01:00
}
],
"source": [
"# Gender analysis\n",
"plt.figure(figsize=(8,5))\n",
"sns.countplot(x='gender', hue='is_fraud', data=df)\n",
"plt.title('Gender Distribution by Fraud Status')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 9. Job Analysis"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
2025-04-24 23:39:36 +01:00
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Job analysis (top jobs with fraud)\n",
"top_jobs = df['job'].value_counts().head(15).index\n",
"df_top_jobs = df[df['job'].isin(top_jobs)]\n",
"\n",
"plt.figure(figsize=(14,6))\n",
"sns.countplot(x='job', hue='is_fraud', data=df_top_jobs)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Top Jobs by Fraud Status')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}