diff --git a/ACI IoT Network Traffic Dataset Analysis/Dataset/README.md b/ACI IoT Network Traffic Dataset Analysis/Dataset/README.md new file mode 100644 index 000000000..e4f69271e --- /dev/null +++ b/ACI IoT Network Traffic Dataset Analysis/Dataset/README.md @@ -0,0 +1 @@ +Link: https://www.kaggle.com/datasets/emilynack/aci-iot-network-traffic-dataset-2023 diff --git a/ACI IoT Network Traffic Dataset Analysis/Images/Bar Graph.png b/ACI IoT Network Traffic Dataset Analysis/Images/Bar Graph.png new file mode 100644 index 000000000..2d390c3bd Binary files /dev/null and b/ACI IoT Network Traffic Dataset Analysis/Images/Bar Graph.png differ diff --git a/ACI IoT Network Traffic Dataset Analysis/Images/Pie Chart.png b/ACI IoT Network Traffic Dataset Analysis/Images/Pie Chart.png new file mode 100644 index 000000000..86449d357 Binary files /dev/null and b/ACI IoT Network Traffic Dataset Analysis/Images/Pie Chart.png differ diff --git a/ACI IoT Network Traffic Dataset Analysis/Model/ACI_IoT_Network_Traffic_Dataset_Analysis.ipynb b/ACI IoT Network Traffic Dataset Analysis/Model/ACI_IoT_Network_Traffic_Dataset_Analysis.ipynb new file mode 100644 index 000000000..66c7e6e01 --- /dev/null +++ b/ACI IoT Network Traffic Dataset Analysis/Model/ACI_IoT_Network_Traffic_Dataset_Analysis.ipynb @@ -0,0 +1,3194 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "YwuxWrIj26L7" + }, + "source": [ + "# ACI IoT Network Traffic" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eA-t2jeQ2_Ay" + }, + "source": [ + "## Get dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "f2-gDXPihjaF" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import tensorflow as tf\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "D:\\ML\\ACI IoT Network Traffic Dataset Analysis\\Model\n" + ] + } + ], + "source": [ + "import os\n", + "print(os.getcwd())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
srcipsportdstipdsportprotocol_msttltotal_lenpayloadstimelabel
0192.168.1.8160683239.255.255.2501900udp23624e4f54494659202a20485454502f312e310d0a4e54533a...1698670981Benign
1192.168.1.953160239.255.255.2501900udp12044d2d534541524348202a20485454502f312e310d0a484f...1698670984Benign
2192.168.1.953160239.255.255.2501900udp12044d2d534541524348202a20485454502f312e310d0a484f...1698670985Benign
3192.168.1.953160239.255.255.2501900udp12044d2d534541524348202a20485454502f312e310d0a484f...1698670986Benign
4192.168.1.953160239.255.255.2501900udp12044d2d534541524348202a20485454502f312e310d0a484f...1698670987Benign
\n", + "
" + ], + "text/plain": [ + " srcip sport dstip dsport protocol_m sttl total_len \\\n", + "0 192.168.1.81 60683 239.255.255.250 1900 udp 2 362 \n", + "1 192.168.1.9 53160 239.255.255.250 1900 udp 1 204 \n", + "2 192.168.1.9 53160 239.255.255.250 1900 udp 1 204 \n", + "3 192.168.1.9 53160 239.255.255.250 1900 udp 1 204 \n", + "4 192.168.1.9 53160 239.255.255.250 1900 udp 1 204 \n", + "\n", + " payload stime label \n", + "0 4e4f54494659202a20485454502f312e310d0a4e54533a... 1698670981 Benign \n", + "1 4d2d534541524348202a20485454502f312e310d0a484f... 1698670984 Benign \n", + "2 4d2d534541524348202a20485454502f312e310d0a484f... 1698670985 Benign \n", + "3 4d2d534541524348202a20485454502f312e310d0a484f... 1698670986 Benign \n", + "4 4d2d534541524348202a20485454502f312e310d0a484f... 1698670987 Benign " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('D:\\ML\\ACI IoT Network Traffic Dataset Analysis\\Dataset\\ACI-IoT-2023-Payload.csv')\n", + "pd.set_option('display.max_columns', None)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dW7fRPpahgGd" + }, + "source": [ + "## EDA" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "t4ChRqiXsIZZ" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "srcip 0\n", + "sport 0\n", + "dstip 0\n", + "dsport 0\n", + "protocol_m 0\n", + "sttl 0\n", + "total_len 0\n", + "payload 0\n", + "stime 0\n", + "label 0\n", + "dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "CxOR0kJM3SWR" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "label\n", + "Benign 601868\n", + "DNS Flood 18577\n", + "Dictionary Attack 4645\n", + "Slowloris 2974\n", + "SYN Flood 2113\n", + "Port Scan 582\n", + "Vulnerability Scan 445\n", + "OS Scan 156\n", + "UDP Flood 68\n", + "ICMP Flood 58\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.label.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "mrlQp4My4faj" + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "labels = ['Benign', 'DNS Flood', 'Dictionary Attack', 'Slowloris', 'SYN Flood',\n", + " 'Port Scan', 'Vulnerability Scan', 'OS Scan', 'UDP Flood', 'ICMP Flood']\n", + "sizes = [601868, 18577, 4645, 2974, 2113, 582, 445, 156, 68, 58]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "Actc2Dc-4l4W" + }, + "outputs": [ + { + "data": { + "image/png": "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gQPZ9j6SL18+vfnmm7r99tvVpEkTrVmzRtK5SwzSwoG0X3qlm68XwYYNG7xuHzp0SEOHDtVLL72k3r17K1u2bDp69KimT5+ulStX+qbIm4jH49HKlSvVqVMn3XHHHRo5cqTWrVunkJAQPfTQQ/Qg+Jd+/fVXzZkzR71799bAgQP16quv6sUXX1R8fLxee+01AoIbQNqxxxdffKHjx4/rlVdeUZs2bdS3b1+NHz9egYGBqlSp0k0ZEKR9b+zdu1djx47Viy++qHXr1unBBx/UwoULNWzYMB08eNDHVd48fvnlF3Xu3Fm9evXS22+/rdWrV2vChAn68MMPGYPgKvDz89OsWbPUoEEDhYeHq0ePHnrggQc0fvx49erVy9flXX8GpFOpqanO/2/YsMEqVKhga9assb1799obb7xhHo/Hhg8fbqdPn/ZhlTen1NRUO336tDVp0sR69OjhLE9MTLQBAwZY8eLFrX///paQkOC7Il0oOTnZ+f9t27ZZq1atLGfOnLZ161Z78sknbdSoUXb69Gn7/fffLT4+3pKTk23jxo0+rPjqmj59umXLls1iY2OdZfHx8RYVFWVjx461Y8eO2cCBA6127doWERFhmTNntk8++cSHFd8cxo8fb5UqVfLa1yYnJ1uVKlWsZMmStmzZMjt79qwPK0xffv/9d6tSpYrlzJnTnn76aa918+bNszvuuMNatGhhixYt8lGFSPPrr79a/vz5zePx2Ntvv+0sT01NtR9//NEqVKhgZcqUuSmPQ3788Ufr06ePtW/f3k6cOOEsHzFihFWvXt2eeOIJO3DggA8rvHmsWrXKChUqZPv373eWnT592saNG2cej8eee+45H1aX/iUkJFjr1q2te/fuzrIjR47Ym2++aVmzZrX+/fv7sLrrj3AA6d4rr7xivXv3tieffNJredpOk4Dg2mnUqJE99NBDXsuSk5Otfv36liNHDnv88cftzJkzPqrOXVJSUpz/P3bsmJmZ7dy501q1amVhYWGWIUMGK1GihBUsWNCyZ89u+fLlszx58tjdd9/tq5KvibSD0YMHD5qZWWxsrLVo0cJq1aplwcHBdu+999q4ceNs9+7d1rx5c+vatasvy70pvPLKK1awYEHndtr+dvny5ebxeKxw4cK2cuVKH1WXPn300UdWokQJi4qKsp9//tlr3fz5861SpUp2//33893m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LVs2DRw4ULt371bdunW1fPlyTZkyRa1bt1ZMTIx69Ojh4+qvnaCgIM2aNUuNGjXStGnTNH36dJ09e1Z+fn5KTU2VJI0fP16bNm1SSEiIj6tNvwoXLqyMGTNq5syZiouLc5aXKlVKuXPn1qlTp3xY3Y3P/v8o5CtXrtTnn3+u33//XXnz5lX58uWd2TT69esn6dz3W5UqVdSiRQvde++9kti3Xi/n72ffe+89vfbaa5KkSpUqqUiRItqyZYty5cql9u3bS5LCw8P12GOPaezYsapevbrP6r5azEySFBcXp6SkJJUrV079+vVTxowZ9cwzz6hWrVoaNWqUGjVqpAoVKmj79u368MMPderUKee+uLS0bXX+57patWrKmzevnnzySZ08edKZYevUqVMqUKCA8uXL55NabwZp2zt37tzOjCJBQUFKSkqSJNWoUUMZMmRQUlKS6/e1hAO4IRUuXFiNGjWSdO4gSZIiIyN19OhRLVu2TNK5k1YzU7FixVS4cGFNnjxZAwcO9PpyCghgts4rkbbt4uPjdeTIEWd5mzZtVLBgQfXr10979uxxgoA//vhDYWFhSkhI8Em9bmJmzgHrM888o3bt2mnAgAG6/fbb9dRTT2n37t26//779frrr8vM1KpVKw0bNkwBAQFau3atAgIClJKS4uNX8d+lvUc3bdqkKVOmaP78+fr5558VFBSkadOmKU+ePBo+fLhmzpzpBARp92E6vcuTtr22bt2qFStWaM6cOZKk2rVrq23btnr++ec1ceJE7dixQydPntS4ceOUmJioggUL+rLsG1paMDBt2jQ1atRIu3bt0okTJ7zWx8XF6aeffpIkTZs2TZGRkRo0aJATiOP6SNvPPv300xoyZIhSU1O1b98+Z/2pU6e0evVqHThwQH/++adGjRqllJSUm+JHibT36ezZs9WtWzctWrRIycnJyps3rxITE7V9+3aVLVtWGTNm1NmzZ5UnTx499dRTeuutt5Q5c2bXn1RdrrTtvHr1ar388ssaNWqUpk6dKkmaMmWKTp8+rdq1a2v+/Plavny5hg8frp07dyoqKsrHlacfad9jx44d0/HjxxUfHy9JGjZsmFJTU3XHHXcoJSXFCWB+/vlnhYSE3BTHSf/Z9e6qAPyTv3blGzdunI0dO9a51nLAgAGWP39++/LLL502J06csG7dutnChQstKCjIa5RnXL7zR3G97bbbLH/+/NawYUMbNWqUpaam2qxZs6xu3bqWN29ea9++vTVt2tSyZs1qGzZs8HHl7vLyyy9b3rx5nTEEnn/+ecuQIYM99NBDXjNE/PLLL3bkyBHn3/Vmusxm6tSpliNHDitTpozlz5/f8uXL51wPe/r0aatfv75Vr17dPvvsM8bAuEJp75cvv/zScufObcWKFbPQ0FArV66cMyr7s88+ayVKlLCwsDCrXLmyRUREMGL2ZVi7dq3lzJnT3n///Qs+j7/99pvdc889VrRoUStVqpSFh4fbTz/95JtCYZ999plFRETY999/f8G6Y8eOWbNmzczj8dgtt9xiZcqUcfYzN0N35K+//tqCg4PtxRdf9PpOiY2NtSZNmli7du1s5syZNnDgQCtatKjFxMT4sNr0a9q0aZYlSxa74447rGLFihYYGGhdunSx1NRUO3DggNWpU8cKFSpkBQsWtDJlyrCPvQJpn8Pp06dbnTp1nFlgXnzxRTMzW7FihRUrVswKFy5sbdq0sXvvvdeyZMniTE3qdoQDuKE1bdrUihYtahMnTrTExET77bffrEuXLhYeHm79+vWzt956y+644w6rUqWKJScnW+3ata1bt26+LjtduNhBzPz58y0oKMgGDx5sn376qXXo0MEqVapkXbt2tdTUVNu2bZu9+OKL1qJFC+vRowfTal0H5wdm+/fvt9atW9ukSZPMzOyrr76ysLAw69Kli2XJksXat29/0ROK9D5q9vn1p40zMn78eDtx4oRt3LjRnn32WfPz87N3333XzM6NV1K9enW7/fbbXTU38dWyZs0aCw0NtYkTJ9quXbvs4MGDdvvtt1vx4sWdUOrHH3+0r7/+2qZNm3bBGATwlravfeeddywqKspOnDjhrDv/vb1792775JNP7NVXX2UqWB9JGwuiX79+1rZtWzO7cNYXs3PXKk+bNs2+/PJL5z43QwC7f/9+K1eunDOewl999tlnVrNmTcuXL58VK1aMqUr/pV27dlm+fPlszJgxZmYWFxdns2bNspCQEOd6eLNzMwzt2LHDDh8+7KtS06158+ZZUFCQvfLKKzZ27FgbMGCAZcmSxXr27GlmZsePH7fevXtbp06d7Iknnrhpp3j+NwgHcMP4uxOYBx54wG699Vb78MMPLTk52Q4fPmyjR4+2okWLWvXq1a1JkyZOal+3bl0bNmzY9Sw73Ur7sklJSbGUlBRLSEiw+++/33r16uW0SUhIsDFjxljFihVt7NixvirVtf4aDJiZzZ492+Li4uyHH36wAgUK2JtvvmlmZi+88IJlyZLF7rvvPtu5c6dP6r3avvrqK+f/07bFtGnTrHLlys6sDGbnftEaMGCAFStWzBnNOSEhgZPWy/Ddd9/Z77//7rXsww8/tMqVK9vJkye93oO1a9e2ypUrX+8S06UjR47Y1q1bvQbW7du3rzPglZn353vt2rWcAPjIzz//fEEPgf/9739Wv379C45LEhISbO7cuRc8Rnod1fyvr2/Pnj1WsGBBW758ubPsrz8k/PHHH/bLL7/QY+Ayvf322xeceP74449WtGjRC2Z2+Prrry1TpkwM8HiF0gZuTHs/nz171jp16uQMpG127keDKVOmWNasWW3kyJFe978ZevxcTYw5gBvC+QMAbdiwQb/++qsOHDggSfrkk09UuXJlDR8+XJ988omyZMmi7t27a8OGDVq1apVmzZqlDBkyqF+/fvr111/Vpk0bX76UdGHKlCmqVauWNm3aJD8/P/n5+SkoKEjHjh3T0aNHnXZBQUH63//+p6JFi14wQCSurWnTpunrr7+WJD311FPq3LmzUlJSVK9ePYWEhGjWrFmqUKGCHnnkEUnnxteoWrWqUlNTVaRIEV+WflXs3btXLVu2VMuWLSX933XA/v7+2rZtm/bv3y/p3HWFoaGhatasmU6cOKE///xT0rn3Ltdq/7NVq1apQYMGev/99xUTE+MsP3TokP78809lzpxZfn5+On36tCTp/fff16+//qoVK1b4quR0YevWrWrevLnGjh2rbdu2OcvvuOMObdq0SdOmTZP0f+/phIQEffbZZ1q2bJkzgCauj0mTJunhhx/W22+/rV27djnLb731Vm3cuFE//PCD1zhGp06d0tixYzVz5kyvx0kbhyc9+e233/TRRx9pw4YNzrIjR47ojz/+UKZMmSSdG/MpbRyBn376SXPnzlW2bNl0yy23KCIiwhdlpytnzpzRq6++qmbNmmnnzp3O8qxZs2r//v3avHmzV/uaNWsqb968OnTo0PUuNd16//33VbRoUcXFxXmNMbR9+3bFxsY67YKDg9WkSRN16tRJq1at0pkzZxhA828QDuCGkHaQ1K9fPzVv3lxVq1ZVz5499dVXX0k69wVeuXJlvfLKK5o8ebLi4uKUJUsW+fn5af369erVq5c+/fRTzZo1S8WKFfPlS0kXMmfOrEKFCqlLly7Ol1NSUpIKFSqkAwcO6NChQ85BakBAgOrWrau9e/d6DaCFa8fMtHTpUrVu3VrNmjXTu+++q5EjR8rf31/BwcGSzh3EJSUlOf8ma9as0ZNPPqkvv/zSa5T+9KpgwYKaP3++Vq5c6RX4FS9eXKVLl9ZHH32kAwcOOAeuRYoUUbZs2Rgx/zKkHRDVrFlTffr00Ycffqj3339ff/zxhySpVatWio2N1XPPPSdJzonCmTNnlCNHDoWGhvqm8HRg06ZNuu2221SlShW1adNGFStWdNZVqVJFHTp0UN++fTVlyhRJ0tGjR/XSSy9p0qRJqlixovNdiGvvww8/VJcuXfToo49q4MCBKlq0qLOud+/eKlGihNq2bat58+Zp9+7d2r17t9q3b68///xTjRs39mHl/92mTZsUHR2tWbNmOZ97SapataruvPNOPfLIIzp06JAyZMjgrPvwww81Y8aMdP/dcj2kbaOMGTNqzZo1yp49u5o1a6ZffvlFkpQvXz7nu/3777937pc9e3Zlz57dGYgbl1atWjVlzZpV9erVU3x8vDwejwICAtS4cWPt27dPGzdudNpmzJhRuXPndoKatOMHBtL8C192WwDO78qzePFiK1KkiC1dutQmTpxo9913n1WtWtU+/fRTp80DDzxg4eHhXl2u4uPjbc6cObZ3797rWnt6k9bdKq371eLFi61x48ZWrVo1ZxCWbdu2WdasWa1jx4528OBB576PPPKI3X333V5zwuLaOL976q233moBAQE2atSoC9pNmzbNgoODLSoqyooXL26lSpVyrnlN713kzp8LfuHChRYWFmatW7d21g8dOtRKlixpTz/9tG3YsMEOHz5s/fr1s3z58tmBAwd8VXa6kLYfOL8767Bhwyxfvnw2bNgwZ/u9+uqrVrRoUXvmmWfMzOzo0aP2/PPPW7FixeyPP/64/oWnAzExMVa+fHkbMGDABevS3tO//fabde3a1fz9/a1EiRJWrlw5y5MnD4ONXWdr1661/PnzO+O3nO/48eNmdu6zcu+991rBggUtJCTEKlSoYNWrV3cuY0yvlxJs3brVwsLCrH///rZv374L1i9cuNBq1qxppUuXtqVLl9rMmTOtT58+FhYWZhs3bvRBxelL2j52y5YtNnnyZDM7t/+sVq2alSxZ0hlPZM6cOVa3bl2766677IsvvrCffvrJ+vTpYzly5LjgcgN4S9vGJ0+eNLNzx67ly5e3smXLWlxcnJmdex+XKVPGnnzySa+Bs7t162ZNmjTxujQR3ggHcEP46quvrEuXLjZ8+HBn2bp166xDhw5WpUoVr4Bg8ODBzpdyej8Jul7SdqTr16+3u+++2zkgWLBggd19991WrVo15+D0u+++s5CQEKtdu7Y1bdrU2rdvb1myZGFWguvg/PDl119/tejoaGvTpo0FBwfblClTnHXnj8T73HPP2aBBg5xgIL0esJ4v7fUdPXrUzM69T7Nly2YtWrRw2rz44osWFRVl/v7+Vr58eU6wLkPafmDDhg3m8Xjsiy++cNalBQRDhw6148ePW2xsrL3++usWHh5uuXPnttKlS1tkZCQDkP2DlStXWoUKFZxxL8zMfvrpJ3v33XftrrvuskcffdQ56F++fLm98cYb9vnnnxNs+8Ann3xiNWvWtNOnTzvL5s6daz169LBbb73V7r//fvv111/NzGzVqlU2c+ZMW7x4cboffPDUqVN27733el2LbXbue+PAgQPO2DabNm2yZs2aWVhYmN16661WvXp1Zs+4DGn72J9++skyZszodW370aNHrWrVqla8eHFnXKB58+ZZ+/btLSgoyEqUKGElSpTge+wSzv8eq1u3ru3YscPMzoUx5cuXtzJlyjgBwaeffmply5a16tWrW9OmTa1169bMsnUZCAfgc7t27bI6depYWFiY9enTx2vdunXrrGPHjla9enVnqrI0N8NJ0PVw/o40MDDwgm08b948JyBI22H+8ssv1r9/f2vXrp117dqVWQmug0WLFlmXLl3MzKxLly7WtGlTJ9nu0aOHBQUFeU3haWYXDCSXXg9YL2br1q1WuXJlW7t2rZmd+xXgrwHBb7/9ZosXL7YlS5ZcsC3g7fyD1ixZsjg9As4fkGzIkCGWN29eJyAwMztw4IC9++67Nn36dE5iLyFt+se0A/8PPvjA6tataxUrVrQ777zTKlWqZIUKFWKgzBvARx99ZLfeequtXr3azMy6d+9ut912m9WsWdOeeeYZy58/v912220XvW96PvZISEiwmjVr2ttvv+0sW7hwodMzoEiRItayZUtn3bZt2+zQoUN27NgxX5Sbrpx/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wOs7Mj05dOiQDh06pKJFiypz5syXbD958mStXr1an3/+uebPn6+KFStehypvPikpKfL399fevXtVp04dhYeHa9asWSpQoIAkjrOulrVr1+ree+/VwYMH9dVXX6l58+a+Lunm4rtcAm6QmJjo9Qvf3r177ZZbbrGEhASbP3++ZcmSxcaPH29m5+YrHT9+/AXX/pGsXh1JSUk2d+5cq1Chgt1+++03Zbf09GLdunXWuHFj++abb6xLly7WqFEjK126tC1atMgZiDAxMdFef/11K1++vOXOnduqV69+U17q8e2331qjRo1s69atlpKSYnPnzrUGDRrY9u3bbefOnTZ06FDz9/c3j8dzwUB6uNA/dZ9M+8ynpKRY9+7drVq1avbyyy87vVPY1/6zw4cPW4MGDezZZ5+1zz//3Dwez0W7C5/vyJEj9vnnn3MJjI+kpKTYzp07zePx2OzZs/+x7bp16+zbb791Pgfp9btxy5YtVq1aNXvggQcuq6fKxo0b7bbbbrNmzZoxkvtVkLaf3b17t2XLls2io6MZePAaWL9+vUVERNh99913wXkD/hvCAVwzU6dOtRYtWljFihVt6NChzvJq1apZy5YtLWvWrPbuu+86y3fu3Gm33XabzZo1yxflpmtpBzOXOrg/e/aszZ8/38qUKWN16tTx6m6M6+uOO+6wxx9/3MzODcL33HPPWZ06daxUqVI2duxYZyC4gwcP2rfffnvThTnnj6BfvHhxq169ug0YMMBOnTplAwcOtAoVKjjdeufNm2f33nsvB66X6Z+mHUt7H6VdYlClShUbMWKEM74F/l5cXJw988wzdsstt1iGDBns/fffN7O/339yneuN49FHH7U777zT/vzzz8tqn16Dsk2bNjnTQq9ateqy73fgwAEGbrsMae+LhIQES0xM9Arsz/+8p+0Tdu3aZdmzZ7fGjRvbtm3brm+x6dTfffYutj/94YcfnBmMCAiuHsIBXBMTJkywkJAQ69Wrl/Xs2dP8/f1tzJgxZmY2evRoy507tzVv3txpf/r0aWcgQk5Ur0zajvS3336zjz/+2H7++ed/bJ8WEFSoUMHKlSuXbg+C0qu07b1p0ya7/fbbbfny5c66yMhIq1atmkVGRlqdOnWsadOmlpCQ4Ky/GT4bf3fC9PLLL1v9+vWtWLFiNmPGDKtXr569+uqrXgdjuLTjx49bzpw5/7GXxfkBwZNPPmnFihWzN954g5PZf5AWyi1ZssTCw8OtQIECNnjwYKZ8vcH89T2c9u82depUK1OmjPNL+s3473X48GGrXLmyDRgw4IJ1iYmJXsEyn/Url/ZdtG3bNmvfvr1Vq1bNOnbs+Le9h87vQeDxeKxVq1Y31QxD10LaNo6JibElS5bYN9984zWA698FBJGRkdagQQOvqQvx76W/C6lww3vvvffUvXt3TZkyxbkO6NChQ0pJSdGJEyfUvHlzbdu2TStWrNDdd9+t/Pnza9u2bYqNjdW6devk7+/vXPOKf5a2nTZv3qzWrVurYsWKCgsL+8frWgMCAnTnnXfqhRde0Msvv6z9+/erYMGC17Fqd0t7X+fMmVMpKSnaunWrateurfLly6to0aL67rvvtHv3bs2cOVPLly/3ut7V39/fV2VfFfb/r7f87rvvtGjRIiUnJ6tEiRJ68MEH1a9fP7Vr106jRo3SAw88oMyZM+v48eNq2bKlChUqpKCgIF+Xny6EhYXp6aef1nPPPadMmTKpT58+F7Tx9/d3ro197bXXFBgYqHvuuYdrYf9BQECAPv30U7322muaMmWKvvvuO82dO1cJCQkaOnSoAgICnG0K30l7Dy9cuFDFixd3vttatmypkSNH6vnnn9f06dNvyn+nQ4cOKTU1VW3atHGWrV27Vj/88IM+/vhjlSxZUs2aNdO9997LZ/0KpR1r/fzzz7r99tvVoEEDlSpVSkuWLNHPP/+sTJky6fbbb/e6T9p+tnDhwtq9e7cSExOVIUMG37yAdCBtG2/atEmtWrVSSkqKdu/erfr166tv376qX7/+Rd+3VatW1VdffaUHHnhA8fHxCgkJ8UH1NxlfpxO4uXz77bcXvTa4fPnyVrZsWcuSJYvdfffdNmTIEJsyZYrdc8899tBDD9mgQYOcVPtm6TZ9raUlqFu2bLGwsDDr27ev7dmz56JtL9Y74OzZs3by5MlrWSIuYerUqZYtWzbLkyeP1a5d2w4dOuSsO/+XrZvpV65p06ZZ5syZrWHDhlanTh3z8/OzBx980Ou1z50715o0aWI5c+a0AwcO+LDaG9/FfklJTU21t956y/z8/GzkyJF/e9+b6X11raRt36NHj1qJEiXs9ddfN7Nzlxj079/fqlWrZgMHDnS25Ycffmjr16/3VbmwczMeValSxUJDQ+311193pkWeO3euRUVF2erVq31c4bWxcOFCCwwMtK1bt5qZ2XvvvWe1atWyqlWrWosWLezOO++0kiVL2g8//ODjStOnrVu3WsaMGb0uk125cqWFhITYc88997f3Yz97aWnHqD///LNlypTJBgwYYD///LPNmDHDsmXLZi1btrzkpW9nzpy5HqW6AuEArqpffvnFateubffcc4+tXbvWzMxatGhhxYoVs8mTJ9u8efOsVKlSVqFChYsO0MRO9MqcPHnSmjVrZr169fJanpycbEeOHPGaP5duhDeeo0eP2h133GF169b9x+vEbxZ79+61QoUK2dixY51lK1assLCwMOvUqZNX24MHDzKV3iWkHVD9+eefXl0vzc593t944w3zeDz/GBDg0r755ht76qmn7NFHH7WTJ0862z0+Pt6eeeYZq1GjhrVu3dr69OljHo/HduzY4eOK3WXZsmXOWALDhw+3zz77zPbu3Wuvvfaa3XbbbVakSBF77LHH7IsvvrDChQvbW2+95eOKr67zv9sbNGhgGTJksEqVKllgYKANHTrUmRJ6zZo1FhERYZ9//rmvSk23Tp06ZbVr17YCBQrYxo0bzez/fshq0KCBPfbYY74s76awc+dOy5Ili3Xu3Nlr+ciRIy0kJORvf/zC1cdlBbiqbrnlFr3//vt68sknNXjwYMXGxurMmTNatGiRChUqJEnKlSuXqlSporVr1ypv3rxe978Zu/pdSx6PRwcOHFDTpk2dZYsXL9aiRYv0wQcfKDg4WI0bN9b48ePl8XiYRuc6+uulMRfrcpw9e3bVqVNH7777rjPd1M1ySc348eNVsmRJ1alTx3k9Z86ckZ+fn2677TZJ517rbbfdpunTp6t+/fpq1qyZmjVrJknKnTu3z2pPL/z8/LRr1y7dcccdSk1N1RNPPKGcOXPqwQcfVEBAgHr06CF/f3/17NlTqamp6tu3r69LTneSkpK0dOlSvfnmmypevLjzOU1KSlLWrFk1YMAA5ciRQ4sXL9bq1av1008/6dZbb/Vx1e6xZ88ePf300woLC1ORIkX09ttva8uWLSpYsKB69eqlVq1aac+ePerTp49iY2O1d+9evfjii6pfv75KlCjh6/L/k7T96aFDh5QjRw5lypRJCxcu1Ouvv66kpCR99tlnXq8xb968yps3r7JkyeLDqtOnTJkyqWfPnho1apSGDx+url27qlatWtq7d6+WLVumdu3a+brEdG/Xrl1KTExUSEiItm/f7rx3c+TIobCwMKWkpPi4QhfxdTqBm9Mvv/xi9evXt9DQUJsyZYqZnfuVKzU11datW2elSpWy7777zsdVpj9/vTxgz549VqpUKRsyZIjt3r3bXnvtNStTpow1a9bMhgwZYmPGjLHg4GB+OfSh995776KD5KT92pOYmGjlypWzp5566nqXdk2kva7ixYtbgQIFbOXKlc779tdff7WAgACbNm2amZ17P6ekpNjp06etYsWKNmrUKJ/VnZ6cvx+YOHGi5cyZ0/z9/a1Ro0ZWvHhxK1asmNWvX9+++OIL+/HHH+3DDz80j8djb7/9tg+rTr92795tQ4YMMY/HY6NHj3aWnz8YYWpqqjMlJK69+fPnO/8/a9Ysi4iIsIwZM9rSpUvN7MIBTE+ePGmrVq2yvn37WrZs2WzixIlmln57K27dutVatGhhZcqUsYCAACtfvrz169fPWX+xSwmfeeYZK1WqFJdqXaa077LzL3WdNm2aVa1a1R5++GH76quvrECBAta1a1dflZiupb1Hz5w542zryZMnW758+ex///ufHT161A4fPmw5cuSwgQMH+rJU1yEcwDXz66+/WnR0tDVq1MhrRPYmTZrY7bffzij5/9LevXtt0KBBzu3XXnvNMmbMaAULFrTMmTPbmDFjnG6tCQkJVq9ePevSpYuvynW1ffv2WbFixZwTiotd2nH27Fm799577eGHH77e5V11f/1M161b14oUKWIrVqxwTqQ6d+5s1apVs2XLlnm1rVmzpnM9Ny5tx44dNnHiREtISLC33nrL7rzzTnvggQcsNjbWvvzyS+vUqZPdcsstlitXLmvYsKHlzJnTPB6PffTRR74u/YaW9hk9efKk18n+sWPHrF+/fpYxY0abMGGCszy9nlymZ2+99ZZFRUU5J23fffedFStWzMqXL29NmjRxxi9JW//X/W737t2tZMmS6fZSu40bN1poaKh17drV3nvvPfvqq6+sWbNmFhgYaHfffbfX9Hpm567j7tOnj4WHhzuzNeDvpX2PJSUlWWpqqv3yyy9e4zN9+eWXVqVKFcuSJYvXrFvsC67ctm3b7MEHH7TFixc7n8cvvvjC8uXLZ+3bt7fcuXN7hS+cN1wfhAO4pn755Re766677O6777YVK1ZYixYt7NZbb3VOFPigX5nU1FQbOXKkFSlSxOuX5lWrVtny5csvuO44ISHBGjVqZMOHD7/epcLOHZy2adPGmjZt+o/tDh065BxYpNcD1rTP8p49e+ytt95yxruoXr26FS1a1OkptHLlSmvevLlVrFjRPv30U1u6dKk9/fTTli1bNq8xMnBxqamplpycbA899JC1bdvWzM5NX/jmm29a6dKlrVu3bk7bXbt22Y8//mhPPPGERUdHW0BAgG3ZssVXpd/w0j57s2bNsrp161qZMmWsVq1aNm3aNDt58qTFx8fbgAEDLGvWrPbOO+/4uFr3OnDggLO/THs/Hz582KZNm2a1atWyu+66y2uAU7Nz14yn+f77761ixYq2b9++61f0VXL48GGrWLGi9e/f/4LlY8aMscyZM1ubNm2c5R999JFVr17doqKinGvl8ffO7+XWvXt3K1u2rGXIkMHKlStnvXv3dtrNnDnTKlasaO3atbPvv//eV+WmW6mpqXb69GkrWbKkeTweu//++23FihVePQhy5sxpJUuW9PrOSq/HR+kN4QCuuV9++cUaN25sGTJksOLFizvBALMS/Dt//vmnDRs2zCpXrmw9evRwlv81aDl79qwNHDjQ8ufPb7t27brOVbrP3wVdW7dutWzZstmnn356yful118e0l7Dxo0b7dZbb7V7773Xvv76a2d99erVrXDhwrZq1SozM1u9erU9/vjjFhwcbCVLlrSyZcsywvsVGjVqlJUpU8a5ZCU+Pt5Gjx5t5cqVu2Bwx7QDKjcMevlfzZs3zwIDA23gwIH27rvvWrNmzaxEiRI2fPhwO336tB05csSee+4583g89uGHH/q6XFd5/vnnvW4vWrTIPB6P1yUCn332md12223WuHFjO3z4sJmZPfLII86lTGZmTz31lIWHh9vRo0evW+1Xy/r1661MmTK2adMm5/sibf8bGxtrw4YNs0yZMjn734MHD9q8efPs4MGDvio53Th/xPwCBQpY586dbfjw4TZv3jy75557LFu2bFavXj2n/dSpU61q1ar2wAMP2IoVK3xVdro2YsQIy5cvn+XMmdPq169vK1eudL6vvvrqK8uXL589/vjjtn37dh9X6i6EA7gutm3bZt27d2e6wiv0dyecx44dsyFDhlilSpW80uw0s2bNsu7du1vOnDk56boOzk+z586da/v373eWnThxwjp06GCPPvqomd28vWW2bdtm4eHh1r9//4te01qzZk3Lnz+/ExCYmf3+++924MABTlqvQNr7Z+bMmVa4cGE7ffq0sy4tIChfvrzXiM9p3Yz51eWfnTx50u65554LZn/p16+f3XrrrTZnzhwzO3dp17BhwzhgvY62b99uAQEB1rBhQ2fZrl27rGfPnhYeHu4VEEyaNMlq165thQoVsttvv93y5s3rdczxyiuvpNvp/D788EMLDg52bv/1M717924LDQ21ESNGXO/S0rW0/eqGDRssc+bM1q9fP6+p8WJjY+3111+3sLAwr0sJZsyYYbfccos98sgjTKV3BdKCrZ9++skeeeQRmzlzppUpU8Zq165tq1at8rrEoFChQvbggw/aL7/84suSXYVwANcdwcDlSds5bt++3d58802bO3eunT171hlo6ejRozZs2DArX76818Hs4sWLrVKlSnbPPffQhfg6OP9k/7vvvjOPx2O1a9e2du3aOd1WlyxZYoGBgTdtt84zZ85Y69atLxiYKSkpyXbv3u38gnfXXXdZ/vz5beXKlU4PIvyztPfX6dOnvQ4+T506ZbfeeqstXbrUudTA7P8CgsqVK9t9993nk5rTi+PHj9uuXbu8elbVqVPHGdjt/EHtoqOjrX79+s7t9NrLJz1btWqVFSxY0OvfYe/evfbUU09Z1qxZnYAgJSXFli9fbs8995z16tXrpvpRYsWKFRYcHGxTp0792zYVK1a0nj17Xseqbg579+614OBg69Onj5nZBe+b+Ph4e/bZZy1nzpxePVHmzp1ru3fvvv4FpyPnj+Pw1x9I7rzzTuvWrZudOnXKSpUqZXXr1vXqQfDxxx9b6dKlL7hsFtdO+p8vC+lOQAAzaF4Oj8ej2NhY1ahRQz179lS7du1UuXJlderUSVOnTtWZM2c0cOBAtWzZUuvXr1fPnj0lSXfccYc+++wzTZw4UaVKlfLti7jJmZkzTV/Xrl31wQcfaOPGjXrooYd08OBBRUVFqWPHjjpz5oyaN2+ucePGKSkpycdVX30BAQGKiYnxmjZrwYIF6tu3rypUqKBKlSqpdevWmjdvnkqXLq27775b69at82HF6Yefn5/27NmjWrVqqW7duho8eLDGjx+vlStXKjExUYcPH5bH45G/v79SU1OVNWtWderUSffdd5/++OMP/fHHH75+CTekzZs3q2nTpqpbt67q16+v7t27S5KKFCmib7/9VpIUFBTkfF5vv/12JSYmKjk5WRLT7l4v9erV05IlSyRJUVFR+vzzz7V9+3Y1aNBAklSwYEF1795djz32mLp3766PP/5Yfn5+ql27tl544QW99tprCggIUEpKyk1x7FGoUCGFhITo448/1m+//eYsT01NlSQdP35cGTNmVOXKlX1VYrqTtu2+++475cmTRzExMUpISPB635iZsmbNqq5du8rMtGXLFuf+jRo1UuHChX1Vfrrg5+enrVu3qmPHjnr99dd19OhRZ93YsWO1evVq7du3T998840OHjyogQMH6vvvv5eZ6cEHH9Tq1asVGRnpw1fgLoQDwA0sLCxM/fr1U44cOdSpUyfVq1dP4eHh6tKli2rVqqV27drp1KlTKlKkiBYvXqxevXpJkkqUKKHw8HAfV3/z83g8kqTff/9d33//vTp06KAyZcro4Ycf1tKlSzV8+HCFh4erefPmmj17tr755hudOnVK0v8dkNwMTp8+rSNHjmjjxo3asWOHhg8frh49emj//v0aOnSohgwZorVr12rYsGGaN2+eqlSpohw5cvi67Bta2vvDzBQeHq5HHnlE0dHR2rx5s1566SW9+OKL2rdvn6ZOnaqdO3dKOncAlpqaqixZsuiJJ57QjBkzlDt3bl++jBvSzz//rKioKJUrV04jRoxQnTp1NHXqVL300kvq27ev9u7dq/bt20uSAgMDJUk7duxQeHj4TfW5TQ+io6NVq1Yt53ZUVJSmTJly0YDgf//7n3r06KG33377gse5WcKcfPnyafz48Zo/f76ee+455yQ1LaR+7bXXdPDgQdWuXduXZaYLZiZJOnPmjCTp3nvv1bPPPqsdO3bowQcf1JkzZ+Tv76+UlBTnuz4yMlKRkZGKi4vzWd3pjZnpzJkzatmypb744gu99957qlSpkt566y0tWbJExYsXV968eTV//nzlzp1bS5Ys0ZEjR/TEE09o7dq1kqQsWbL4+FW4jA97LQC4iPO7X6UZNGiQ3XLLLfbyyy9bYmKi7du3z5YuXWqtWrWyBg0amMfjMY/HYxEREU4XblwfL730krVo0cIeeOABp9v3X7sc//TTT/b8889bvnz5vGaZuJksXrzYAgICrGDBgpY1a1abMGGC7dy508zOvZcbNmxo7dq183GV6cP5Mz+MGzfOfv75Z6/1iYmJFhMTY2+++abVqFHDHnvsMdu2bdsF98eFdu7cacHBwfbcc885y06fPm316tWzWrVqWUJCgn311VcWERFhVapUsUceecTuv/9+y5w58017WVB6MHz4cPv888+d26tWrbJ8+fJdcInBI488Yg0aNPBFiddNcnKyTZgwwQICAqx48eL28MMP28CBA+3++++38PBwxhm6AjExMVakSBH76quvzOzcvuC9996zqlWrWqtWrZzv9LRLC7Zu3Wo1atSw2bNnmxnjuPyTv26bGTNmWKFChaxbt27WrVs369q1q+XLl8+GDBlinTp1svDwcGccl99//92qVq1qe/fu9UXprpf++1gBN4nU1FT5+fk5CfXp06cVGhoqSRoyZIhSU1P11ltvKTk5WY888ojq1q2r2rVry+Px6Ntvv9X27dt15513KmfOnL58Ga6SmpqqoKAgzZ07V7fccovz603af6VzqXmFChVUokQJZcmSRQsWLNCJEyeUNWtWX5V9Tdxxxx3avXu3Dh8+rIIFC3r1DPD391doaKiKFi3q/PJ6/jbC/0nbD2zatEmtWrVS6dKlVaBAAZUrV06SlJycrMDAQEVEROjJJ59UUFCQ3n77bb311lt64oknVLp0abbt30hNTdUHH3ygrFmzer0/M2bMqHr16mn27NlKTU1V06ZNVa5cOQ0bNkyxsf+vvbsPq/F+/AD+PqfSKaEtKUSYvhghLSIu8w1tZDJdmMlKS+VXHsaUp4yKZNWUNmm1JEbI81Ni8hSmxQh5mGHI8pAilTqf3x+u7nVkG/ua0+m8X9fVdek+9333OV353J/z/jwVon79+jh27Bg6duyoxtJrt7y8PMyePRsKhQIuLi7SCIIRI0Zg4MCBSE9Ph6WlJYKDg2FmZqbu4v6rdHR04O3tja5duyI8PBzHjh2DsbExunTpgiNHjqhM76K/9vjxY3Tv3h3e3t6oV68eBg8ejNGjRwMA4uLi4ObmhuTkZBgYGAAAvvvuO8hkMmnaRlV7jVRVPceKi4tx584dmJub44MPPoBSqcTkyZPx4Ycf4qOPPoKPjw/mzp2LoqIiFBYWoqSkBEqlEs2bN0dWVladGfGjcdSdThCRak9hcHCw6N27t7C0tBSjR48WK1eulM6bM2eOsLCwEKGhoc9dEZ7+Xc/rJSgqKhLffvut0NXVFUFBQX953fHjx4WpqanUo64NysrKxOzZs0WzZs242vAL+rudH4T4YwcCIYSIj48XrVu3FlOmTOFCj3/jxo0bYtKkSaJHjx4iNDRUCCFEQUGBMDIyEmFhYc+9hosPvl5/NvLF399fKBQKqZdXiD8WKezatavKudrSo1tRUSG9V44Y+mcuX74svLy8hLGxsTQi4NkRBEIIERYWJho2bFhjJBepqvo7PHfunBg0aJDo1auXmDBhgsoWhS1atBAeHh7i999/F0+ePBH5+fnihx9+ULmPtvwfro0YDhCpWfU94q2srMRHH30kxo8fL0JCQkTr1q1Fs2bNxPTp06Xzg4KChIWFhQgLC2NA8BpVb3gVFhaKwsJC6fuSkhKxdOlSIZfLxYIFC6Tjzz7cYmJihKmpqdasurty5UoxceJEYWZmxqGuL+ivdn64fv26yvZ51VfTT0pK4orZL+jWrVvCz89P9OrVS3z++efCwsJC+Pv7S68rlUqV/7tspKrHtWvXagSpPj4+NQKCH374Qbi4uGjlh2P+nb64Z/8+qu9ecenSJeHl5SUaNWpUIyDo1auXMDMzE/r6+uLEiROvtcyapnp7tnHjxiIwMFBkZ2erhNlCCLFp0yZhYWEhPD09VXbV4t9w7cBwgEiNqu+ta2RkJKZPny7u378vvZ6Xlyfc3NyEmZmZCAkJkY4HBwcLQ0NDERERwV6t16B6o2LRokXCwcFBdOvWTQwbNkyak1hWViZiYmKEjo7Oc3sgy8rKRFBQkNb0Opw/f168++67YtiwYeLs2bPqLo7GePLkiejTp4+IiYmRju3atUtMnjxZNGzYULRu3Vo4OjpKjai6sD2bOty8eVP4+fmJpk2binfeeUc6zt+nekRHR6vML54+fbpo3769UCgU4r333hPh4eHSa76+vsLQ0FBs3Lixxn34PKS/cu3aNZVtIKv/vVQFBGZmZiIjI0MI8TSAjY2NFX379tWaZ/f/6tatW8La2rrGdprPhq6bN28WFhYWwsfHh7/bWobhAJGaVS2QNXv2bCHEHw+rqkbqpUuXxHvvvSesra3FmTNnpOvCw8M5TPs1mzlzpmjatKmIiYkRO3fuFKampmLAgAHi0qVLQoinvbuxsbFCJpOJ5OTkGtdrWyp++/ZtlREW9PcePHgg2rdvL7y8vMT58+fFggULRLt27cTw4cPFkiVLREJCgmjbtq347LPP1F1UjZefny/8/f1Fjx49VAI9beyBVqdz584JmUwmPvnkE3H79m2RmJgomjdvLlJTU8XWrVuFh4eHsLW1FVOmTJGumThxopDJZGL//v1qLDlpkidPnoiPPvpI2NjYqCxuWT0gOHv2rBg5cqTo16+ftLhzWVkZn2MvYceOHcLa2lqcO3fuuW2e6r/vjRs3CkNDQzFp0qQaowtIfRgOEKlRZWWlmDFjhjA1NRVLliyRjldVnlUV64EDB4RcLn9uTwm9Hrt37xbW1tbiwIEDQgghdu7cKRo0aCBMTU1F586dxeXLl4UQTxsS69evZw8k/WMvsvPDJ598ot5C1hFVUwwcHBz+dM0Q+vdUPeMOHTokFAqF8PX1FV988YWIjY2Vzrl7964ICwsTNjY2IjU1VToeFRXFepZeysWLF8XQoUNFv379xKpVq6Tj1T+wrlu3TpiZmUmhP72cOXPmiJYtW0rfP2/qy8OHD0VJSYkQQojt27ezo6uW4ZLGRGokl8vh5+eH0aNHY/Xq1QgLCwPwdDXi6vtp29rawsTEBDdv3gTwx/689Pro6OjAw8MDffr0we7duzFmzBgsXrwYx44dw40bN+Dj44O8vDzUq1cPw4cPh66uLioqKtRdbNJAVTs/bNiwAb/88gu8vb3Rtm1bAH/s/NCiRQuIpwG/mkur2czNzTFr1ixYWVnhyJEjuHv3rrqLpFVkMhmUSiUcHByQnp6OhIQEzJs3T3rWAcCbb76J//u//4O+vj72798vHZ88eTLrWXopbdu2RVRUFAwNDfHtt9/i+++/B/C0Xn3y5AkA4D//+Q+aNGnCuvUFVG+nVrGwsEBRURHOnTsHQHVHh6p/z5o1C1OmTIEQAoMGDYKVldXrKTC9EIYDRGrWrFkzBAYGws7ODps2bcKiRYsAPA0OqirenJwcNGvWDPb29gC4fc6/7XkPPEdHR7i6uqK0tBRhYWGYMGECvL29YWxsjFatWiEjIwMhISEq1+jqcrdY+mdatGgBW1tblS33ysvLMXfuXBw+fBhjx46FTCZjXfAKmJubIywsDCkpKTAxMVF3cbSOXC5HZWUl+vTpg8OHD8PAwAA//PADLly4IJ1jZGSEnj174sqVKygvL1e5nvUsvYzWrVsjJiYGhoaGiI+Px4oVKwAAenp6AIBVq1bB0NBQpe6l55PL5bh27Rqio6OlY82aNUNRURE2bdqEhw8f1rimvLwcT548QZcuXfj8qqUYDhDVAlW9V3Z2dti4caMUEFTt8bphwwaYmZmhVatWaiyldqjanxcATp8+jatXr6KgoADA0w9sBQUF+O2339CzZ08ATxsUnTp1wtmzZ5GUlKSuYlMdl5KSgs8//xzx8fHYtm0be1peMTMzM5iZmam7GFrj2QC26ln3zjvvYM+ePThx4gTmzp2Ln3/+GQBQXFyMQ4cOoXnz5qhXr95rLy/VLVUBgbGxMb7++mtMmjQJa9euhZ+fH5KSkrB8+XIYGxuru5i1XmVlJb7++mvExsYiPDwcAODs7IxPP/0UwcHBWLlyJe7cuaNyfnBwMPbu3QsnJyd1FZv+hkxw3AxRrZGfn4/Q0FD8+OOPGDZsGAICAhASEoLIyEgcOHAAnTp1UncRtUZgYCBSU1NRVFSEgQMHwsPDAwMGDIBSqUT79u3RsmVLeHp6Ij4+HiUlJThy5IjUA1bV0CV6FfLy8uDj44M33ngDoaGh6NChg7qLRPSPVQ9gU1JScP36dRQWFmLChAkwMzODQqHAwYMHMWDAAJiamsLGxgY6Ojq4fv06srKyoKenByEEex3pf/bbb78hISEBaWlp0NHRQYsWLbBgwQJ07NhR3UXTGDdu3MDixYtx9OhRfPDBB5g5cyYePXoET09PpKam4sMPP4SzszPu3r2L06dPY8uWLdi3bx+6du2q7qLTn2A4QFTLVAUEp06dQllZGX7++WccPnwY3bp1U3fR6rTqjc09e/bAy8sLCQkJuHDhAvbs2YNbt24hICAALi4uyMnJwccffwx9fX00btwYO3bsgJ6enkqjl+hV+v3336Gvr49GjRqpuyhEr0RgYCC+++479OnTB+fOnYOenh5mzJiBwYMHw8jICEePHoWTkxMMDAywYsUK9O/fHzo6OqioqOBUAnqllEolHj9+DB0dHSgUCnUXR+NUtVuPHz+O4cOHY/r06QCAkJAQrF27Fr/88gtatWoFW1tbzJgxgwF3LcdwgKgWys/Px8yZM3Hw4EGsW7eOCetrtHnzZuzZswetW7fG1KlTAQBZWVmIjo7GL7/8gqCgIAwePBgVFRW4ffs2mjVrBplMxgYrEdEL+vrrrxEWFoYtW7aga9euyMjIwMCBA9GpUycphK1fvz7279+PuXPnYv/+/ZDJZByZRa8cR6G8GtUDgmHDhiEwMBAAcP/+fZSXl8PExARKpZLTgjQAwwGiWqqgoABKpZLzYF+jCxcuYNy4ccjNzYW/vz/mz58vvZaVlYWYmBhcuXIFkyZNwqhRo6TXOGKAiOjPVf9QX1paisWLF8PU1BQ+Pj7YsGEDPv30UyxcuBAbN27EuXPnsHDhQjg7O6uMlGE9S1S7VZ8aWzXFAPjj/z+DGM3AcICItFbVg6r6A2vr1q348ssvcfv2bSQkJMDBwUE6/+jRo/jiiy/QokULxMfHq6vYREQaKS4uDkOHDsXNmzdhYWGB+/fvw8XFBd7e3pg8eTJ++ukn9OrVC02bNsWyZcvg5OTEDxREGqQqIMjJyYGjoyPmzZun7iLRS2IES0RaSalUSg3O8vJylJWVAQCGDBmCwMBAtGzZEqGhocjKypKusbe3R0REBOLi4tRSZiIiTVJ9V4KlS5fC19cX9+7dg42NDZo0aYLc3FwYGhrCxcUFAHDnzh2MHTsWI0aMQP/+/QFw614iTVK1+5aVlRWOHDmCu3fvqrtI9JI4QZaItE714akRERHYs2cPysvL0aZNG0REROD999+HEAJLlixBcHAwgoKCYG9vDwDSKsYc4kpE9Neq6sjMzEzI5XKkpaXh7bffRtWg1Tt37uDu3bu4evUq9PT0sHTpUnTs2BELFy4EAK4xQKSBzM3NERYWBgAwMTFRc2noZXFaARFprVmzZmH58uXw8/NDWVkZ1qxZA4VCgTVr1qBz587YvHkzli9fjoKCAiQmJnIrSSKil3T8+HH07NkTenp6WLNmDVxcXKQP/WVlZejVqxdu3LgBPT09NG7cGMePH4eenp66i01EpJUYDhCRVigrK4O+vr70/aVLl/D+++8jKioKzs7OAICSkhL069cPpaWlOHXqFAAgNTUVR48exZdffsmRAkRELyk/Px+rV69GSEgI3NzcsGTJEgB/1Mnl5eXYvn07ZDIZhgwZwu0KiYjUiC1dIqrz+vbti507d6ocKykpQWFhIVq3bg3g6boDhoaG2Lp1K27fvo2YmBgAwIgRIxAZGQm5XK4yf5aIiFQ9W0cqlUqYm5vD29sbgYGBWLZsmbRAmb6+PsrKylCvXj0MGzYMLi4u0NHRQWVlJYMBIiI1Ye1LRHXeBx98gPfffx8ApB4pKysr6OrqYt26dejYsSPq1auHyspKGBoawsLCAqWlpTXuw5EDRETPV30dliVLliA3NxenT5+Gt7c3+vbti2nTpkEulyM0NBQymQxBQUHQ19evsX4L1xggIlIfhgNEVGdVbYE1depUAMCCBQvQqFEjjB07Fg0aNICvry82b94MMzMz+Pr6QkdHBwqFAgBUpiAQEdFfq/qAHxgYiMTERAQEBMDY2BjBwcHYuXMnkpOT4e7uLgUExcXFWLx4MUNXIqJahOEAEdVZz26BlZ+fj9mzZ8PQ0BAeHh5wd3fH7du3ERERgYMHD6JTp07Ys2cPSktLMWHCBDWVmohIMx06dAhpaWnYvn077OzscODAAURFRWHevHnQ19eHvr4+xo8fj6KiImRlZUkBLhER1Q4MB4ioTsrKyoK9vT1kMhkWLVqELl26IDo6GgqFAt7e3lAqlfD09MTs2bNhb2+PpUuXorCwEJaWlkhPT4euri630SIiegllZWVo2LAh7OzssHbtWnh5eSE6OhpjxozBw4cPcfToUfTr1w9Tp06FkZERZDIZAwIiolqE4QAR1TmXLl3C+PHj0blzZzRu3BixsbHIyckBAISHh0OpVMLHxwcA4O7uDjc3N7i5uak0UrlaNhHRn6teX1b9+9GjR1Aqldi6dSu8vb2xcOFC+Pr6AgAyMzOxYcMGWFlZwdLSssY9iIhI/biVIRHVOWVlZVi3bh0mT56M0tJSZGZmwtbWFo8fP4aBgQEAYNq0aYiJicGyZcswfPhwNGzYULqeDVYioj9XfRHBZ+tLW1tb5OTkID4+Hp6engCA0tJSuLq6wsjICN9//z3rVyKiWordYkRUZ1Q1WPX19WFmZgaFQgETExNER0dj+fLlMDAwkPbW/vLLLyGTyeDp6QlTU1M4OztL92HDlYjo+YQQUjAQGxuLw4cPo23btujbty8cHR2xdOlSeHh4YPny5TA1NcXdu3exZs0a3Lx5Ezk5OZDJZDV2KCAiotqBIweIqE6o3tg8e/YslEolTExMkJGRga+++grt2rVDUlIS6tWrp3JuXFwcPD09OYWAiOhvVB8lEBwcjKioKAwaNAgnT56EsbExfHx8MGbMGOTk5GDq1Km4evUqzMzM8NZbbyExMRF6enpcy4WIqBZja5iINF71nqxZs2YhPT0ds2bNQqdOneDq6orS0lLExcVh3LhxSEpKgq6uLiZMmIDhw4fD29sbANcYICL6K9XryOzsbBQUFGDz5s3o06cPzpw5g6+++goRERFQKpUYO3Ys9u3bh+vXr8PExAQGBgaQyWSsZ4mIajmOHCCiOiM4OBhLly5FcnIy7Ozs8OabbwJ4Ot81JSUF33zzDSorK9GkSRPk5ubi6tWrbKgSEf2Fb775RlpUEADS0tIwf/58AMD27dvRvHlzAEBubi6++uor/PTTT5gwYYK03kAVruVCRFT7ccIXEWmk8vJyle9v3bqFjRs3IjIyEk5OTlIwUFlZCYVCgbFjxyIsLAwODg5o27atFAxUVlaqo/hERLXejh07MH/+fIwfP146Vr9+fTRr1gyXL19GVlaWdLxjx46YMmUK7Ozs8MUXX2DHjh0q92IwQERU+3HkABFpnH79+mHatGkYPHiwdOzy5cuwt7fH1q1bYW9vr7KuQGlpKR49egQTExOV+3CIKxHRnysqKkJycjISExNhY2ODhIQEAEBWVhYWLFiAwsJCBAQEqCzoeurUKezatQvTpk3j2gJERBqGIweISOMMGDAA/fv3BwCp59/U1BRyuRwZGRkAALlcLr124sQJpKWl4eHDhyr3YTBARPR8SqUSDRs2hLu7Ozw8PJCdnY1x48YBAHr27Ilp06ahcePGiIiIwLZt26TrunTpgoCAAOjo6HBkFhGRhuHIASLSGM/OWQ0LC0Pjxo0xatQoGBkZYebMmdixYwf8/f2l+a6VlZUYNGgQTE1NsXLlSg5tJSL6G8/Wtffv38fKlSuRmJiIbt26ITExEQCwf/9+REdHo6ioCD4+PnB1dVVXkYmI6BVgtxkRaYTq0wSqGq5nzpzB2rVrYWBggI8//hgeHh4oKChAaGgo9u7diyZNmiA7OxuFhYXYtm0bZDIZF8UiIvobVXXkokWL0KNHD7z77rtwc3MDACQmJmLcuHFITEzEu+++C5lMhqCgIGRmZjIcICLScBw5QEQa4cmTJ6ioqMC9e/fQpEkT6OnpAQB8fX3x3XffIT4+Hm5ubrh58yb27t2L+Ph4mJqaonnz5oiMjISuri7XGCAiekHFxcUYM2YMtm3bhgMHDsDBwUFlBIGtra20BkFOTg66dOkiBbhERKSZGA4QUa2Xnp6OTZs2Ydu2bSguLoaDgwOGDBkCb29vAIC3tzdWrFiB+Ph4jB49+rmLYDEYICL6c1Wjs6qPrrp+/Tpmz56NNWvWYO/evejduzfu37+PlJQUJCUlwdLSEmlpaTXuQUREmoktZSKq1RITExEUFISRI0fCz88PxsbGiImJwbx583D58mWEh4cjLi4OMpkM3t7ekMvlGDp0KIyMjFTuw2CAiOj5zpw5g06dOgEA7t27BxMTEwgh0KJFC4SGhkKpVMLR0RH79u2Dg4MD3Nzc8PDhQ+Tl5akEAgwGiIg0G0cOEFGtFRcXh4kTJ2LFihUYPny4NJXg4sWLCA0Nxa5du/DZZ59h+vTpAAB/f3/ExsZi586dcHJyUmfRiYg0wsWLF9GuXTvs3LkTurq6GDJkCH766Se0b99eGkVw7do1TJw4ERkZGcjMzIStrS2Ki4thZGQEmUzGEQNERHUEa3IiqpU2bdoEX19frF+/HqNGjZKGuVZWVsLKygpz5sxBhw4dsH79ely9ehUAEBMTg8WLF8PR0VGdRSci0hjm5uYYMGAA0tLSoKenBwcHBwwaNAh5eXnSB/+WLVvi448/RklJCezs7HDq1Ck0aNBAWuSVwQARUd3A2pyIap2ysjLs3r0bbdq0kT746+rqorKyEjo6OhBC4K233sKMGTOQnZ2N69evS9dOnTpVWnyQiIj+WoMGDdC3b19s2bIFHTp0QFxcHNq1a4cBAwbg/Pnz0gf/pk2bwsvLCxEREejYsaN0PXd/ISKqOxgOEFGto6+vj6CgIDg7OyMlJQWLFi0CAOjo6ECpVErntWrVCvXq1cOjR49q3INrDBAR1VQ1m1QIIf07MDAQb7zxBubNm4c2bdogLCwMnTt3xn//+1/s27cPZ8+eRWRkJHR0dDBlyhQGsEREdRTDASKqlZo2bYrAwEDY2dlh48aNUkAgl8tRWVkJADh9+jRsbW3x9ttvq7OoREQa48GDBwCe9vjLZDJUVFRACAEXFxf8+OOPuHfvHrp06YKFCxeiX79+6N+/P4YOHYorV65gyZIlAJ4GCwxgiYjqHoYDRFRrmZubY9asWTUCAl1dXRQXFyMxMRHt27eHhYWFmktKRFT77dq1C/3790dsbCx+//13AE/rUx0dHXh6euLMmTNISEgAAFhbW2PVqlU4cuQIkpOTceLECejp6aGiooJTCYiI6ijuVkBEtV5+fj5CQ0Px448/wtXVFdOmTYOLiwt+/fVXnDhxArq6uip7cxMRUU25ubmIiorCqlWrYG1tDTs7O8yZMwdGRkYwMjJCQEAADh06hNWrV6Nly5Y16tSqdV+IiKhuYjhARBohPz8fCxYsQHZ2Ni5dugRjY2OcOXMGenp6bLASEb2ECxcuICkpCWlpaXj06BEGDhwIPz8/FBQU4JNPPsG6devQu3dvblFIRKRlGA4QkcbIz89HQEAACgoKsHnzZmmIK+e+EhG9nMrKSlRUVGDx4sXIzMzEvn374O/vj+joaPTu3Ru7d++GgYGBuotJRESvEcMBItIo9+/fR6NGjSCXyxkMEBH9Q9WnYpWVlWHLli1YvXo1du7cie7duyMzM5NTtYiItAzDASLSSBzuSkT0v3l2rZYHDx7g1q1bsLKykraOZT1LRKQ9GA4QERERkQqu5UJEpH0YDhARERERERFpOY4VIyIiIiIiItJyDAeIiIiIiIiItBzDASIiIiIiIiItx3CAiIiIiIiISMsxHCAiIiIiIiLScgwHiIiIiIiIiLQcwwEiIiIiIiIiLcdwgIiIiIiIiEjLMRwgIiKiWiUpKQnGxsb/831kMhk2bdr0P9+HiIhIGzAcICIiolfO3d0dLi4u6i4GERERvSCGA0RERERERERajuEAERERvVaRkZGwtrZG/fr10aJFC0yYMAEPHz6scd6mTZtgZWUFhUIBJycnXL9+XeX1zZs3o1u3blAoFGjTpg3mzZuHioqK5/7M8vJy+Pn5oWnTplAoFLC0tMTChQv/lfdHRESkiRgOEBER0Wsll8sRHR2N3NxcrFixAvv27cP06dNVzikpKUFoaCiSk5Nx+PBhFBYWYtSoUdLrBw8exNixYzFp0iScPXsWcXFxSEpKQmho6HN/ZnR0NLZs2YLU1FTk5eVh1apVaNWq1b/5NomIiDSKTAgh1F0IIiIiqlvc3d1RWFj4QgsCrl+/Hj4+Prhz5w6ApwsSenh44OjRo+jRowcA4Pz58+jQoQOOHTuG7t27o3///nB0dMSMGTOk+6SkpGD69Om4efMmgKcLEm7cuBEuLi6YOHEicnNzkZGRAZlM9urfMBERkYbjyAEiIiJ6rTIyMuDo6IjmzZujQYMGcHNzw927d1FSUiKdo6urCzs7O+n79u3bw9jYGOfOnQMAnDp1CvPnz4eRkZH05eXlhVu3bqncp4q7uztOnjyJdu3aYeLEiUhPT//33ygREZEGYThAREREr82vv/4KZ2dndO7cGRs2bEB2djZiY2MBPF0X4EU9fPgQ8+bNw8mTJ6Wv06dP4+LFi1AoFDXO79atG65cuYLg4GA8fvwYI0aMgKur6yt7X0RERJpOV90FICIiIu2RnZ0NpVKJiIgIyOVP+yhSU1NrnFdRUYETJ06ge/fuAIC8vDwUFhaiQ4cOAJ5+2M/Ly0Pbtm1f+Gc3bNgQI0eOxMiRI+Hq6or33nsP9+7dw5tvvvkK3hkREZFmYzhARERE/4oHDx7g5MmTKscaN26MJ0+eICYmBkOGDMHhw4exbNmyGtfq6enB398f0dHR0NXVhZ+fH+zt7aWwICgoCM7OzmjZsiVcXV0hl8tx6tQpnDlzBiEhITXuFxkZiaZNm8LGxgZyuRzr1q2Dubk5jI2N/423TkREpHE4rYCIiIj+Ffv374eNjY3K18qVKxEZGYlFixahU6dOWLVq1XO3FDQ0NERAQABGjx4NBwcHGBkZYe3atdLrTk5O2LZtG9LT02FnZwd7e3tERUXB0tLyuWVp0KABwsPD8c4778DOzg6//vorduzYIY1eICIi0nbcrYCIiIiIiIhIyzEuJyIiIiIiItJyDAeIiIiIiIiItBzDASIiIiIiIiItx3CAiIiIiIiISMsxHCAiIiIiIiLScgwHiIiIiIiIiLQcwwEiIiIiIiIiLcdwgIiIiIiIiEjLMRwgIiIiIiIi0nIMB4iIiIiIiIi0HMMBIiIiIiIiIi33/zcnunQplIbhAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(12, 6))\n", + "plt.bar(labels, sizes)\n", + "plt.title('Bar Graph')\n", + "plt.xlabel('Labels')\n", + "plt.ylabel('Count')\n", + "plt.xticks(rotation=45)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "YtSxaBSZ5C_h" + }, + "outputs": [ + { + "data": { + "image/png": "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+uijWLt2Le677z5ERUVBFEWcO3cOvXv3rrHPhv4ZuPvuu/HNN9+grKwMq1atQmRkJAYOHFhrm4aMERUVhR07dmDIkCH1Ks4PHDgQAwcOxIcffohff/0V9957L3777TfMnDmz3mMSERERUc24rJiIiFqdXbt24f3330e7du1w77331nhdUVHRNY9dLZJcXXro5uYGANUW6xrjl19+qbIP4u+//47s7GyMGzeu8rGoqCgcOXIEBoOh8rENGzYgPT29Sl8NyTZ+/HiYzWZ8//33VR7/+uuvIQhClfGbYvz48cjJycGqVasqHzOZTPjuu+/g7u6O4cOHW2Qc4Mreg0ajEZ999lmVx5VKJSZNmoQ//vgDZ86cuaZdfn5+5f/Xdg+dnZ3Rv39/rFy5EmlpaVVmDmq1Wnz77beIiopCSEhIZRtL3+fRo0fjt99+w5YtW3D//ffXueT96pLiV155BXfddVeVX4888giio6MrZ9zdfvvtUCgUmD179jX9/nuGqJubW4Pe/1OmTIFer8fSpUuxZcsW3H333XW2ach7+e6774bZbMb7779/zXMmk6myj+Li4mtmuv73zzcRERERNR1nDhIRkaw2b96MhIQEmEwm5ObmYteuXdi+fTsiIiKwbt26Wpdizp49G/v27cOECRMQERGBvLw8/PjjjwgLC6s8PCEqKgre3t746aef4OHhATc3N1x//fW17hVXG19fXwwdOhQzZsxAbm4u5syZgw4dOuCRRx6pvGbmzJn4/fffMXbsWNx99924dOkSli9fXuWAkIZmu+WWWzBy5EjMmjULKSkp6NWrF7Zt24a///4bzz///DV9N9ajjz6Kn3/+GdOnT8fx48cRGRmJ33//HQcPHsScOXNq3QOyoa7OHly6dOk1z33yySfYvXs3rr/+ejzyyCPo2rUrioqKcOLECezYsaOyMFzXPbzhhhvwySefwMvLCz169AAABAYGolOnTrhw4QKmT59eZdzmuM+33347Fi9ejAceeACenp74+eefq71Or9fjjz/+wE033VTj+/7WW2/FN998g7y8PHTo0AGzZs3C+++/jxtuuAF33nknnJycEBsbi9DQUHz88ccAgH79+mHu3Ln44IMP0KFDBwQGBmLUqFE15u3bt29l33q9vl5LihvyXh4+fDgee+wxfPzxx4iLi8OYMWPg4OCAxMRErFmzBt988w3uuusuLF26FD/++CPuuOMOREVFoby8HPPnz4enpyfGjx9fZyYiIiIiqie5jkkmIiL7tnjxYglA5S9HR0cpODhYuummm6RvvvlGKisru6bNO++8I/37W9fOnTul2267TQoNDZUcHR2l0NBQadq0adLFixertPv777+lrl27SiqVSgIgLV68WJIkSRo+fLjUrVu3avMNHz5cGj58eOXXu3fvlgBIK1eulN544w0pMDBQcnFxkSZMmCClpqZe0/7LL7+U2rRpIzk5OUlDhgyRjh07dk2ftWV78MEHpYiIiCrXlpeXSy+88IIUGhoqOTg4SNHR0dLnn38uiaJY5ToA0lNPPXVNpoiICOnBBx+s9vX+W25urjRjxgzJ399fcnR0lHr06FGZ67/9TZgwoc7+ars2MTFRUiqVEgBpzZo11+R46qmnpPDwcMnBwUEKDg6WbrzxRmnevHlVrqvpHkqSJG3cuFECII0bN65Km5kzZ0oApIULF16Tqan3OTk5WQIgff7551Ue//HHHyUA0ssvv1ztPfrjjz9qzHTVnj17JADSN998U/nYokWLpD59+khOTk6Sj4+PNHz4cGn79u2Vz+fk5EgTJkyQPDw8JACV78Gr7+ndu3dfM86sWbMkAFKHDh2qzdHU97IkSdK8efOkfv36SS4uLpKHh4fUo0cP6dVXX5WysrIkSZKkEydOSNOmTZPatm0rOTk5SYGBgdLEiROlY8eO1Xh/iIiIiKjhBElqJTuTExERERERERERUYvinoNERERERERERER2isVBIiIiIiIiIiIiO8XiIBERERERERERkZ1icZCIiIiIiIiIiMhOsThIRERERERERERkp1gcJCIiIiIiIiIislMsDhIREREREREREdkpFgeJiIiIiIiIiIjsFIuDREREREREREREdorFQSIiIiIiIiIiIjvF4iAREREREREREZGdYnGQiIiIiIiIiIjITrE4SEREREREREREZKdYHCQiIiIiIiIiIrJTLA4SERERERERERHZKRYHiYiIiIiIiIiI7BSLg0RERERERERERHaKxUEiIiIiIiIiIiI7xeIgERERERERERGRnWJxkIiIiIiIiIiIyE6xOEhERERERERERGSnWBwkIiIiIiIiIiKyUywOEhERERERERER2SkWB4mIiIiIiIiIiOwUi4NERERERERERER2isVB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WgsXLlRKSkqpsXfeead+//13fffddxecb8GCBXr88cfVp08fhYeHq02bNho7dqxuv/32i+YwmUwKDg4u9eXq6nresVarVU8//bQaNGggZ2dntWzZUosWLSo1ZsOGDUpKSpKrq6v8/f115513Kicnp+T94uJiPfTQQ/Lx8ZG/v78eeeQRntZ+CZSDwGXg7CuACzmdJ437s1BrG/ipsb+HgsK2S5I2H/HXnlteks3818oeljWb9c/v6iuo2KPU9rvPHNCoiFiddPOtlDymojzNcJ8ps4mnFwOAPduUWb5bEwHULUlJSWrRooW+/PLLUq9HRETo7rvv1mOPPSar9fzHi8HBwfruu+90+vTpKsv32muv6aWXXtKLL76o9evXq2fPnrruuuu0fftfx9JnzpxRz5495evrq1WrVmnu3LlavHixxowZUzLHSy+9pJSUFH344Yf69ddfdfz4cX311VdVlrkuoBwELgO3FAO4GJtNem51ob7ydFV0cCOFNNwgk8mmnQddtH3wa7K6e0mSHDZs0xtf+ym02KvU9ttz9uquxs2V4+J1vunLzfPIn3ojanWlzAUAqJ3SM6vuH/UAaoe4uDjt3r37nNeffPJJZWRk6JNPPjnvdu+++65WrFghf39/tW3bVg8++KBSU1Mvub+TJ0/Kw8Oj5Cs4OPiCY1988UVNmDBBN998s2JjYzV9+nS1bNlSr776qiTp008/VV5enj766CM1bdpUSUlJmjFjhmbPnq3Dhw9Lkl599VU99thjuuGGGxQfH6933nlH3t7VuD5kLUQ5CFwGykEAZfHRxkK9UWRTWIN4hTVYL0fnYu0/KG3q+7yK/UMkSaatu/TKvzwUWVT6SsFNpzI0Oi5RZ53cKiVL78PvKtGbfxgCgL3izhcANptNJpPpnNcDAwM1fvx4TZo0SQUFBee837lzZ+3atUtLlizRjTfeqE2bNqlTp06aOnXqRffn6emptLS0kq8VK86/FvapU6d08OBBdezYsdTrHTt2VHp6uiQpPT1dLVq0kLu7e6n3rVartm7dqpMnTyozM1Pt27cved9isSgxMfGiGe0d5SBwGTjzCqCsfsqw6okjRfKMbKrw4G1y88zX0cPFSuvylIoaxv01aNdeTf/MUQmFpdcaXHNyh+5rcqUKzM6XncNUeEbv+X502fMAAGonnlgMID09XREREed976GH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nj27ZOzMmTN10003ycPD47xzTZ48WT4+PgoPD1dsbKySk5P1xRdfyGq1lox55plnNG7cON1///2KiYlR27Zt9cADD5S8/8ADD6hbt24KDw9XUlKSnnnmGX3xxRel9lNYWKh33nlHiYmJat26tcaMGVPys79clINAOXDlIAAAAOoSrhwE6qa4uDhdeeWV+vDDDyVJO3bs0C+//KI77rjjsuZt0qSJzGZzyfchISE6cuSIJGnDhg0qLi5WTEyMPDw8Sr6WL1+unTt3lmzj5OR0zpqHhw8f1qhRo9S4cWN5e3vLy8tLOTk52rt3b6lxHTp0OOf7ilw5eDEjR44sKTMPHz6shQsX6vbbb7/g+JCQEP3222/asGGD7r//fhUVFWnEiBHq1auXrFarjhw5ooMHD+rqq6++4ByLFy/W1VdfrdDQUHl6emrYsGHKyspSbm5uyRg3NzdFRUWV2u9/fvaXiweSAOXg7myRl4tFp/KKjI4CAAAAXBZvV0d5OPNPQqCuuuOOOzR27Fi9+eabmjlzpqKiotSlSxdJf93G+t+3HEsqtXbghTg6Opb63mQylVwhl5OTI7PZrNWrV5cqECWVuurO1dX1nLUNR4wYoaysLL322mtq1KiRnJ2d1aFDBxUUFJT9A1eS4cOH69FHH9Vvv/2mFStWKCIiQp06Xfpp0U2bNlXTpk1177336u6771anTp20fPlyJSYmXnS73bt3q2/fvrrnnnv07LPPys/PT7/++qvuuOMOFRQUyM3NTdL5f/b/+/9hRXHlIFBOEQHuRkcAAAAALls4x7VAnTZo0CA5ODjo008/1UcffaTbb7+9pJQLDAzU6dOndebMmZLxF3qQR1m1atVKxcXFOnLkiKKjo0t9XewpwpKUmpqq++67T3369Cl5aMexY8fOGff777+f8318fHyF8jo5Oam4uPic1/39/TVgwADNnDlTKSkpuu2228o9d0JCgiTpzJkz8vT0VHh4+AVvAV69erWsVqteeuklXXHFFYqJidHBgwfLvc/LwWkioJzCA9y1bv9Jo2MAAAAAlyXC383oCACqkIeHhwYPHqzHHntMp06dUnJycsl77du3l5ubmx5//HHdd999+uOPP855unF5xcTEaOjQoRo+fLheeukltWrVSkePHtWSJUvUvHlzXXvttRfctnHjxpo9e7YSExN16tQpPfzww3J1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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(14, 10))\n", + "wedges, texts, autotexts = ax.pie(sizes, autopct='%1.1f%%', startangle=140)\n", + "\n", + "ax.axis('equal')\n", + "plt.legend(wedges, labels, title=\"Activities\", loc=\"center left\", bbox_to_anchor=(1, 0, 0.5, 1))\n", + "\n", + "plt.title('Distribution of Network Activities')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KObpx4wfj3aQ" + }, + "source": [ + "## Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "LuWeKTG2j0hF" + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.preprocessing import StandardScaler" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "x0UovuBRjmE0" + }, + "outputs": [], + "source": [ + "X = df.drop('label', axis=1)\n", + "y = df['label']" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy import sparse\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "encoder = OneHotEncoder(sparse_output=True, dtype=np.float32)\n", + "\n", + "X_sparse = encoder.fit_transform(X)\n", + "\n", + "y_encoded = encoder.fit_transform(np.array(y).reshape(-1, 1))\n", + "y_train_dense = y_encoded.toarray()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "id": "pbRTAjhy6Yb3" + }, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X_sparse, y_train_dense, test_size=0.2, random_state=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "FBpz07hL_cxj" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "((505188, 646287), (126298, 646287))" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape, X_test.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((505188, 10), (126298, 10))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_train.shape, y_test.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jNDgEG-88ff9" + }, + "source": [ + "## Model Training" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lxFMcxYX-wMg" + }, + "source": [ + "### Model 1: Random Forest Classifier" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "id": "2IhE9rN0_ZSE" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
RandomForestClassifier(n_estimators=10, random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "RandomForestClassifier(n_estimators=10, random_state=42)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "\n", + "model_1 = RandomForestClassifier(n_estimators=10, random_state=42)\n", + "model_1.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model_1.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "id": "m76sl7hf_mMY" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9977196788547721\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 126154\n", + " 1 1.00 1.00 1.00 126186\n", + "\n", + " micro avg 1.00 1.00 1.00 252340\n", + " macro avg 1.00 1.00 1.00 252340\n", + "weighted avg 1.00 1.00 1.00 252340\n", + " samples avg 1.00 1.00 1.00 252340\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import MultiLabelBinarizer\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report\n", + "\n", + "# Assuming y_test and y_pred are in multi-label format\n", + "mlb = MultiLabelBinarizer()\n", + "y_test_binary = mlb.fit_transform(y_test)\n", + "y_pred_binary = mlb.transform(y_pred)\n", + "\n", + "# Compute and print accuracy\n", + "accuracy = accuracy_score(y_test_binary, y_pred_binary)\n", + "print(f\"Accuracy: {accuracy}\")\n", + "\n", + "# Print classification report\n", + "print(classification_report(y_test_binary, y_pred_binary, zero_division=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FsWqdWgf_PCW" + }, + "source": [ + "### Model 2: XGBClassifier" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "id": "uPcz1c688h5U" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
+       "              colsample_bylevel=None, colsample_bynode=None,\n",
+       "              colsample_bytree=None, device=None, early_stopping_rounds=None,\n",
+       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",
+       "              gamma=None, grow_policy=None, importance_type=None,\n",
+       "              interaction_constraints=None, learning_rate=None, max_bin=None,\n",
+       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",
+       "              max_delta_step=None, max_depth=None, max_leaves=None,\n",
+       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",
+       "              multi_strategy=None, n_estimators=None, n_jobs=None,\n",
+       "              num_parallel_tree=None, random_state=None, ...)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "XGBClassifier(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=None, device=None, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " gamma=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " multi_strategy=None, n_estimators=None, n_jobs=None,\n", + " num_parallel_tree=None, random_state=None, ...)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from xgboost import XGBClassifier\n", + "\n", + "model_2 = XGBClassifier()\n", + "model_2.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model_2.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9979176233986287\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 126154\n", + " 1 1.00 1.00 1.00 126186\n", + "\n", + " micro avg 1.00 1.00 1.00 252340\n", + " macro avg 1.00 1.00 1.00 252340\n", + "weighted avg 1.00 1.00 1.00 252340\n", + " samples avg 1.00 1.00 1.00 252340\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import MultiLabelBinarizer\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report\n", + "\n", + "# Assuming y_test and y_pred are in multi-label format\n", + "mlb = MultiLabelBinarizer()\n", + "y_test_binary = mlb.fit_transform(y_test)\n", + "y_pred_binary = mlb.transform(y_pred)\n", + "\n", + "# Compute and print accuracy\n", + "accuracy = accuracy_score(y_test_binary, y_pred_binary)\n", + "print(f\"Accuracy: {accuracy}\")\n", + "\n", + "# Print classification report\n", + "print(classification_report(y_test_binary, y_pred_binary, zero_division=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model 3: SVM" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
MultiOutputClassifier(estimator=SVC(), n_jobs=-1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "MultiOutputClassifier(estimator=SVC(), n_jobs=-1)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.multioutput import MultiOutputClassifier\n", + "from sklearn.svm import SVC\n", + "\n", + "svm = SVC(kernel='rbf', gamma='scale', C=1.0)\n", + "\n", + "model_3 = MultiOutputClassifier(svm, n_jobs=-1)\n", + "\n", + "model_3.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model_3.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9999287399642116\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 126298\n", + " 1 1.00 1.00 1.00 126298\n", + "\n", + " micro avg 1.00 1.00 1.00 252596\n", + " macro avg 1.00 1.00 1.00 252596\n", + "weighted avg 1.00 1.00 1.00 252596\n", + " samples avg 1.00 1.00 1.00 252596\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import MultiLabelBinarizer\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report\n", + "\n", + "# Assuming y_test and y_pred are in multi-label format\n", + "mlb = MultiLabelBinarizer()\n", + "y_test_binary = mlb.fit_transform(y_test)\n", + "y_pred_binary = mlb.transform(y_pred)\n", + "\n", + "# Compute and print accuracy\n", + "accuracy = accuracy_score(y_test_binary, y_pred_binary)\n", + "print(f\"Accuracy: {accuracy}\")\n", + "\n", + "# Print classification report\n", + "print(classification_report(y_test_binary, y_pred_binary, zero_division=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model 4: KNN" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
KNeighborsClassifier(n_neighbors=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "KNeighborsClassifier(n_neighbors=3)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "\n", + "model_4 = KNeighborsClassifier(n_neighbors=3)\n", + "model_4.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model_4.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9999841644364915\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 126298\n", + " 1 1.00 1.00 1.00 126298\n", + "\n", + " micro avg 1.00 1.00 1.00 252596\n", + " macro avg 1.00 1.00 1.00 252596\n", + "weighted avg 1.00 1.00 1.00 252596\n", + " samples avg 1.00 1.00 1.00 252596\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import MultiLabelBinarizer\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report\n", + "\n", + "# Assuming y_test and y_pred are in multi-label format\n", + "mlb = MultiLabelBinarizer()\n", + "y_test_binary = mlb.fit_transform(y_test)\n", + "y_pred_binary = mlb.transform(y_pred)\n", + "\n", + "# Compute and print accuracy\n", + "accuracy = accuracy_score(y_test_binary, y_pred_binary)\n", + "print(f\"Accuracy: {accuracy}\")\n", + "\n", + "# Print classification report\n", + "print(classification_report(y_test_binary, y_pred_binary, zero_division=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model 5: Decision Tree" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
DecisionTreeClassifier(random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "DecisionTreeClassifier(random_state=42)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "model_5 = DecisionTreeClassifier(random_state=42)\n", + "model_5.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model_5.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 1.0\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 126298\n", + " 1 1.00 1.00 1.00 126298\n", + "\n", + " micro avg 1.00 1.00 1.00 252596\n", + " macro avg 1.00 1.00 1.00 252596\n", + "weighted avg 1.00 1.00 1.00 252596\n", + " samples avg 1.00 1.00 1.00 252596\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import MultiLabelBinarizer\n", + "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report\n", + "\n", + "# Assuming y_test and y_pred are in multi-label format\n", + "mlb = MultiLabelBinarizer()\n", + "y_test_binary = mlb.fit_transform(y_test)\n", + "y_pred_binary = mlb.transform(y_pred)\n", + "\n", + "# Compute and print accuracy\n", + "accuracy = accuracy_score(y_test_binary, y_pred_binary)\n", + "print(f\"Accuracy: {accuracy}\")\n", + "\n", + "# Print classification report\n", + "print(classification_report(y_test_binary, y_pred_binary, zero_division=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model 6: Dense Model" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Model: \"sequential_1\"\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1mModel: \"sequential_1\"\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
+       "┃ Layer (type)                          Output Shape                         Param # ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
+       "│ dense_2 (Dense)                      │ (None, 10)                  │       6,462,880 │\n",
+       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
+       "│ dense_3 (Dense)                      │ (None, 10)                  │             110 │\n",
+       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m6,462,880\u001b[0m │\n", + "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n", + "│ dense_3 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m110\u001b[0m │\n", + "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Total params: 6,462,990 (24.65 MB)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m6,462,990\u001b[0m (24.65 MB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Trainable params: 6,462,990 (24.65 MB)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m6,462,990\u001b[0m (24.65 MB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "input_shape = X_train.shape[1]\n", + "\n", + "model_6 = tf.keras.Sequential([\n", + " tf.keras.layers.Input(shape=(input_shape,)),\n", + " tf.keras.layers.Dense(10, activation='relu'),\n", + " tf.keras.layers.Dense(y_train.shape[1], activation='softmax')\n", + "])\n", + "\n", + "model_6.compile(loss='categorical_crossentropy',\n", + " optimizer=tf.keras.optimizers.SGD(),\n", + " metrics=['accuracy'])\n", + "\n", + "model_6.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m126s\u001b[0m 8ms/step - accuracy: 0.9728 - loss: 0.1719 - val_accuracy: 0.9928 - val_loss: 0.0325\n", + "Epoch 2/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m125s\u001b[0m 8ms/step - accuracy: 0.9947 - loss: 0.0283 - val_accuracy: 0.9971 - val_loss: 0.0202\n", + "Epoch 3/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m133s\u001b[0m 8ms/step - accuracy: 0.9972 - loss: 0.0181 - val_accuracy: 0.9971 - val_loss: 0.0153\n", + "Epoch 4/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m132s\u001b[0m 8ms/step - accuracy: 0.9972 - loss: 0.0144 - val_accuracy: 0.9971 - val_loss: 0.0128\n", + "Epoch 5/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m469s\u001b[0m 30ms/step - accuracy: 0.9972 - loss: 0.0120 - val_accuracy: 0.9971 - val_loss: 0.0113\n", + "Epoch 6/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m138s\u001b[0m 9ms/step - accuracy: 0.9974 - loss: 0.0102 - val_accuracy: 0.9973 - val_loss: 0.0102\n", + "Epoch 7/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m142s\u001b[0m 9ms/step - accuracy: 0.9975 - loss: 0.0092 - val_accuracy: 0.9975 - val_loss: 0.0094\n", + "Epoch 8/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4099s\u001b[0m 256ms/step - accuracy: 0.9976 - loss: 0.0087 - val_accuracy: 0.9977 - val_loss: 0.0088\n", + "Epoch 9/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m144s\u001b[0m 8ms/step - accuracy: 0.9980 - loss: 0.0079 - val_accuracy: 0.9979 - val_loss: 0.0083\n", + "Epoch 10/10\n", + "\u001b[1m15788/15788\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1035s\u001b[0m 65ms/step - accuracy: 0.9980 - loss: 0.0077 - val_accuracy: 0.9980 - val_loss: 0.0078\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_6.fit(X_train, y_train,\n", + " epochs=10,\n", + " validation_data=(X_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_preds(y_true, y_pred, threshold=0.1):\n", + " # Make sure float32 (for metric calculations)\n", + " y_true = tf.cast(y_true, dtype=tf.float32)\n", + " y_pred = tf.cast(y_pred, dtype=tf.float32)\n", + "\n", + " # Calculate various metrics\n", + " mae = tf.reduce_mean(tf.abs(y_true - y_pred))\n", + " mse = tf.reduce_mean(tf.square(y_true - y_pred))\n", + " rmse = tf.sqrt(mse)\n", + " mape = tf.reduce_mean(tf.abs((y_true - y_pred) / tf.clip_by_value(tf.abs(y_true), 1e-7, tf.reduce_max(tf.abs(y_true))))) * 100\n", + "\n", + " # Calculate accuracy\n", + " # Predictions are considered accurate if the absolute error is within the threshold\n", + " accurate_predictions = tf.abs(y_true - y_pred) < (threshold * tf.abs(y_true))\n", + " accuracy = tf.reduce_mean(tf.cast(accurate_predictions, dtype=tf.float32))\n", + "\n", + " return {\n", + " \"mae\": mae.numpy(),\n", + " \"mse\": mse.numpy(),\n", + " \"rmse\": rmse.numpy(),\n", + " \"mape\": mape.numpy(),\n", + " \"accuracy\": accuracy.numpy()\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m3947/3947\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 8ms/step\n" + ] + } + ], + "source": [ + "y_preds = tf.squeeze(model_6.predict(X_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'mae': 0.0007503413,\n", + " 'mse': 0.0003056716,\n", + " 'rmse': 0.017483467,\n", + " 'mape': 375171.03,\n", + " 'accuracy': 0.099478215}" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_preds(y_true=y_test, y_pred=y_preds, threshold=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m3947/3947\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 7ms/step - accuracy: 0.9980 - loss: 0.0079\n", + "Accuracy: 99.80%\n" + ] + } + ], + "source": [ + "loss, accuracy = model_6.evaluate(X_test, y_test)\n", + "print(f'Accuracy: {accuracy * 100:.2f}%')" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ACI IoT Network Traffic Dataset Analysis/Model/README.md b/ACI IoT Network Traffic Dataset Analysis/Model/README.md new file mode 100644 index 000000000..dc909f79f --- /dev/null +++ b/ACI IoT Network Traffic Dataset Analysis/Model/README.md @@ -0,0 +1,55 @@ +## **ACI IoT Network Traffic Dataset Analysis** + +### 🎯 **Goal** + +Analyze the traffic dataset + +### 🧵 **Dataset** + +https://www.kaggle.com/datasets/emilynack/aci-iot-network-traffic-dataset-2023 + +### 🧾 **Description** + +The project aims to analyze the ACI IoT Network Traffic Dataset 2023 to identify patterns and anomalies in network traffic. The goal is to build an accurate predictive model for network anomaly detection. + +### 🧮 **What I had done!** + +Load the data using appropriate tools and conduct an initial inspection to identify missing values and outliers. Perform exploratory data analysis (EDA) to understand feature distributions and relationships. Clean the data by handling missing values and outliers, and engineer new features if necessary. Split the data into training and testing sets, scaling features as needed. Build and evaluate various models. Finalize the best model, evaluate it on the test set, and prepare it for deployment. Document each step and report the findings to ensure clarity and reproducibility. +### 🚀 **Models Implemented** + +1. Random Forest Classifier +2. XGBoost +3. SVM +4. KNN +5. Decision Tree +6. Dense Model + +### 📚 **Libraries Needed** + +1. numpy +2. Pandas +3. Matplotlib +4. sci-kit learn + +### 📊 **Exploratory Data Analysis Results** + + + + +### 📈 **Performance of the Models based on the Accuracy Scores** + +1. Random Forest Classifier: 99.77% +2. XGBoost: 99.79% +3. SVM: 99.99% +4. KNN: 99.99% +5. Decision Tree: 100% +6. Dense Model: 99.80% + + +### 📢 **Conclusion** + +Decision Tree is proven to be the best model with the accuracy score of 100% + +### ✒️ **Your Signature** + +Aditi Kala diff --git a/ACI IoT Network Traffic Dataset Analysis/requirements.txt b/ACI IoT Network Traffic Dataset Analysis/requirements.txt new file mode 100644 index 000000000..8493c72c5 --- /dev/null +++ b/ACI IoT Network Traffic Dataset Analysis/requirements.txt @@ -0,0 +1,4 @@ +sci-kit learn +matplotlib +numpy +pandas \ No newline at end of file