diff --git a/project/data/ev_final.xlsx b/project/data/ev_final.xlsx new file mode 100644 index 00000000..27881705 Binary files /dev/null and b/project/data/ev_final.xlsx differ diff --git a/project/exercise/readme.md b/project/exercise/readme.md new file mode 100644 index 00000000..7ff7907a --- /dev/null +++ b/project/exercise/readme.md @@ -0,0 +1,40 @@ +Here's an improved and polished version of the README content: + +--- + +# Learning Goals +- Gain proficiency in **Exploratory Data Analysis (EDA)**. +- Understand and apply **data fraud analysis techniques**. +- Learn to identify anomalies in datasets effectively. + +# Exercise Statement +**Objective**: Conduct a comprehensive data fraud analysis on a **battery swap service dataset**. +The dataset contains details of battery swaps across various stations in a city. Your tasks include: +- Identifying potential fraudulent activities, such as revenue losses due to inconsistencies in swap data. +- Proposing effective solutions for detecting and preventing such fraud. + +This exercise will not only enhance your analytical skills but also provide practical experience in applying machine learning models for anomaly detection. + +# Prerequisites +Before starting this exercise, ensure you have a foundational understanding of: +- Data manipulation techniques using **Python** and **Pandas**. +- Concepts and implementations of **K-Means clustering** and **Isolation Forests** for anomaly detection. + +# Dataset Summary +The dataset for this exercise provides real-world data on battery swap activities across city stations. It contains variables such as: +- Swap station ID +- Timestamp of battery swaps +- Battery charge levels before and after swaps +- Revenue details + +This data allows you to apply fraud detection techniques and design automated alerts to minimize revenue losses. + +# (Optional) Suggested/Proposed Solutions +A potential solution involves the use of **K-Means clustering** to group similar data points and **Isolation Forests** to detect outliers representing anomalies. If required, I can create a pull request with a detailed solution. + +# (Optional) Further Links & Credits +This exercise and solution proposal stemmed from insights shared during a **DL2020 lab session**. Additional resources on fraud analysis techniques can be found [here](#). + +--- + +This structure is clearer and more engaging, providing a professional tone while ensuring the content is informative and accessible. \ No newline at end of file diff --git a/project/solution/project.ipynb b/project/solution/project.ipynb new file mode 100644 index 00000000..3014bf1b --- /dev/null +++ b/project/solution/project.ipynb @@ -0,0 +1,879 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:52.780477Z", + "iopub.status.busy": "2024-12-20T12:46:52.780062Z", + "iopub.status.idle": "2024-12-20T12:46:52.787380Z", + "shell.execute_reply": "2024-12-20T12:46:52.785584Z", + "shell.execute_reply.started": "2024-12-20T12:46:52.780430Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.ensemble import IsolationForest\n", + "from sklearn.preprocessing import StandardScaler, LabelEncoder\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Importing Data set \n", + "Find a better dataset with less noise" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:52.790285Z", + "iopub.status.busy": "2024-12-20T12:46:52.789897Z", + "iopub.status.idle": "2024-12-20T12:46:53.831171Z", + "shell.execute_reply": "2024-12-20T12:46:53.830037Z", + "shell.execute_reply.started": "2024-12-20T12:46:52.790250Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " uid name vendor_name \\\n", + "0 STATIC12 GensolCharge Pvt. Ltd. GensolCharge Pvt. Ltd. \n", + "1 STATIC14 REIL REIL \n", + "2 STATIC15 REIL REIL \n", + "3 STATIC16 REIL REIL \n", + "4 STATIC17 BluSmart BluSmart \n", + "\n", + " address latitude longitude city \\\n", + "0 NDSE Grid, BRPL South Extension 28.568238 77.219666 Delhi \n", + "1 Scada office kalka ji 28.541995 77.260583 Delhi \n", + "2 Ashram Chowk Mathura Road 28.571189 77.259806 Delhi \n", + "3 Nizamuddin Railway station 28.588991 77.253240 Delhi \n", + "4 BSES Bhawan, Nehru Place, New Delhi 110048 28.549427 77.254636 Delhi \n", + "\n", + " country open close ... postal_code zone 0 available \\\n", + "0 India 00:00:00 23:59:59 ... 110001 central-delhi NaN NaN \n", + "1 India 00:00:00 23:59:59 ... 110001 central-delhi NaN NaN \n", + "2 India 00:00:00 23:59:59 ... 110001 central-delhi NaN NaN \n", + "3 India 00:00:00 23:59:59 ... 110001 central-delhi NaN NaN \n", + "4 India 00:00:00 23:59:59 ... 110001 central-delhi NaN NaN \n", + "\n", + " capacity cost_per_unit power_type total type vehicle_type \n", + "0 15 kW NaN DC 2.0 BEVC DC 001 ['4W'] \n", + "1 3.3 kW NaN AC 3.0 BEVC AC 001 ['2W', '3W', '4W'] \n", + "2 15 kW NaN DC 2.0 BEVC DC 001 ['4W'] \n", + "3 15 kW NaN DC 4.0 BEVC DC 001 ['4W'] \n", + "4 15 kW NaN DC 1.0 BEVC DC 001 ['4W'] \n", + "\n", + "[5 rows x 25 columns]\n" + ] + } + ], + "source": [ + "data = pd.read_excel('/kaggle/input/ev-final/ev_final.xlsx', engine='openpyxl')\n", + "print(data.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Basic EDA" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:53.833721Z", + "iopub.status.busy": "2024-12-20T12:46:53.833408Z", + "iopub.status.idle": "2024-12-20T12:46:54.870232Z", + "shell.execute_reply": "2024-12-20T12:46:54.868909Z", + "shell.execute_reply.started": "2024-12-20T12:46:53.833691Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 2705 entries, 0 to 2704\n", + "Data columns (total 25 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 uid 2705 non-null object \n", + " 1 name 2705 non-null object \n", + " 2 vendor_name 2705 non-null object \n", + " 3 address 2705 non-null object \n", + " 4 latitude 2705 non-null float64\n", + " 5 longitude 2705 non-null float64\n", + " 6 city 2705 non-null object \n", + " 7 country 2705 non-null object \n", + " 8 open 2705 non-null object \n", + " 9 close 2705 non-null object \n", + " 10 logo_url 2238 non-null object \n", + " 11 staff 2705 non-null object \n", + " 12 payment_modes 2705 non-null object \n", + " 13 contact_numbers 2705 non-null object \n", + " 14 station_type 2705 non-null object \n", + " 15 postal_code 2705 non-null int64 \n", + " 16 zone 2410 non-null object \n", + " 17 0 0 non-null float64\n", + " 18 available 2467 non-null float64\n", + " 19 capacity 2497 non-null object \n", + " 20 cost_per_unit 2453 non-null object \n", + " 21 power_type 2497 non-null object \n", + " 22 total 2497 non-null float64\n", + " 23 type 2497 non-null object \n", + " 24 vehicle_type 2497 non-null object \n", + "dtypes: float64(5), int64(1), object(19)\n", + "memory usage: 528.4+ KB\n", + "None\n", + " latitude longitude postal_code 0 available total\n", + "count 2705.000000 2705.000000 2.705000e+03 0.0 2467.000000 2497.000000\n", + "mean 27.021287 77.281839 1.526602e+05 NaN 0.997973 1.221866\n", + "std 4.295497 3.884501 1.394690e+05 NaN 1.626897 1.993488\n", + "min 0.000000 0.000000 0.000000e+00 NaN 0.000000 1.000000\n", + "25% 28.535504 77.095390 1.100320e+05 NaN 1.000000 1.000000\n", + "50% 28.608759 77.195630 1.100590e+05 NaN 1.000000 1.000000\n", + "75% 28.674200 77.281573 1.100810e+05 NaN 1.000000 1.000000\n", + "max 30.325030 88.516963 1.100091e+06 NaN 73.000000 78.000000\n", + "uid 0\n", + "name 0\n", + "vendor_name 0\n", + "address 0\n", + "latitude 0\n", + "longitude 0\n", + "city 0\n", + "country 0\n", + "open 0\n", + "close 0\n", + "logo_url 467\n", + "staff 0\n", + "payment_modes 0\n", + "contact_numbers 0\n", + "station_type 0\n", + "postal_code 0\n", + "zone 295\n", + "0 2705\n", + "available 238\n", + "capacity 208\n", + "cost_per_unit 252\n", + "power_type 208\n", + "total 208\n", + "type 208\n", + "vehicle_type 208\n", + "dtype: int64\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+MAAAJ6CAYAAABDmpPvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADsu0lEQVR4nOzdeVjUVf//8dcAOpACgopACqKmqCWZmYmlkMiSuZRp7kuW1o3mcuetWG6VN7mk3hVpdhtaZpYZbqWGIZpp5oZL5YJiloimJAjoiMz8/vDnfO+5wRIdYPJ+Pq7rc13NOedzzvuM5dV7PudzjsFisVgEAAAAAADKjVNFBwAAAAAAwP8aknEAAAAAAMoZyTgAAAAAAOWMZBwAAAAAgHJGMg4AAAAAQDkjGQcAAAAAoJyRjAMAAAAAUM5IxgEAAAAAKGck4wAAAAAAlDOScQDAX57BYNDkyZPt3m/dunU1cOBAu/dbEcLCwhQWFlbRYQAAgP+PZBwA4BAWLlwog8Egg8GgLVu2FKu3WCyqU6eODAaDHnvssQqIsHx8/vnnMhgM+ve//33dNsnJyTIYDHrzzTfLMbKyc+3PfufOnSXWh4WF6e677y7TGL788ssy+UEHAIDrIRkHADgUV1dXLVmypFj5pk2b9Ouvv8poNBaru3jxol5++WW7x3Lo0CG99957du/3j3Ts2FGenp4lfgfXLFmyRM7OzurZs2c5RnZ7+/LLLzVlypSKDgMA8D+EZBwA4FAeffRRLVu2TFeuXLEpX7JkiVq0aCFfX99i97i6usrFxcXusRiNRlWqVMnu/f7ZmE8++aQ2bdqkzMzMYvWXLl1SUlKSOnToIB8fn3KNDQAA2A/JOADAofTq1Uvnzp1TcnKytezy5cv67LPP1Lt37xLv+e93xi9cuKCRI0eqbt26MhqN8vHxUYcOHbR7925rmyNHjqhbt27y9fWVq6urateurZ49eyonJ8fa5r/fGb+2nPrbb7/V6NGjVbNmTVWpUkWPP/64fvvtN5uYzGazJk+eLH9/f91xxx0KDw/Xjz/+eEPvofft21dms1lLly4tVvfFF18oJydHffr0kSQlJibqkUcekY+Pj4xGo5o0aaK5c+f+Yf//OZfjx4/blKempspgMCg1NdWmfPv27YqOjpanp6fuuOMOtWvXTt9++61Nmxv53u1p8eLFatGihdzc3OTt7a2ePXvql19+sWnzzTffqHv37goICJDRaFSdOnU0atQoXbx40dpm4MCBSkhIkCTrqxIGg0GSdPz4cRkMBs2cOVMJCQmqV6+e7rjjDkVGRuqXX36RxWLRq6++qtq1a8vNzU1dunRRdna2TQwrV65Ux44d5e/vL6PRqPr16+vVV19VUVGRTbtry/F37dql0NBQubm5KSgoSPPmzSuLrw8AUMHs/xgBAIBbULduXbVu3Voff/yxYmJiJElr165VTk6OevbseUPvST/33HP67LPPNGzYMDVp0kTnzp3Tli1b9NNPP+m+++7T5cuXFRUVJZPJpOHDh8vX11cnT57UmjVrdP78eXl6ev5h/8OHD5eXl5cmTZqk48ePa86cORo2bJg++eQTa5u4uDhNnz5dnTp1UlRUlPbu3auoqChdunTpT+Nv27atateurSVLlmj06NE2dUuWLNEdd9yhrl27SpLmzp2rpk2bqnPnznJxcdHq1av1t7/9TWazWbGxsX861o1ISUlRTEyMWrRooUmTJsnJycn6I8A333yjBx54QNKff+9/JicnR2fPni1WXlhYWKxs6tSpmjBhgnr06KFnnnlGv/32m9566y21bdtWe/bsUbVq1SRJy5YtU0FBgZ5//nlVr15d33//vd566y39+uuvWrZsmSRp6NChyszMVHJysj788MMSY/voo490+fJlDR8+XNnZ2Zo+fbp69OihRx55RKmpqRo7dqzS09P11ltv6cUXX9T7779vvXfhwoWqWrWqRo8erapVqyolJUUTJ05Ubm6uZsyYYTPO77//rkcffVQ9evRQr1699Omnn+r5559X5cqV9fTTT//pdwgA+AuxAADgABITEy2SLDt27LC8/fbbFnd3d0tBQYHFYrFYunfvbgkPD7dYLBZLYGCgpWPHjjb3SrJMmjTJ+tnT09MSGxt73bH27NljkWRZtmzZH8YUGBhoGTBgQLEYIyIiLGaz2Vo+atQoi7Ozs+X8+fMWi8ViycrKsri4uFi6du1q09/kyZMtkmz6vJ4xY8ZYJFkOHTpkLcvJybG4urpaevXqZS279h39p6ioKEu9evVsytq1a2dp165dsblkZGTYtNu4caNFkmXjxo0Wi8ViMZvNlrvuussSFRVlM+eCggJLUFCQpUOHDtayP/ver+daLH90NW3a1Nr++PHjFmdnZ8vUqVNt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kqTu3buXOK7RaCx2PBpL1AEAAAAAjsjuyXjLli2VlJSkuLg4vfLKKwoKCtKcOXPUp08fSZKzs7P27dunRYsW6fz58/L391dkZKReffVVm2R6xowZcnFxUb9+/XTx4kW1atVKKSkpxc4rBwAAAADgr8ZgsVgsFR1EWengVPJTdAAAAPx1rc/cW9EhFBPlH1LRIQBwEMnmZTfUzu7vjAMAAAAAgD9GMg4AAAAAQDkjGQcAAAAAoJzZPRmvW7euDAZDsSs2NlaSNHToUNWvX19ubm6qWbOmunTpooMHbc8D37Fjh9q3b69q1arJy8tLUVFR2rvX8d4NAgAAAADgZtg9Gd+xY4dOnTplvZKTkyX935FkLVq0UGJion766SetX79eFotFkZGRKioqknT16LPo6GgFBARo+/bt2rJli9zd3RUVFaXCwkJ7hwsAAAAAQLkr893UR44cqTVr1ujIkSMyGAzF6vft26eQkBClp6erfv362rlzp1q2bKkTJ06oTp06kqT9+/erWbNmOnLkiBo0aHDDY7ObOgAAwO2H3dQBODKH2E398uXLWrx4sZ5++ukSE/H8/HwlJiYqKCjImng3atRI1atX14IFC3T58mVdvHhRCxYsUOPGjVW3bt2yDBcAAAAAgHJRpsn4ihUrdP78eQ0cONCm/J133lHVqlVVtWpVrV27VsnJyapcubIkyd3dXampqVq8eLHc3NxUtWpVrVu3TmvXrpWLi0tZhgsAAAAAQLko02R8wYIFiomJkb+/v015nz59tGfPHm3atEkNGzZUjx49dOnSJUnSxYsXNXjwYLVp00bfffedvv32W919993q2LGjLl68eN2xTCaTcnNzbS6zpagspwcAAAAAwE0ps0fNP//8szZs2KDPP/+8WJ2np6c8PT1111136cEHH5SXl5eSkpLUq1cvLVmyRMePH9e2bdvk5HT1t4IlS5bIy8tLK1euVM+ePUscLz4+XlOmTLEpC1Jj1VdT+08OAAAAAIBbUGZPxhMTE+Xj46OOHTv+YTuLxSKLxSKTySRJKigokJOTk8075tc+m83m6/YTFxennJwcmytIwfaZDAAAAAAAdlQmybjZbFZiYqIGDBhg8573sWPHFB8fr127dunEiRPaunWrunfvLjc3Nz366KOSpA4dOuj3339XbGysfvrpJ/3www8aNGiQXFxcFB4eft0x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X3+Vt7e3unXrpqlTp6pSpUqSpH/84x/Kz8/XkCFDdP78eT300ENat26ddQf25ORkpaenKz09XbVr17bp284nsQEAAAAAUO7sfs64I+GccQAAgNsP54wDcGQVds44AAAAAAD4YyTjAAAAAACUM5JxAAAAAADKWZkk4xcuXNDIkSMVGBgoNzc3hYaGaseOHdb6vLw8DRs2TLVr15abm5uaNGmiefPmldiXxWJRTEyMDAaDVqxYURbhAgAAAABQrspkN/VnnnlGBw4c0Icffih/f38tXrxYERER+vHHH3XnnXdq9OjRSklJ0eLFi1W3bl199dVX+tvf/iZ/f3917tzZpq85c+bIYDCURZgAAAAAAFQIuz8Zv3jxopYvX67p06erbdu2atCggSZPnqwGDRpo7ty5kqStW7dqwIABCgsLU926dTVkyBCFhITo+++/t+krLS1Nb7zxht5//317hwkAAAAAQIWxezJ+5coVFRUVWc8Mv8bNzU1btmyRJIWGhmrVqlU6efKkLBaLNm7cqMOHDysyMtLavqCgQL1791ZCQoJ8fX3tHSYAAAAAABXG7sm4u7u7WrdurVdffVWZmZkqKirS4sWLtW3bNp06dUqS9NZbb6lJkyaqXbu2KleurOjoaCUkJKht27bWfkaNGqXQ0FB16dLF3iECAAAAAFChyuSd8Q8//FBPP/207rzzTjk7O+u+++5Tr169tGvXLklXk/HvvvtOq1atUmBgoDZv3qzY2Fj5+/srIiJCq1atUkpKivbs2XPDY5pMJplMJpsys6VITgZnu84NAAAAAIBbVSa7qdevX1+bNm1SXl6efvnlF33//fcqLCxUvXr1dPHiRY0fP16zZs1Sp06d1KxZMw0bNkxPPfWUZs6cKUlKSUnR0aNHVa1aNbm4uMjF5epvBt26dVNYWFiJY8bHx8vT09PmytDBspgeAAAAAAC3pEzPGa9SpYr8/Pz0+++/a/369erSpYsKCwtVWFgoJyfboZ2dnWU2myVJ48aN0759+5SWlma9JGn27NlKTEwscay4uDjl5OTYXEEKLsvpAQAAAABwU8pkmfr69etlsVjUqFEjpaena8yYMQoODtagQYNUqVIltWvXTmPGjJGbm5sCAwO1adMmffDBB5o1a5YkydfXt8RN2wICAhQUFFTimEajUUaj0aaMJeoAAAAAAEdUJsl4Tk6O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JG3cuFFhYWH67LPP9Ntvv2nx4sVavHixtV1gYKCOHz9e6kkCAAAAAOBIbumccUfHOeMAAAC3H84ZB+DIHOKccQAAAAAAUBzJOAAAAAAA5YxkHAAAAACAclbqZHzz5s3q1KmT/P39ZTAYtGLFCpv6yZMnKzg4WFWqVJGXl5ciIiK0fft2mza7d+9Whw4dVK1aNVWvXl1DhgxRXl5eieOdO3dOtWvXlsFg0Pnz50sbLgAAAAAADqfUyXh+fr5CQkKUkJBQYn3Dhg319ttva//+/dqyZYvq1q2ryMhI/fbbb5KkzMxMRUREqEGDBtq+fbvWrVunH374QQMHDiyxv8GDB6tZs2alDRMAAAAAAIdV6qPNYmJiFBMTc9363r1723yeNWuWFixYoH379ql9+/Zas2aNKlWqpISEBDk5Xf0tYN68eWrWrJnS09PVoEED671z587V+fPnNXHiRK1du7a0oQIAAAAA4JBKnYyXxuXLlzV//nx5enoqJOTqcQ8mk0mVK1e2JuKS5ObmJknasmWLNRn/8ccf9corr2j79u06duxYWYYJAACAEjjiEWIAcLsok2R8zZo16tmzpwoKCuTn56fk5GTVqFFDkvTII49o9OjRmjFjhkaMGKH8/HyNGzdOknTq1ClJVxP2Xr16acaMGQoICLihZNxkMslkMtmUmS1FcjI423l2AAAA/xsc9exsfiQAcDsok93Uw8PDlZaWpq1btyo6Olo9evTQmTNnJElNmzbVokWL9MYbb+iOO+6Qr6+vgoKCVKtWLevT8ri4ODVu3Fh9+/a94THj4+Pl6elpc2XoYFlMDwAAAACAW2KwWCyWm77ZYFBSUpK6du36h+3uuusuPf3004qLi7MpP336tKpUqSKDwSAPDw8tXbpU3bt317333qv9+/fLYDBIkiwWi8xms5ydnfXSSy9pypQpxcYo6cn4454DeTIOAABwm3HEJ+OOuooAQPlLNi+7oXZl+s74NWazuViiLEm1atWSJL3//vtydXVVhw4dJEnLly/XxYsXre127Nihp59+Wt98843q169f4hhGo1FGo9GmjEQcAAAAAOCISp2M5+XlKT093fo5IyNDaWlp8vb2VvXq1TV16lR17txZfn5+Onv2rBISEnTy5El1797des/bb7+t0NBQVa1aVcnJyRozZoxef/11VatWTZKKJdxnz56VJDVu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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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vV27dkpKSnJru3TpUpWUlOiBBx5Qbm6u66dp06Zq3bq11q9fX9vlA7WCUwyoc7p27ep2keIvf/lL3XTTTRo9erTuueceOZ1OHTp0SHFxcQoPD3dbtvSQ/aFDh1zTnE6n/vznP7vOZb/xxhse76MPCAhw+5CXpJ/+9KeSVOGtiSdOnFBBQYHatGljzWvXrp1KSkp0+PBh3Xjjjd49+f+vtP6K1rt69WqdPXtWYWFh1VqvJ9nZ2Xr++ef197//Xd9//73bvLy8vCte/+U4ceKECgsL1bp1a2temzZt3ALSvn37ZIzx2FaS6tWrd9XqBHyJgIA6LyAgQL1799a8efO0b9++an/YStLq1aslSUVFRdq3b58SExNrusxrUnFxse666y6dOnVKzzzzjNq2bauwsDB99913SklJUUlJSY1ur6IvOCq9WPRylJSUyOFwKCMjw+2aklINGjS47HUD/oyAAEi6ePGiJOnMmTOSpObNm2vdunXKz893O4qwZ88e1/xSO3bs0PTp0/Xb3/5W27dv1/Dhw7Vz5041bNjQbRslJSX65ptvXEcNJOnrr7+WpAq/tyA6Olr169fX3r17rXl79uxRQECA4uPjJVX84ehJaf0VrTcqKqpGjh7s3LlTX3/9tRYtWqQhQ4a4pq9du9ZqW536K2rbqFEjSbK+QKnsER/pUr+GhoZq37591jrK90mrVq1kjFFiYqLbawf82HENAuq8CxcuaM2aNXI6na5TCHfffbeKi4v16quvurWdO3euHA6HkpOTXcumpKQoLi5O8+bNU3p6uo4fP66xY8d63FbZ9Rlj9Oqrr6pevXrq06ePx/aBgYHq16+fVqxY4XYa4vjx43rnnXd0++23KyIiQpJcH+jefLtgbGysOnXqpEWLFrm137Vrl9asWaO77767ynV4o/R/3KbMrZzGGM2bN89qW536K2obERGhqKgobdy40W36H//4R6uupKQkLV++XNnZ2a7pX331letoUKnBgwcrMDBQ06ZNs25JNcbo5MmTVdYLXIs4goA6JyMjw3UkICcnR++884727dunSZMmuT5sBwwYoN69e+vZZ59VVlaWOnbsqDVr1mjFihV66qmn1KpVK0nSCy+8oO3bt+vDDz9UeHi4OnTooOeff17/9V//pfvuu8/tgzYkJESrVq3S0KFD1a1bN2VkZOiDDz7QlClTFB0d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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAHHCAYAAADaqqCfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmoklEQVR4nO3de3AUVcL38d/knpAbt4REw1XXoKzCcg2ogLhiQBBWeUoQTVzUVUAEUURdhUUlKF5QcEWtkrji5VkUkOVOELRgRQQ2KooIooAYEhBIwIQEZs77xz7pl8mZQAIJM5Dvpyqlc7pn+sx0VeZLT/fEZYwxAgAAOEGQvycAAAACD4EAAAAsBAIAALAQCAAAwEIgAAAAC4EAAAAsBAIAALAQCAAAwEIgAAAAC4EA+IHL5dLEiRP9PQ0vX3zxhbp27ap69erJ5XIpNzfX53qrV6+Wy+XS6tWrz+r8KjNx4kS5XK6ztr1A3HdAbSAQcF7Jzs6Wy+Xy+klISFDPnj21ZMkSf0/vjH377beaOHGifvrppxp93GPHjmnQoEE6cOCAXnzxRb399ttq1qxZjW7jbJo8ebLmz5/v72kA5zQCAeelSZMm6e2339Y//vEPjRs3Tvv27VOfPn20cOFCf0/tjHz77bf629/+VuOB8MMPP2jnzp168MEHdffdd2vo0KGqX79+jW6jtvz1r39VSUmJ1xiBAJy5EH9PAKgN6enp6tChg3N72LBhSkxM1HvvvacbbrjBjzMLTAUFBZKk+Ph4/07kNISEhCgkhF9lQE3jCALqhPj4eEVGRlpvJL/99pvGjh2rlJQUhYeH65JLLtFzzz2n8j9yWlJSotTUVKWmpnr9K/XAgQNKSkpS165d5Xa7JUmZmZmKjo7Wjh071Lt3b9WrV0/JycmaNGmSqvJHU//zn/8oPT1dsbGxio6OVq9evbRu3TpneXZ2tgYNGiRJ6tmzp/MRyqnOBfj444911VVXqV69eoqPj9eNN96oLVu2OMszMzPVvXt3SdKgQYPkcrnUo0ePU863ojlz5qh9+/aKjIxUo0aNNHToUO3Zs8drnfLXaM+ePRowYICio6PVuHFjPfjgg87rWO7XX3/VbbfdptjYWMXHxysjI0NffvmlXC6XsrOznfUqnoPgcrn022+/6a233nJeo8zMTGf7zZs3t+bu6zyG0tJSjRkzRo0bN1ZMTIz69++vn3/+2edz37Nnj/785z8rMTFR4eHhuuyyy/Tmm29W49UDAg/ZjfNSYWGh9u/fL2OMCgoKNH36dB05ckRDhw511jHGqH///lq1apWGDRumtm3batmyZXrooYe0Z88evfjii4qMjNRbb72lbt266bHHHtMLL7wgSRoxYoQKCwuVnZ2t4OBg5zHdbreuv/56denSRc8++6yWLl2qCRMm6Pjx45o0aVKl8/3mm2901VVXKTY2VuPGjVNoaKhee+019ejRQ5988ok6d+6sq6++WqNGjdLLL7+sRx99VK1bt5Yk57++5OTkKD09XS1bttTEiRNVUlKi6dOnq1u3btq0aZOaN2+uv/zlL7rgggs0efJkjRo1Sh07dlRiYmK1Xu/s7Gzdcccd6tixo7KyspSfn6+XXnpJa9eu1X/+8x+vIxNut1u9e/dW586d9dxzzyknJ0fPP/+8WrVqpXvvvVeS5PF41K9fP61fv1733nuvUlNT9dFHHykjI+OUc3n77bd15513qlOnTrr77rslSa1atarW85GkO++8U7Nnz9aQIUPUtWtXffzxx+rbt6+1Xn5+vrp06SKXy6WRI0eqcePGWrJkiYYNG6aioiKNHj262tsGAoIBziOzZs0ykqyf8PBwk52d7bXu/PnzjSTz1FNPeY3ffPPNxuVyme3btztjjzzyiAkKCjKffvqpmTNnjpFkpk2b5nW/jIwMI8ncd999zpjH4zF9+/Y1YWFhZt++fc64JDNhwgTn9oABA0xYWJj54YcfnLFffvnFxMTEmKuvvtoZK9/2qlWrqvR6tG3b1iQkJJhff/3VGfvyyy9NUFCQuf32252xVatWGUlmzpw5p3zM8nXL51BWVmYSEhJMmzZtTElJibPewoULjSTzxBNPOGPlr9GkSZO8HrNdu3amffv2zu0PP/zQeo3dbre55pprjCQza9YsZ3zChAmm4q+yevXqmYyMDGvuGRkZplmzZtZ4xcfIzc01kszw4cO91hsyZIi174YNG2aSkpLM/v37vda95ZZbTFxcnCkuLra2B5wL+IgB56VXXnlFK1as0IoVKzR79mz17NlTd955p+bOneuss3jxYgUHB2vUqFFe9x07dqyMMV5XPUycOFGXXXaZMjIyNHz4cHXv3t26X7mRI0c6/1/+r8qysjLl5OT4XN/tdmv58uUaMGCAWrZs6YwnJSVpyJAhWrNmjYqKiqr9GuTl5Sk3N1eZmZlq0KCBM3755Zfrj3/8oxYvXlztx/Rlw4YNKigo0PDhwxUREeGM9+3bV6mpqVq0aJF1n3vuucfr9lVXXaUdO3Y4t5cuXarQ0FDdddddzlhQUJBGjBhRI3M+lfLXpuI+rng0wBijDz/8UP369ZMxRvv373d+evfurcLCQm3atOmszBmoaXzEgPNSp06dvE5SHDx4sNq1a6eRI0fqhhtuUFhYmHbu3Knk5GTFxMR43bf8kP3OnTudsbCwML355pvq2LGjIiIiNGvWLJ/X3gcFBXm9yUvS7373O0mq9MqDffv2qbi4WJdccom1rHXr1vJ4PNq9e7cuu+yyqj35/1M+/8oed9myZfrtt99Ur169aj1udbaTmpqqNWvWeI1FRESocePGXmP169fXwYMHvR4zKSlJUVFRXutddNFFZzTXqtq5c6eCgoKsjyYqPsd9+/bp0KFDev311/X666/7fKzyE0CBcw2BgDohKChIPXv21EsvvaRt27ZV+81WkpYtWyZJOnr0qLZt26YWLVrU9DTrhBPP2TjbKvtCpYonSFaVx+ORJA0dOrTS8yMuv/zy03pswN8IBNQZx48flyQdOXJEktSsWTPl5OTo8OHDXkcRvvvuO2d5ua+++kqTJk3SHXfcodzcXN155536+uuvFRcX57UNj8ejHTt2OEcNJOn777+XJJ9nz0tS48aNFRUVpa1bt1rLvvvuOwUFBSklJUVS5W9wvpTPv7LHbdSo0RkfPai4nWuuucZr2datW0/rC5eaNWumVatWqbi42Osowvbt26t0/8pep/r16+vQoUPW+IlHi8q37/F49MMPP3gdNaj4WpZf4eB2u3XttddWaW7AuYJzEFAnHDt2TMuXL1dYWJjzEUKfPn3kdrs1Y8YMr3VffPFFuVwupaenO/fNzMxUcnKyXnrpJWVnZys/P19jxozxua0TH88YoxkzZig0NFS9evXyuX5wcLCuu+46ffTRR14fQ+Tn5+vdd9/VlVdeqdjYWEly3tB9vclVlJSUpLZt2+qtt97yWn/z5s1avny5+vTpc8rHqIoOHTooISFBM2fOVGlpqTO+ZMkSbdmyxeeZ/6fSu3dvHTt2TG+88YYz5vF49Morr1Tp/vXq1fP5GrVq1UqFhYX66quvnLG8vDzNmzfPa73yff/yyy97jU+bNs3rdnBwsG666SZ9+OGH2rx5s7W9ffv2VWm+QCDiCALOS0uWLHGOBBQUFOjdd9/Vtm3bNH78eOfNtl+/furZs6cee+wx/fTTT7riiiu0fPlyffTRRxo9erTz+fNTTz2l3NxcrVy5UjExMbr88sv1xBNP6K9//atuvvlmrzfaiIgILV26VBkZGercubOWLFmiRYsW6dFHH7U+dz/RU089pRUrVujKK6/U8OHDFRISotdee02lpaV69tlnnfXatm2r4OBgPfPMMyosLFR4eLiuueYaJSQk+HzcqVOnKj09XWlpaRo2bJhzmWNcXFyN/T2B0NBQPfPMM7rjjjvUvXt3DR482LnMsXnz5pWG1MkMGDBAnTp10tixY7V9+3alpqZqwYIFOnDggKRTH0lp3769cnJy9MILLyg5OVktWrRQ586ddcstt+jhhx/WwIEDNWrUKBUXF+vVV1/V7373O6+TCdu2bavBgwfr73//uwoLC9W1a1etXLnS5xGMKVOmaNWqVercubPuuusuXXrppTpw4IA2bdqknJwcZ87AOce/F1EANcvXZY4RERGmbdu25tVXXzUej8dr/cOHD5sxY8aY5ORkExoaai6++GIzdepUZ72NGzeakJAQr0sXjTHm+PHjpmPHjiY5OdkcPHjQGPPfS+jq1atnfvjhB3PdddeZqKgok5iYaCZMmGDcbrfX/VXhUjljjNm0aZPp3bu3iY6ONlFRUaZnz57m3//+t/Uc33jjDdOyZUsTHBxcpUsec3JyTLdu3UxkZKSJjY01/fr1M99++63XOmdymWO5//3f/zXt2rUz4eHhpkGDBubWW281P//8s9c65a9RRb4uVdy3b58ZMmSIiYmJMXFxcSYzM9OsXbvWSDLvv//+Se/73XffmauvvtpERkYaSV6XPC5fvty0adPGhIWFmUsuucTMnj3b52OUlJSYUaNGmYYNG5p69eqZfv36md27d/vcd/n5+WbEiBEmJSXFhIaGmiZNmphevXqZ119//VQvJxCwXMZU4SveAJxSZmamPvjgA+ccB9S8+fPna+DAgVqzZo26devm7+kA5zXOQQAQkCr+ASa3263p06crNjZWf/jDH/w0K6Du4BwEAAHpvvvuU0lJidLS0lRaWqq5c+fq3//+tyZPnqzIyEh/Tw847xEIAALSNddco+eff14LFy7U0aNHddFFF2n69Ole31QJoPZwDgIAALBwDgIAALAQCAAAwHLa5yB4PB798ssviomJqdbXvwIAAP8xxujw4cNKTk5WUFDlxwlOOxB++eUX5/vhAQDAuWX37t268MILK11+2oFQ/sdtdu/e7Xx1LQAACGxFRUVKSUmx/tR9RacdCOUfK8TGxhIIAACcY051egAnKQIAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMAS4u8JAABQFcYYlZSUqLS0VJIUFxenoCD+nVtbCAQAwDnh6NGj6tOnj3N73rx5ql+/vh9ndH4jvQAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAgIVAAAAAFgIBAABYCAQAAGAhEAAAAc8Yo6NHj3qNHT16VMYYP83o/EcgAAAC3tGjRzVw4ECvscGDB1vRgJpDIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAAuBAAAALAQCAACwEAgAAMBCIAAAAEuIvydQ0c0336z9+/erUaNG+uCDD/w9HQBANfXs2VPGGLlcLq1atcoZnzhxolavXi1J1u/48mVhYWEqKytzlvfo0eOk28rIyFBERIR27dpV6Tpt2rTRjBkzJMnr8crncqL09HSVlJQoMjJSS5YsOfWTPQ3lz7VHjx6aOHGiz3VONc+zIaCOIGzevFn79++XJO3fv1+bN2/284wAANWxYMECGWMkScYYLViwQJKUn5/v9UZ34u/4E5eVlZU5y6dPn37K7RUUFJw0DqT/vrfs2rVLN910k9d4xdvr1q1TSUmJJKmkpETr1q075far68Tnunr1auXn51vrTJgw4aS3zxaXKd+T1VRUVKS4uDgVFhYqNja2RiZTXp3O5CrUJwAgsPn6F//q1as1aNAg7du3z2u8/He8r2U1LSoqSsXFxT7nVq6yudekis81ISFB//znP73Wqe15VPX9O2COIEydOlUVW8UYo6lTp/ppRgCA6hg6dKjP8YEDB/oMAGOMRo0aVetxIMlnHEj//8143LhxPpdXNn46li5daj3XgoICLV261Lnds2dPn/etbLw2VTkQSktLVVRU5PVTU8rKyrRo0SKfyxYtWuQccgIABKYjR47o559/9rns4MGDld7vq6++qq0pVdm6deu0fv16n8vWr1+vo0ePnvE23G53pf/gnTp1qtxut/Ly8qx/KJczxigvL++M51EdVQ6ErKwsxcXFOT8pKSk1NomsrKwzWg4A8K877rjD31M4bePHjz/p8oceeuiMt7Fw4UK53W6fy9xutxYuXKjBgwef9DFOtbymVfkchNLSUpWWljq3i4qKlJKSUiPnIJSVlem6666rdPny5csVFhZ2RtsAANSeI0eO6IYb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qmHDhoqMjNTvf/97bdiwwVlujNETTzyhpKQkRUZG6tprr9W2bdv8OOPzn9vt1uOPP64WLVooMjJSrVq10pNPPun1dwfYL1VkAsj7779vwsLCzJtvvmm++eYbc9ddd5n4+HiTn5/v76nVGb179zazZs0ymzdvNrm5uaZPnz6madOm5siRI84699xzj0lJSTErV640GzZsMF26dDFdu3b146zrjvXr15vmzZubyy+/3Nx///3OOPvk7Dtw4IBp1qyZyczMNJ9//rnZsWOHWbZsmdm+fbuzzpQpU0xcXJyZP3+++fLLL03//v1NixYtTElJiR9nfn57+umnTcOGDc3ChQvNjz/+aObMmWOio6PNSy+95KzDfqmagAqETp06mREjRji33W63SU5ONllZWX6cVd1WUFBgJJlPPvnEGGPMoUOHTGhoqJkzZ46zzpYtW4wk89lnn/lrmnXC4cOHzcUXX2xWrFhhunfv7gQC+8Q/Hn74YXPllVdWutzj8ZgmTZqYqVOnOmOHDh0y4eHh5r333jsbU6yT+vbta/785z97jf3pT38yt956qzGG/VIdAfMRQ1lZmTZu3Khrr73WGQsKCtK1116rzz77zI8zq9sKCwslSQ0aNJAkbdy4UceOHfPaT6mpqWratCn7qZaNGDFCffv29XrtJfaJvyxYsEAdOnTQoEGDlJCQoHbt2umNN95wlv/444/au3ev136Ji4tT586d2S+1qGvXrlq5cqW+//57SdKXX36pNWvWKD09XRL7pTpO+4811bT9+/fL7XYrMTHRazwxMVHfffedn2ZVt3k8Ho0ePVrdunVTmzZtJEl79+5VWFiY4uPjvdZNTEzU3r17/TDLuuH999/Xpk2b9MUXX1jL2Cf+sWPHDr366qt64IEH9Oijj+qLL77QqFGjFBYWpoyMDOe19/U7jf1Se8aPH6+ioiKlpqYqODhYbrdbTz/9tG699VZJYr9UQ8AEAgLPiBEjtHnzZq1Zs8bfU6nTdu/erfvvv18rVqxQRESEv6eD/+PxeNShQwdNnjxZktSuXTtt3rxZM2fOVEZGhp9nV3f985//1DvvvKN3331Xl112mXJzczV69GglJyezX6opYD5iaNSokYKDg60zr/Pz89WkSRM/zaruGjlypBYuXKhVq1Z5/VnvJk2aqKysTIcOHfJan/1UezZu3KiCggL94Q9/UEhIiEJCQvTJJ5/o5ZdfVkhIiBITE9knfpCUlKRLL73Ua6x169batWuXJDmvPb/Tzq6HHnpI48eP1y233KLf//73uu222zRmzBhlZWVJYr9UR8AEQlhYmNq3b6+VK1c6Yx6PRytXrlRaWpofZ1a3GGM0cuRIzZs3Tx9//LFatGjhtbx9+/YKDQ312k9bt27Vrl272E+1pFevXvr666+Vm5vr/HTo0EG33nqr8//sk7OvW7du1iXA33//vZo1ayZJatGihZo0aeK1X4qKivT555+zX2pRcXGxgoK839qCg4Pl8XgksV+qxd9nSZ7o/fffN+Hh4SY7O9t8++235u677zbx8fFm7969/p5anXHvvfeauLg4s3r1apOXl+f8FBcXO+vcc889pmnTpubjjz82GzZsMGlpaSYtLc2Ps657TryKwRj2iT+sX7/ehISEmKefftps27bNvPPOOyYqKsrMnj3bWWfKlCkmPj7efPTRR+arr74yN954I5fT1bKMjAxzwQUXOJc5zp071zRq1MiMGzfOWYf9UjUBFQjGGDN9+nTTtGlTExYWZjp16mTWrVvn7ynVKZJ8/syaNctZp6SkxAwfPtzUr1/fREVFmYEDB5q8vDz/TboOqhgI7BP/+Ne//mXatGljwsPDTWpqqnn99de9lns8HvP444+bxMREEx4ebnr16mW2bt3qp9nWDUVFReb+++83TZs2NREREaZly5bmscceM6Wlpc467Jeq4c89AwAAS8CcgwAAAAIHgQAAACwEAgAAsBAIAADAQiAAAAALgQAAACwEAgAAsBAIQIDq0aOHRo8efd5sMzMzUwMGDKiVxwZQ8/hrjgAcc+fOVWhoqHO7efPmGj169FkPFQD+RyAAcDRo0MDfUwAQIPiIATgHHDx4ULfffrvq16+vqKgopaena9u2bc7y7OxsxcfHa9myZWrdurWio6N1/fXXKy8vz1nn+PHjGjVqlOLj49WwYUM9/PDDysjI8Drsf+JHDD169NDOnTs1ZswYuVwuuVwuSdLEiRPVtm1br/lNmzZNzZs3d2673W498MADzrbGjRunit/q7vF4lJWVpRYtWigyMlJXXHGFPvjgg5p5wQCcMQIBOAdkZmZqw4YNWrBggT777DMZY9SnTx8dO3bMWae4uFjPPfec3n77bX366afatWuXHnzwQWf5M888o3feeUezZs3S2rVrVVRUpPnz51e6zblz5+rCCy/UpEmTlJeX5xUbp/L8888rOztbb775ptasWaMDBw5o3rx5XutkZWXpH//4h2bOnKlvvvlGY8aM0dChQ/XJJ59U/YUBUGv4iAEIcNu2bdOCBQu0du1ade3aVZL0zjvvKCUlRfPnz9egQYMkSceOHdPMmTPVqlUrSdLIkSM1adIk53GmT5+uRx55RAMHDpQkzZgxQ4sXL650uw0aNFBwcLBiYmLUpEmTas152rRpeuSRR/SnP/1JkjRz5kwtW7bMWV5aWqrJkycrJydHaWlpkqSWLVtqzZo1eu2119S9e/dqbQ9AzSMQgAC3ZcsWhYSEqHPnzs5Yw4YNdckll2jLli3OWFRUlBMHkpSUlKSCggJJUmFhofLz89WpUydneXBwsNq3by+Px1Oj8y0sLFReXp7XfENCQtShQwfnY4bt27eruLhYf/zjH73uW1ZWpnbt2tXofACcHgIBOE+cePWBJLlcLutz/5oQFBRkPe6JH3VUxZEjRyRJixYt0gUXXOC1LDw8/MwmCKBGcA4CEOBat26t48eP6/PPP3fGfv31V23dulWXXnpplR4jLi5OiYmJ+uKLL5wxt9utTZs2nfR+YWFhcrvdXmONGzfW3r17vSIhNzfXa1tJSUle8z1+/Lg2btzo3L700ksVHh6uXbt26aKLLvL6SUlJqdJzAlC7OIIABLiLL75YN954o+666y699tpriomJ0fjx43XBBRfoxhtvrPLj3HfffcrKytJFF12k1NRUTZ8+XQcPHnSuTvClefPm+vTTT3XLLbcoPDxcjRo1Uo8ePbRv3z49++yzuvnmm7V06VItWbJEsbGxzv3uv/9+TZkyRRdffLFSU1P1wgsv6NChQ87ymJgYPfjggxozZow8Ho+uvPJKFRYWau3atYqNjVVGRsZpvVYAag5HEIBzwKxZs9S+fXvdcMMNSktLkzFGixcvtj5WOJmHH35YgwcP1u233660tDRFR0erd+/eioiIqPQ+kyZN0k8//aRWrVqpcePGkv57ROPvf/+7XnnlFV1xxRVav36919USkjR27FjddtttysjIUFpammJiYpyTI8s9+eSTevzxx5WVlaXWrVvr+uuv16JFi9SiRYtqvDIAaovL1MaHlAACnsfjUevWrfU///M/evLJJ/09HQABho8YgDpi586dWr58ubp3767S0lLNmDFDP/74o4YMGeLvqQEIQHzEANQRQUFBys7OVseOHdWtWzd9/fXXysnJUevWrf09NQABiI8YAACAhSMIAADAQiAAAAALgQAAACwEAgAAsBAIAADAQiAAAAALgQAAACwEAgAAsBAIAADA8v8AlRoDycYJGXQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Overview\n", + "print(data.info())\n", + "print(data.describe())\n", + "print(data.isnull().sum())\n", + "\n", + "# Visualize missing values\n", + "plt.figure(figsize=(12, 6))\n", + "sns.heatmap(data.isnull(), cbar=False, cmap='viridis')\n", + "plt.title(\"Missing Values Heatmap\")\n", + "plt.show()\n", + "\n", + "# Boxplots for numerical features\n", + "numerical_features = ['latitude', 'longitude'] # Add more numerical columns as needed\n", + "for feature in numerical_features:\n", + " sns.boxplot(data=data, x=feature)\n", + " plt.title(f\"Boxplot of {feature}\")\n", + " plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:54.872630Z", + "iopub.status.busy": "2024-12-20T12:46:54.872269Z", + "iopub.status.idle": "2024-12-20T12:46:54.879780Z", + "shell.execute_reply": "2024-12-20T12:46:54.878646Z", + "shell.execute_reply.started": "2024-12-20T12:46:54.872598Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "data.drop(columns=[0], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:54.881851Z", + "iopub.status.busy": "2024-12-20T12:46:54.881122Z", + "iopub.status.idle": "2024-12-20T12:46:54.912660Z", + "shell.execute_reply": "2024-12-20T12:46:54.911177Z", + "shell.execute_reply.started": "2024-12-20T12:46:54.881801Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "# Example for missing value imputation\n", + "data['zone'].fillna('Unknown', inplace=True)\n", + "data['available'].fillna(data['available'].median(), inplace=True)\n", + "data['capacity'].fillna(data['capacity'].mode()[0], inplace=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:54.914088Z", + "iopub.status.busy": "2024-12-20T12:46:54.913707Z", + "iopub.status.idle": "2024-12-20T12:46:54.939206Z", + "shell.execute_reply": "2024-12-20T12:46:54.938130Z", + "shell.execute_reply.started": "2024-12-20T12:46:54.914053Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "# Identify and remove extreme outliers in 'available'\n", + "upper_limit = data['available'].quantile(0.99)\n", + "data = data[data['available'] <= upper_limit]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:54.940699Z", + "iopub.status.busy": "2024-12-20T12:46:54.940322Z", + "iopub.status.idle": "2024-12-20T12:46:54.965817Z", + "shell.execute_reply": "2024-12-20T12:46:54.964358Z", + "shell.execute_reply.started": "2024-12-20T12:46:54.940661Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "\n", + "categorical_cols = ['vendor_name', 'station_type', 'zone']\n", + "encoder = LabelEncoder()\n", + "for col in categorical_cols:\n", + " data[col] = encoder.fit_transform(data[col])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:54.968401Z", + "iopub.status.busy": "2024-12-20T12:46:54.967708Z", + "iopub.status.idle": "2024-12-20T12:46:55.005037Z", + "shell.execute_reply": "2024-12-20T12:46:55.003569Z", + "shell.execute_reply.started": "2024-12-20T12:46:54.968358Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "numerical_cols = ['latitude', 'longitude', 'available', 'total']\n", + "scaler = StandardScaler()\n", + "data[numerical_cols] = scaler.fit_transform(data[numerical_cols])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.009592Z", + "iopub.status.busy": "2024-12-20T12:46:55.009178Z", + "iopub.status.idle": "2024-12-20T12:46:55.036482Z", + "shell.execute_reply": "2024-12-20T12:46:55.035133Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.009556Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "latitude 0\n", + "longitude 0\n", + "available 0\n", + "total 0\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "# Define the list of columns where NaN values need to be replaced\n", + "features = ['latitude', 'longitude', 'available', 'total']\n", + "\n", + "# Replace NaN values with -1 in the specified columns\n", + "data[features] = data[features].fillna(-1)\n", + "\n", + "# Verify the changes\n", + "print(data[features].isnull().sum()) # This should print zeros for all specified columns\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Replacing NaN Values with -1" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.038321Z", + "iopub.status.busy": "2024-12-20T12:46:55.037973Z", + "iopub.status.idle": "2024-12-20T12:46:55.070323Z", + "shell.execute_reply": "2024-12-20T12:46:55.069028Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.038291Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 -1.0\n", + "1 -1.0\n", + "2 -1.0\n", + "3 -1.0\n", + "4 -1.0\n", + "Name: cost_per_unit, dtype: float64\n" + ] + } + ], + "source": [ + "# Step 1: Remove currency symbols and additional text\n", + "data['cost_per_unit'] = data['cost_per_unit'].replace(\n", + " to_replace=r'₹(\\d+)\\s*per\\s*unit', \n", + " value=r'\\1', \n", + " regex=True\n", + ")\n", + "\n", + "# Step 2: Convert to float\n", + "data['cost_per_unit'] = pd.to_numeric(data['cost_per_unit'], errors='coerce')\n", + "\n", + "# Step 3: Replace NaN values with -1\n", + "data['cost_per_unit'].fillna(-1, inplace=True)\n", + "\n", + "# Verify the changes\n", + "print(data['cost_per_unit'].head())\n" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.072909Z", + "iopub.status.busy": "2024-12-20T12:46:55.072419Z", + "iopub.status.idle": "2024-12-20T12:46:55.100454Z", + "shell.execute_reply": "2024-12-20T12:46:55.099059Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.072867Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "latitude float64\n", + "longitude float64\n", + "available float64\n", + "total float64\n", + "dtype: object\n", + "latitude 0\n", + "longitude 0\n", + "available 0\n", + "total 0\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "# Step 1: Ensure the columns are numeric, coercing errors to NaN\n", + "for col in features:\n", + " data[col] = pd.to_numeric(data[col], errors='coerce')\n", + "\n", + "# Step 2: Replace NaN values with -1 in the specified columns\n", + "data[features] = data[features].fillna(-1)\n", + "\n", + "# Verify the changes\n", + "print(data[features].dtypes) # Check data types\n", + "print(data[features].isnull().sum()) # Confirm no NaN values remain\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.102387Z", + "iopub.status.busy": "2024-12-20T12:46:55.101730Z", + "iopub.status.idle": "2024-12-20T12:46:55.122045Z", + "shell.execute_reply": "2024-12-20T12:46:55.120807Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.102337Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "from sklearn.ensemble import IsolationForest\n", + "from sklearn.preprocessing import StandardScaler\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.123811Z", + "iopub.status.busy": "2024-12-20T12:46:55.123390Z", + "iopub.status.idle": "2024-12-20T12:46:55.157314Z", + "shell.execute_reply": "2024-12-20T12:46:55.155726Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.123768Z" + }, + "trusted": true + }, + "outputs": [], + "source": [ + "# Select relevant features\n", + "features = ['latitude', 'longitude', 'cost_per_unit', 'available', 'total']\n", + "data_features = data[features]\n", + "\n", + "# Standardize the data\n", + "scaler = StandardScaler()\n", + "data_scaled = scaler.fit_transform(data_features)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### K-Mean Clustering:\n", + "K-Means Clustering is an unsupervised machine learning algorithm used to group data into a predefined number of clusters (k). It works by iteratively assigning data points to the nearest cluster center and updating the cluster centers as the mean of the assigned points. The algorithm minimizes the within-cluster variance, ensuring that points within a cluster are similar, while points in different clusters are distinct. K-Means is widely used for tasks like customer segmentation, image compression, and pattern recognition due to its simplicity and efficiency. However, it can be sensitive to the initial placement of cluster centers and is best suited for data with well-separated clusters." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:55.158896Z", + "iopub.status.busy": "2024-12-20T12:46:55.158448Z", + "iopub.status.idle": "2024-12-20T12:46:56.322700Z", + "shell.execute_reply": "2024-12-20T12:46:56.321474Z", + "shell.execute_reply.started": "2024-12-20T12:46:55.158848Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAroAAAIjCAYAAADslLiSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTc0lEQVR4nO3daXgUVd6G8ae6k+7sGyQEJCwSFRRFxIEBREBRYBTHDXXcgFEERH0VXGB0QFREURRFRccFRMUdUNFhVARX3AUVBUVA1rCTPemk+rwfAq1NQkjI0uni/l1Xj9SpU1X/rkF8ODl1yjLGGAEAAAAO4wp1AQAAAEBdIOgCAADAkQi6AAAAcCSCLgAAAByJoAsAAABHIugCAADAkQi6AAAAcCSCLgAAAByJoAsAAABHIugCwCFu8ODBatWqVajLOChr166VZVmaOXNmqEsB0AARdAGEjZkzZ8qyLH399ddB7dnZ2ercubOioqK0YMGCSo+1LEuffPJJuf3GGGVkZMiyLJ155pl1Un99y8nJ0YQJE9ShQwfFxcUpOjpa7du31y233KJNmzbVWx2PPfYYQRRASESEugAAqImcnBydfvrp+v777zV37lz169ev0v5RUVGaPXu2TjrppKD2Dz/8UBs2bJDX663LcuvN6tWr1adPH61bt04DBw7UVVddJY/Ho++//15PP/205s6dq19++aVeannsscfUuHFjDR48uNbP3bJlSxUWFioyMrLWzw0g/BF0AYSt3Nxc9e3bV0uXLtWcOXPUv3//Ax7zt7/9Ta+++qoefvhhRUT88Ufg7Nmz1alTJ23fvr0uS64XpaWlOvfcc7VlyxYtXry4XKifOHGi7r333hBVVztKS0vl9/vl8XgUFRUV6nIANFBMXQAQlvLy8tSvXz99++23ev3113XGGWdU6bh//OMf2rFjh957771Am8/n02uvvaaLL764wmP8fr+mTp2qY445RlFRUWrSpImGDRumXbt2BfV74403dMYZZ6hZs2byer1q06aN7rzzTtm2HdSvV69eat++vX766Sf17t1bMTExOuywwzR58uRy1542bZqOOeYYxcTEKDk5WSeeeKJmz55d6Xd8/fXXtWzZMt16663lQq4kJSQkaOLEifs9fvHixbIsS4sXLw5qr2g+bFZWloYMGaLmzZvL6/WqadOm+vvf/661a9dKklq1aqXly5frww8/DEwd6dWrV+D43bt36/rrr1dGRoa8Xq8yMzN17733yu/3l7vu/fffr6lTp6pNmzbyer366aefKqxp8ODBiouL08aNG3X22WcrLi5OqampuvHGG8v9f7Fjxw5ddtllSkhIUFJSkgYNGqRly5Yx7xdwCEZ0AYSd/Px89e/fX1999ZVee+21as2pbdWqlbp27aoXX3wxMAL83//+V9nZ2brooov08MMPlztm2LBhmjlzpoYMGaLrrrtOa9as0SOPPKLvvvtOn376aeDH5jNnzlRcXJxGjRqluLg4ffDBBxo3bpxycnJ03333BZ1z165d6tevn84991xdcMEFeu2113TLLbfo2GOPDdT15JNP6rrrrtP555+v//u//1NRUZG+//57ffHFF/sN5ZL05ptvSpIuu+yyKt+Xg3Xeeedp+fLluvbaa9WqVStt3bpV7733ntatW6dWrVpp6tSpuvbaaxUXF6dbb71VktSkSRNJUkFBgXr27KmNGzdq2LBhatGihT777DONHTtWmzdv1tSpU4OuNWPGDBUVFemqq66S1+tVSkpKUCD+M9u21bdvX3Xp0kX333+/3n//fU2ZMkVt2rTRiBEjJJX9BWbAgAH68ssvNWLECLVt21ZvvPGGBg0aVHc3DED9MgAQJmbMmGEkmZYtW5rIyEgzb968ah/71VdfmUceecTEx8ebgoICY4wxAwcONL179zbGGNOyZUtzxhlnBI77+OOPjSTzwgsvBJ1vwYIF5dr3nu/Phg0bZmJiYkxRUVGgrWfPnkaSmTVrVqCtuLjYpKenm/POOy/Q9ve//90cc8wxVf6Oe3Xs2NEkJiZWuf+gQYNMy5YtA9uLFi0yksyiRYuC+q1Zs8ZIMjNmzDDGGLNr1y4jydx3332Vnv+YY44xPXv2LNd+5513mtjYWPPLL78EtY8ZM8a43W6zbt26oOsmJCSYrVu3VlrT3u8jydxxxx1BfTt27Gg6deoU2H799deNJDN16tRAm23b5pRTTil3TgDhiakLAMLOli1bFBUVpYyMjIM6/oILLlBhYaHmz5+v3NxczZ8/f78jpK+++qoSExN12mmnafv27YFPp06dFBcXp0WLFgX6RkdHB36dm5ur7du3q0ePHiooKNCKFSuCzhsXF6dLL700sO3xeNS5c2etXr060JaUlKQNGzboq6++qtb3y8nJUXx8fLWOORjR0dHyeDxavHhxuWkcVfHqq6+qR48eSk5ODrq3ffr0kW3b+uijj4L6n3feeUpNTa3y+YcPHx603aNHj6D7u2DBAkVGRmro0KGBNpfLpZEjR1b7uwBomAi6AMLOE088IY/Ho379+mnlypWBdtu2lZWVFfTx+Xzljk9NTVWfPn00e/ZszZkzR7Zt6/zzz6/wWr/++quys7OVlpam1NTUoE9eXp62bt0a6Lt8+XKdc845SkxMVEJCglJTUwNhNjs7O+i8zZs3l2VZQW3JyclBgfGWW25RXFycOnfurCOOOEIjR47Up59+esD7k5CQoNzc3AP2qymv16t7771X//3vf9WkSROdfPLJmjx5srKysqp0/K+//qoFCxaUu699+vSRpKB7K0mtW7eucm1RUVHlQvG+9/f3339X06ZNFRMTE9QvMzOzytcB0LAxRxdA2Dn66KP1zjvv6NRTT9Vpp52mTz/9VBkZGVq/fn25MLRo0aKgh5/2uvjiizV06FBlZWWpf//+SkpKqvBafr9faWlpeuGFFyrcvzdM7d69Wz179lRCQoLuuOMOtWnTRlFRUfr22291yy23lJtL6na7KzyfMSbw63bt2mnlypWaP3++FixYoNdff12PPfaYxo0bpwkTJuzv9qht27b67rvvtH79+oMa9d43gO+174NcknT99ddrwIABmjdvnv73v//p3//+tyZNmqQPPvhAHTt2rPQ6fr9fp512mm6++eYK9x955JFB238eMT+Q/d1fAIcWgi6AsNS5c2fNmzdPZ5xxhk477TR9/PHHSk9PD1pNQZI6dOhQ4fHnnHOOhg0bps8//1wvv/zyfq/Tpk0bvf/+++revXulQWvx4sXasWOH5syZo5NPPjnQvmbNmmp+s2CxsbG68MILdeGFF8rn8+ncc8/VxIkTNXbs2P0uqzVgwAC9+OKLev755zV27NhqXzM5OVlSWXj/s99//73C/m3atNHo0aM1evRo/frrrzr++OM1ZcoUPf/885L2H5zbtGmjvLy8wAhufWvZsqUWLVqkgoKCoFHdVatWhaQeALWPqQsAwtapp56qF198UatWrVK/fv3k8/nUp0+foM/e0LavuLg4TZ8+XbfffrsGDBiw32tccMEFsm1bd955Z7l9paWlgTC4dwTxzyOyPp9Pjz322EF/vx07dgRtezweHX300TLGqKSkZL/HnX/++Tr22GM1ceJELVmypNz+3NzcwAoIFWnZsqXcbne5ObL7fpeCggIVFRUFtbVp00bx8fEqLi4OtMXGxpYLzVLZvV2yZIn+97//ldu3e/dulZaW7rfG2tC3b1+VlJToySefDLT5/X49+uijdXpdAPWHEV0AYe2cc87Rk08+qX/+858666yztGDBgiq/QKAqy0j17NlTw4YN06RJk7R06VKdfvrpioyM1K+//qpXX31VDz30kM4//3x169ZNycnJGjRokK677jpZlqXnnnsuKPhW1+mnn6709HR1795dTZo00c8//6xHHnlEZ5xxRqUPm0VGRmrOnDnq06ePTj75ZF1wwQXq3r27IiMjtXz5cs2ePVvJycn7XUs3MTFRAwcO1LRp02RZltq0aaP58+eXmzP7yy+/6NRTT9UFF1ygo48+WhEREZo7d662bNmiiy66KNCvU6dOmj59uu666y5lZmYqLS1Np5xyim666Sa9+eabOvPMMzV48GB16tRJ+fn5+uGHH/Taa69p7dq1aty48UHfvwM5++yz1blzZ40ePVqrVq1S27Zt9eabb2rnzp2S9j8SDSB8EHQBhL0hQ4Zo586duvHGGzVw4EDNnTs36K1nNfX444+rU6dOeuKJJ/Svf/1LERERatWqlS699FJ1795dktSoUSPNnz9fo0eP1m233abk5GRdeumlOvXUU9W3b9+Duu6wYcP0wgsv6IEHHlBeXp6aN2+u6667TrfddtsBj83MzNTSpUv14IMPau7cuZo3b578fr8yMzN15ZVX6rrrrqv0+GnTpqmkpESPP/64vF6vLrjgAt13331q3759oE9GRob+8Y9/aOHChXruuecUERGhtm3b6pVXXtF5550X6Ddu3Dj9/vvvmjx5snJzc9WzZ0+dcsopiomJ0Ycffqi7775br776qmbNmqWEhAQdeeSRmjBhghITEw/qvlWV2+3W22+/rf/7v//Ts88+K5fLpXPOOUfjx49X9+7deeMa4ACWqclwAwAADjNv3jydc845+uSTTwJ/kQEQngi6AIBDVmFhYdBDhrZt6/TTT9fXX3+trKysaq30AKDhYeoCAOCQde2116qwsFBdu3ZVcXGx5syZo88++0x33303IRdwAEZ0AQCHrNmzZ2vKlClatWqVioqKlJmZqREjRuiaa64JdWkAagFBFwAAAI7E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95133lF+fn6tF3SwsrKygkKupMB2VlbWfo+bNGmSEhMTA5+MjIw6rRMAAAD1o9pzdGvTmDFjZFlWpZ+6Xpt37Nixys7ODnzWr19fp9cDAABA/ajycgR7g+e+bTUxevRoDR48uNI+hx9+eJXOlZ6eri+//DKobe/UivT09P0e5/V65fV6q3QNAAAAhI8qB11jjAYPHhwIhUVFRRo+fLhiY2OD+s2ZM6fKF09NTVVqamqV+1ema9eumjhxorZu3aq0tDRJ0nvvvaeEhAQdffTRtXINAAAAhI8qB91BgwYFbV966aW1Xkxl1q1bp507d2rdunWybVtLly6VJGVmZiouLk6nn366jj76aF122WWaPHmysrKydNttt2nkyJGM2AIAAByCqry8WKgNHjxYzz77bLn2RYsWqVevXpKk33//XSNGjNDixYsVGxurQYMG6Z577qnWCyNYXgwAAKBhq2peC5ugW18IugAAAA1bra+jCwAAAIQTgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLoAgAAwJEIugAAAHAkgi4AAAAciaALAAAARyLo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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "kmeans = KMeans(n_clusters=3, random_state=42) # Adjust the number of clusters as needed\n", + "data['cluster'] = kmeans.fit_predict(data_scaled)\n", + "\n", + "# Visualize clusters (optional)\n", + "plt.figure(figsize=(8, 6))\n", + "sns.scatterplot(\n", + " x=data_scaled[:, 0], y=data_scaled[:, 1], \n", + " hue=data['cluster'], palette='viridis', s=50\n", + ")\n", + "plt.title(\"K-Means Clustering\")\n", + "plt.xlabel(\"Feature 1\")\n", + "plt.ylabel(\"Feature 2\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Isolation Forest\n", + "Isolation Forest is an anomaly detection algorithm designed to identify outliers by isolating data points. It builds multiple random trees (called Isolation Trees) by recursively splitting data points based on randomly chosen features and split values. Outliers are isolated more quickly, requiring fewer splits, resulting in shorter path lengths. The anomaly score is calculated based on these path lengths, where shorter paths indicate potential anomalies. Isolation Forest is highly efficient for high-dimensional datasets, unsupervised, and scalable, making it ideal for applications like fraud detection, network intrusion detection, and sensor data analysis.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:46:56.324307Z", + "iopub.status.busy": "2024-12-20T12:46:56.323862Z", + "iopub.status.idle": "2024-12-20T12:46:57.109527Z", + "shell.execute_reply": "2024-12-20T12:46:57.108151Z", + "shell.execute_reply.started": "2024-12-20T12:46:56.324273Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of anomalies detected: 135\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAroAAAIjCAYAAADslLiSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS7klEQVR4nO3dd3gU1f7H8c9k03uAkAIhoV0BQUCUKgJeFFCxgiAiEBEFsUAQxauCiAqKFKUpooBeBBXbFb0WFH56EQvNgoIinZDQE0hI28zvj5HVJYWElE2G9+t59oGdOTvzzSSEz54954xhmqYpAAAAwGa8PF0AAAAAUBEIugAAALAlgi4AAABsiaALAAAAWyLoAgAAwJYIugAAALAlgi4AAABsiaALAAAAWyLoAgAAwJYIugCqnCFDhighIaFcj7lo0SIZhqGdO3eW63Fx7li9erUMw9Dq1atd2yriZxVA+SHoAii1U6Fx3bp1ni6lgKeeekrvvfeep8twk5CQIMMwCn1kZWV5urwCvv76az322GM6duxYqV970003yTAMPfjgg+VfGACUkrenCwCA8vTUU0+pT58+uu6669y233rrrerfv7/8/Pw8UlerVq00ZsyYAtt9fX09UE3xvv76a02cOFFDhgxReHh4iV+Xnp6uDz74QAkJCVq6dKmmTJkiwzAqrtAq4KWXXlJ+fr6nywBQBIIugHOCw+GQw+Hw2Pnr1KmjgQMHlvtx8/PzlZOTI39//3I/dmm9/fbbcjqdeuWVV3TZZZfpyy+/VJcuXTxdVoXy8fHxdAkAisHQBQDlIiUlRYmJiapbt678/PwUExOja6+9tsCY2Llz5+r888+Xn5+fYmNjNXLkyBJ9RP7ss8+qY8eOqlmzpgICAtSmTRstX77crY1hGMrIyNDixYtdQwOGDBkiqegxuiWpp2vXrmrevLl++eUXdevWTYGBgapTp46eeeaZUl6lomVkZGjMmDGKi4uTn5+fzjvvPD377LMyTbPA13j33XdryZIlrro//vhjSdK+fft02223KSoqSn5+fjr//PP1yiuvFDjXrFmzdP755yswMFARERG66KKL9Prrr0uSHnvsMY0dO1aSVL9+fdd1LMnY5iVLlujyyy9Xt27d1LRpUy1ZsqRAm1PfhzVr1igpKUmRkZEKCgrS9ddfr4MHDxZoX5rvz48//qguXbooMDBQjRo1cv18/N///Z/atWungIAAnXfeeVq5cqXb63ft2qW77rpL5513ngICAlSzZk317du3RF9zYWN08/PzNXPmTJ1//vny9/dXVFSU7rzzTh09etSt3bp169SjRw/VqlVLAQEBql+/vm677bYznhNAydGjC6Bc3Hjjjdq8ebPuueceJSQk6MCBA/rss8+0e/duVxB47LHHNHHiRHXv3l0jRozQ1q1bNW/ePH3//fdas2ZNsb1jzz33nK655hrdcsstysnJ0bJly9S3b1+tWLFCV111lSTptdde0+233662bdvqjjvukCQ1bNiwyGOWpp6jR4+qZ8+euuGGG3TTTTdp+fLlevDBB9WiRQv16tXrjNcnNzdXhw4dctsWGBiowMBAmaapa665RqtWrdLQoUPVqlUrffLJJxo7dqz27dunGTNmuL3uiy++0Jtvvqm7775btWrVUkJCglJTU9W+fXtXEI6MjNR///tfDR06VOnp6Ro1apQk66P2e++9V3369NF9992nrKws/fjjj/r22281YMAA3XDDDfrtt9+0dOlSzZgxQ7Vq1ZIkRUZGFvv1JScna9WqVVq8eLEk6eabb9aMGTM0e/bsQodn3HPPPYqIiNCECRO0c+dOzZw5U3fffbfeeOONs/7+XH311erfv7/69u2refPmqX///lqyZIlGjRql4cOHa8CAAZo6dar69OmjPXv2KCQkRJL0/fff6+uvv1b//v1Vt25d7dy5U/PmzVPXrl31yy+/KDAw8Izf37+78847tWjRIiUmJuree+/Vjh07NHv2bG3cuNFV94EDB3TFFVcoMjJS48aNU3h4uHbu3Kl33nmnVOcCcAYmAJTSwoULTUnm999/b5qmaR49etSUZE6dOrXI1xw4cMD09fU1r7jiCtPpdLq2z54925RkvvLKK65tgwcPNuPj491en5mZ6fY8JyfHbN68uXnZZZe5bQ8KCjIHDx5cZM07duwodT1dunQxJZmvvvqqa1t2drYZHR1t3njjjUV+zafEx8ebkgo8JkyYYJqmab733numJPOJJ55we12fPn1MwzDMbdu2ubZJMr28vMzNmze7tR06dKgZExNjHjp0yG17//79zbCwMNf1u/baa83zzz+/2HqnTp3qdq1K4tlnnzUDAgLM9PR00zRN87fffjMlme+++65bu1Pfh+7du5v5+fmu7aNHjzYdDod57Ngx0zTP7vvz+uuvu7Zt2bLFda2++eYb1/ZPPvnElGQuXLjQte30ny3TNM21a9cW+J6vWrXKlGSuWrXKte30n9WvvvrKlGQuWbLE7Xgff/yx2/Z3333X7d8QgIrB0AUAZRYQECBfX1+tXr26wMezp6xcuVI5OTkaNWqUvLz++tUzbNgwhYaG6sMPPzzjOU45evSo0tLS1LlzZ23YsOGsai5tPcHBwW5jbH19fdW2bVtt3769ROdr166dPvvsM7fHoEGDJEkfffSRHA6H7r33XrfXjBkzRqZp6r///a/b9i5duqhZs2au56Zp6u2331bv3r1lmqYOHTrkevTo0UNpaWmu6xQeHq69e/fq+++/L1HdJbVkyRJdddVVrl7Sxo0bq02bNoUOX5CkO+64w22iWufOneV0OrVr1y5JZ/f96d+/v+v5eeedp/DwcDVt2lTt2rVzbT/1979/3/7+s5Wbm6vDhw+rUaNGCg8PL/XP11tvvaWwsDBdfvnlbt+HNm3aKDg4WKtWrZIk1yS/FStWKDc3t1TnAFByDF0AUGZ+fn56+umnNWbMGEVFRal9+/a6+uqrNWjQIEVHR0uSK8Ccd955bq/19fVVgwYNXPuLsmLFCj3xxBPatGmTsrOzXdvPdlZ/aeupW7dugXNFREToxx9/LNH5atWqpe7duxdZS2xsrCskntK0aVO3Wk+pX7++2/ODBw/q2LFjmj9/vubPn1/oOQ4cOCBJevDBB7Vy5Uq1bdtWjRo10hVXXKEBAwaoU6dOJfo6CvPrr79q48aNGjRokLZt2+ba3rVrV82ZM0fp6ekKDQ11e029evXcnkdEREiS641SeXx/wsLCFBcXV2Db388jSSdPntTkyZO1cOFC7du3z21cdFpa2hm+ene///670tLSVLt27UL3n/o+dOnSRTfeeKMmTpyoGTNmqGvXrrruuus0YMAAj60MAtgRQRdAuRg1apR69+6t9957T5988okeffRRTZ48WV988YVat25dpmN/9dVXuuaaa3TppZdq7ty5iomJkY+PjxYuXOiaRFXRilqxwTxtslhl+HsPpCTX8lYDBw7U4MGDC33NBRdcIMkKz1u3btWKFSv08ccf6+2339bcuXM1fvx4TZw48azq+fe//y1JGj16tEaPHl1g/9tvv63ExES3beV9PYs6XknOc88992jhwoUaNWqUOnTooLCwMBmGof79+5d66bD8/HzVrl27yJ7sU2OdDcPQ8uXL9c033+iDDz7QJ598ottuu03Tpk3TN998o+Dg4FKdF0DhCLoAyk3Dhg01ZswYjRkzRr///rtatWqladOm6d///rfi4+MlSVu3blWDBg1cr8nJydGOHTuK7O2UrKDk7++vTz75xK23a+HChQXalrSHtyz1lLf4+HitXLlSx48fd+vV3bJli1utRYmMjFRISIicTmeJ6g4KClK/fv3Ur18/5eTk6IYbbtCTTz6phx56SP7+/qXqJTdNU6+//rq6deumu+66q8D+SZMmacmSJQWC7plU5vdn+fLlGjx4sKZNm+balpWVdVY3zGjYsKFWrlypTp06FXhDUpj27durffv2evLJJ/X666/rlltu0bJly3T77beX+twACmKMLoAyy8zMLHCHr4YNGyokJMQ1zKB79+7y9fXV888/79ab9vLLLystLc21ckJhHA6HDMOQ0+l0bdu5c2ehd0ALCgoqUUApSz3l7corr5TT6dTs2bPdts+YMUOGYZxxVQeHw6Ebb7xRb7/9tn7++ecC+/++bNfhw4fd9vn6+qpZs2YyTdM1VjQoKEiSSnQd16xZo507dyoxMVF9+vQp8OjXr59WrVql5OTkMx7r7yrz++NwOAr0JM+aNcvt562kbrrpJjmdTk2aNKnAvry8PNc1PXr0aIFztmrVSpLchuYAKBt6dAGU2W+//aZ//vOfuummm9SsWTN5e3vr3XffVWpqqmuCUGRkpB566CFNnDhRPXv21DXXXKOtW7dq7ty5uvjii4u9mcJVV12l6dOnq2fPnhowYIAOHDigOXPmqFGjRgXGyLZp00YrV67U9OnTFRsbq/r167tNRjqlLPWUt969e6tbt256+OGHtXPnTrVs2VKffvqp3n//fY0aNarYJdJOmTJlilatWqV27dpp2LBhatasmY4cOaINGzZo5cqVOnLkiCTpiiuuUHR0tDp16qSoqCj9+uuvmj17tttEsjZt2kiSHn74YfXv318+Pj7q3bu3KwD/3ZIlS+RwOIoMntdcc40efvhhLVu2TElJSSW+JpX5/bn66qv12muvKSwsTM2aNdPatWu1cuVK1axZs9TH6tKli+68805NnjxZmzZt0hVXXCEfHx/9/vvveuutt/Tcc8+pT58+Wrx4sebOnavrr79e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15RvZQAAAEAZlLhH9/rrr9fSpUsL3Td79mzdfPPNMk2z3AoDAAAAysIwSadu0tPTFRYWprS0NIWGhnq6HAAAAJympHmNG0YAAADAlgi6AAAAsCWCLgAAAGyJoAsAAABbIugCAADAls4q6L722mvq1KmTYmNjtWvXLknSzJkz9f7775drcQAAAMDZKnXQnTdvnpKSknTllVfq2LFjcjqdkqTw8HDNnDmzvOsDAAAAzkqpg+6sWbP00ksv6eGHH5bD4XBtv+iii/TTTz+Va3EAAADA2Sp10N2xY4dat25dYLufn58yMjLKpSgAAACgrEoddOvXr69NmzYV2P7xxx+radOm5VETAAAAUGbepX1BUlKSRo4cqaysLJmmqe+++05Lly7V5MmTtWDBgoqoEQAAACi1Ugfd22+/XQEBAXrkkUeUmZmpAQMGKDY2Vs8995z69+9fETUCAAAApVaqoJuXl6fXX39dPXr00C233KLMzEydOHFCtWvXrqj6AAAAgLNSqjG63t7eGj58uLKysiRJgYGBhFwAAABUSaWejNa2bVtt3LixImoBAAAAyk2px+jeddddGjNmjPbu3as2bdooKCjIbf8FF1xQbsUBAAAAZ8swTdMszQu8vAp2AhuGIdM0ZRiG605p1VV6errCwsKUlpam0NBQT5cDAACA05Q0r5W6R3fHjh1lKgwAAACoDKUOuvHx8RVRBwAAAFCuSh10X3311WL3Dxo06KyLAQAAAMpLqcfoRkREuD3Pzc1VZmamfH19FRgYqCNHjpRrgZWNMboAAABVW0nzWqmXFzt69Kjb48SJE9q6dasuueQSLV26tExFAwAAAOWl1EG3MI0bN9aUKVN03333lcfhAAAAgDIrl6ArWXdNS05OLq/DAQAAAGVS6slo//nPf9yem6ap/fv3a/bs2erUqVO5FQYAAACURamD7nXXXef23DAMRUZG6rLLLtO0adPKqy4AAACgTEoddPPz8yuiDgAAAKBclXqM7uOPP67MzMwC20+ePKnHH3+8XIoCAAAAyqrU6+g6HA7t379ftWvXdtt++PBh1a5dW06ns1wLrGysowsAAFC1Vdg6uqZpyjCMAtt/+OEH1ahRo7SHAwAAACpEicfoRkREyDAMGYahf/zjH25h1+l06sSJExo+fHiFFAkAAACUVomD7syZM2Wapm677TZNnDhRYWFh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VT1JMt99991yORY9uja3YcMG7du3T15eXmrdurViYmLUq1cv/fzzz54urVqZMmWKatasqdatW2vq1KnKy8vzdEnVRmpqqoYNG6bXXntNgYGBni6nWjty5IiWLFmijh07ysfHx9PlVEtpaWmqUaOGp8uAzeTk5Gj9+vXq3r27a5uXl5e6d++utWvXerAyEHRtbvv27ZKkxx57TI888ohWrFihiIgIde3aVUeOHPFwddXDvffeq2XLlmnVqlW688479dRTT+mBBx7wdFnVgmmaGjJkiIYPH66LLrrI0+VUWw8++KCCgoJUs2ZN7d69W++//76nS6qWtm3bplmzZunOO+/0dCmwmUOHDsnpdCoqKspte1RUlFJSUjxUFSSCbrU1bty4AhOkTn+cGp8mSQ8//LBuvPFGtWnTRgsXLpRhGHrrrbc8/FV4TkmvnyQlJSWpa9euuuCCCzR8+HBNmzZNs2bNUnZ2toe/Cs8p6fWbNWuWjh8/roceesjTJVcppfn5k6SxY8dq48aN+vTTT+VwODRo0CCZ5/BNLUt7/SRp37596tmzp/r27athw4Z5qPKq4WyuH1BdcQvgaurgwYM6fPhwsW0aNGigNWvW6LLLLtNXX32lSy65xLWvXbt26t69u5588smKLrVKKun18/X1LbB98+bNat68ubZs2aLzzjuvokqs0kp6/W666SZ98MEHMgzDtd3pdMrhcOiWW27R4sWLK7rUKqksP3979+5VXFycvv76a3Xo0KGiSqzSSnv9kpOT1bVrV7Vv316LFi2Sl9e53cdzNj9/ixYt0qhRo3Ts2LEKrq56ysnJUWBgoJYvX+62qtHgwYN17NgxPoUpJcMw9O6775bLClHeZS8HnhAZGanIyMgztmvTpo38/Py0detWV9DNzc3Vzp07FR8fX9FlVlklvX6F2bRpk7y8vFS7du1yrqr6KOn1e/755/XEE0+4nicnJ6tHjx5644031K5du4ossUory8/fqU9pzuVPFEpz/fbt26du3bq5Ps0610OuVLafPxTO19dXbdq00eeff+4KZ/n5+fr888919913e7a4cxxB1+ZCQ0M1fPhwTZgwQXFxcYqPj9fUqVMlSX379vVwdVXf2rVr9e2336pbt24KCQnR2rVrNXr0aA0cOFARERGeLq/Kq1evntvz4OBgSVLDhg1Vt25dT5RUrXz77bf6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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "iso_forest = IsolationForest(n_estimators=100, contamination=0.05, random_state=42) # Adjust contamination\n", + "data['anomaly'] = iso_forest.fit_predict(data_scaled)\n", + "\n", + "# Map anomaly labels (-1 for anomaly, 1 for normal)\n", + "data['anomaly'] = data['anomaly'].map({1: 0, -1: 1})\n", + "\n", + "# Count anomalies\n", + "print(f\"Number of anomalies detected: {data['anomaly'].sum()}\")\n", + "\n", + "# Visualize anomalies (optional)\n", + "plt.figure(figsize=(8, 6))\n", + "sns.scatterplot(\n", + " x=data_scaled[:, 0], y=data_scaled[:, 1], \n", + " hue=data['anomaly'], palette={0: 'blue', 1: 'red'}, s=50\n", + ")\n", + "plt.title(\"Isolation Forest Anomalies\")\n", + "plt.xlabel(\"Feature 1\")\n", + "plt.ylabel(\"Feature 2\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Listing the anamaly stations" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:52:35.615260Z", + "iopub.status.busy": "2024-12-20T12:52:35.614763Z", + "iopub.status.idle": "2024-12-20T12:52:35.630567Z", + "shell.execute_reply": "2024-12-20T12:52:35.629453Z", + "shell.execute_reply.started": "2024-12-20T12:52:35.615182Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " uid name \\\n", + "5 STATIC18 Smart E \n", + "6 STATIC19 EEE \n", + "7 STATIC19 EEE \n", + "8 STATIC20 BluSmart \n", + "9 STATIC20 BluSmart \n", + "... ... ... \n", + "2699 1028 EESL Nehru Park Met \n", + "2701 1028 EESL Nehru Park Met \n", + "2702 1028 EESL Nehru Park Met \n", + "2703 BSES-1 BSES-DEL \n", + "2704 BSES-1 BSES-DEL \n", + "\n", + " address latitude longitude \\\n", + "5 Uttam Nagar East metro station 0.374838 -0.056007 \n", + "6 Mukteshwar dham Andheriya bagh,mehrauli 0.347806 -0.028884 \n", + "7 Mukteshwar dham Andheriya bagh,mehrauli 0.347806 -0.028884 \n", + "8 Plot No. 24, Behind Fun & Food Village, Kapash... 0.350637 -0.050037 \n", + "9 Plot No. 24, Behind Fun & Food Village, Kapash... 0.350637 -0.050037 \n", + "... ... ... ... \n", + "2699 Near Solar plant bus stop, Sastri Nagar, Che... -3.234969 0.761024 \n", + "2701 Near Solar plant bus stop, Sastri Nagar, Che... -3.234969 0.761024 \n", + "2702 Near Solar plant bus stop, Sastri Nagar, Che... -3.234969 0.761024 \n", + "2703 Opposite Crime Police Office Sector-9 Rama Kri... 0.362280 -0.029391 \n", + "2704 Opposite Crime Police Office Sector-9 Rama Kri... 0.362280 -0.029391 \n", + "\n", + " cost_per_unit available total \n", + "5 -1.0 0.172226 18.285069 \n", + "6 -1.0 0.172226 5.670815 \n", + "7 -1.0 0.172226 10.522451 \n", + "8 -1.0 0.172226 37.691614 \n", + "9 -1.0 0.172226 11.492778 \n", + "... ... ... ... \n", + "2699 -1.0 -2.701054 0.819179 \n", + "2701 -1.0 -2.701054 0.819179 \n", + "2702 -1.0 -2.701054 0.819179 \n", + "2703 16.0 3.045505 0.819179 \n", + "2704 11.0 3.045505 0.819179 \n", + "\n", + "[135 rows x 8 columns]\n" + ] + } + ], + "source": [ + "# Filter anomalies\n", + "anomalies = data[data['anomaly'] == 1]\n", + "\n", + "# Print the specified columns\n", + "print(anomalies[['uid', 'name', 'address', 'latitude', 'longitude', 'cost_per_unit', 'available', 'total']])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Result and Silhouette Score\n", + "**Anomaly Detection Rate** refers to the percentage of data points identified as anomalies by an algorithm. It provides an overview of the proportion of outliers within a dataset. A high anomaly detection rate might indicate significant deviations or potential issues in the data, whereas a low rate suggests a more homogeneous dataset.\n", + "\n", + "**Silhouette Score** measures the quality of clustering by evaluating how well each data point fits within its assigned cluster compared to other clusters. It ranges from -1 to 1, where a higher score indicates well-separated and cohesive clusters. A score close to 1 means the data points are well-matched to their clusters and distinct from others, while a negative score suggests incorrect clustering. Together, these metrics help assess the effectiveness of anomaly detection and clustering algorithms." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:48:25.580501Z", + "iopub.status.busy": "2024-12-20T12:48:25.580079Z", + "iopub.status.idle": "2024-12-20T12:48:25.684224Z", + "shell.execute_reply": "2024-12-20T12:48:25.682951Z", + "shell.execute_reply.started": "2024-12-20T12:48:25.580472Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Anomaly Detection Rate: 6.55%\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but IsolationForest was fitted without feature names\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# Assuming you already have your Isolation Forest model\n", + "# Replace `isolation_forest_model` with your trained model\n", + "predicted_anomalies = iso_forest.predict(data[features])\n", + "\n", + "# In Isolation Forest, -1 indicates an anomaly, 1 indicates normal\n", + "anomaly_rate = (predicted_anomalies == -1).sum() / len(predicted_anomalies) * 100\n", + "print(f\"Anomaly Detection Rate: {anomaly_rate:.2f}%\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "execution": { + "iopub.execute_input": "2024-12-20T12:49:13.260613Z", + "iopub.status.busy": "2024-12-20T12:49:13.260237Z", + "iopub.status.idle": "2024-12-20T12:49:13.430907Z", + "shell.execute_reply": "2024-12-20T12:49:13.429653Z", + "shell.execute_reply.started": "2024-12-20T12:49:13.260583Z" + }, + "trusted": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Silhouette Score for K-Means: 0.4902012569562338\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but KMeans was fitted without feature names\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from sklearn.metrics import silhouette_score\n", + "\n", + "# Assuming you already have your K-Means model and predicted labels\n", + "# Replace `kmeans_model` with your trained K-Means model\n", + "predicted_labels = kmeans.predict(data[features])\n", + "\n", + "# Calculate the silhouette score (higher is better)\n", + "sil_score = silhouette_score(data[features], predicted_labels)\n", + "print(f\"Silhouette Score for K-Means: {sil_score}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Observations from the Metrics:\n", + "\n", + "1. **Silhouette Score (0.49):**\n", + " - The score indicates moderate clustering quality. It suggests that while the clusters are somewhat cohesive and distinct, there is room for improvement.\n", + " - A score closer to 1 would imply better-defined clusters. This score implies some overlap or less distinct separation between clusters in the dataset.\n", + "\n", + "2. **Anomaly Detection Rate (6.55%):**\n", + " - The anomaly detection rate indicates that a small proportion of the dataset is identified as anomalies (approximately 6.55%).\n", + " - This rate seems reasonable for fraud detection or outlier analysis, suggesting the dataset has a few significant deviations, which might be genuine anomalies.\n", + "\n", + "### Recommendations:\n", + "- **Improve Feature Scaling:** Normalize or standardize features to improve clustering and separation.\n", + "- **Optimize `k` for K-Means:** Experiment with different values of `k` using the elbow method or silhouette analysis to find the optimal number of clusters.\n", + "- **Enhance Feature Engineering:** Derive meaningful features, such as geographic zones, time-based patterns, or statistical aggregates, to improve clustering quality.\n", + "- **Parameter Tuning for Isolation Forest:** Adjust the contamination parameter or explore ensemble approaches to refine anomaly detection.\n", + "\n" + ] + } + ], + "metadata": { + "kaggle": { + "accelerator": "none", + "dataSources": [ + { + "datasetId": 6343334, + "sourceId": 10254676, + "sourceType": "datasetVersion" + } + ], + "dockerImageVersionId": 30822, + "isGpuEnabled": false, + "isInternetEnabled": false, + "language": "python", + "sourceType": "notebook" + }, + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}