diff --git "a/iris_model.ipynb" "b/iris_model.ipynb"
new file mode 100644--- /dev/null
+++ "b/iris_model.ipynb"
@@ -0,0 +1,2192 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Iris Flower Prediction"
+ ],
+ "metadata": {
+ "id": "CWHdgyG3I_9W"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ],
+ "metadata": {
+ "id": "6c24qWpEIyFg"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Import necessary Libraries"
+ ],
+ "metadata": {
+ "id": "X_CwSLkOITBR"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "dKqA27A3G47D"
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "# import numpy as np\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "# from sklearn.metrics import accuracy_score\n",
+ "# from sklearn.preprocessing import StandardScaler\n",
+ "# import pickle\n",
+ "# import joblib\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Load Dataset"
+ ],
+ "metadata": {
+ "id": "w6iohdU-IXgh"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "iris = pd.read_csv('https://raw.githubusercontent.com/lovnishverma/datasets/refs/heads/main/iriswithheaders.csv')\n",
+ "iris.head()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "3DoQODvdH9eY",
+ "outputId": "7b38de17-3260-4236-dbd1-7908b8fbb1dc"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " sepal_length sepal_width petal_length petal_width species\n",
+ "0 5.1 3.5 1.4 0.2 setosa\n",
+ "1 4.9 3.0 1.4 0.2 setosa\n",
+ "2 4.7 3.2 1.3 0.2 setosa\n",
+ "3 4.6 3.1 1.5 0.2 setosa\n",
+ "4 5.0 3.6 1.4 0.2 setosa"
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " sepal_length \n",
+ " sepal_width \n",
+ " petal_length \n",
+ " petal_width \n",
+ " species \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 5.1 \n",
+ " 3.5 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 4.9 \n",
+ " 3.0 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.7 \n",
+ " 3.2 \n",
+ " 1.3 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4.6 \n",
+ " 3.1 \n",
+ " 1.5 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5.0 \n",
+ " 3.6 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "iris",
+ "summary": "{\n \"name\": \"iris\",\n \"rows\": 150,\n \"fields\": [\n {\n \"column\": \"sepal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8280661279778629,\n \"min\": 4.3,\n \"max\": 7.9,\n \"num_unique_values\": 35,\n \"samples\": [\n 6.2,\n 4.5,\n 5.6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sepal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.4335943113621737,\n \"min\": 2.0,\n \"max\": 4.4,\n \"num_unique_values\": 23,\n \"samples\": [\n 2.3,\n 4.0,\n 3.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.7644204199522617,\n \"min\": 1.0,\n \"max\": 6.9,\n \"num_unique_values\": 43,\n \"samples\": [\n 6.7,\n 3.8,\n 3.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7631607417008414,\n \"min\": 0.1,\n \"max\": 2.5,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.2,\n 1.2,\n 1.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"species\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"setosa\",\n \"versicolor\",\n \"virginica\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {},
+ "execution_count": 16
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "iris.describe()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 300
+ },
+ "id": "x23VpXoKIm6n",
+ "outputId": "2d4c18bb-4254-4c45-b802-2be8bdd33af6"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " sepal_length sepal_width petal_length petal_width\n",
+ "count 150.000000 150.000000 150.000000 150.000000\n",
+ "mean 5.843333 3.054000 3.758667 1.198667\n",
+ "std 0.828066 0.433594 1.764420 0.763161\n",
+ "min 4.300000 2.000000 1.000000 0.100000\n",
+ "25% 5.100000 2.800000 1.600000 0.300000\n",
+ "50% 5.800000 3.000000 4.350000 1.300000\n",
+ "75% 6.400000 3.300000 5.100000 1.800000\n",
+ "max 7.900000 4.400000 6.900000 2.500000"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " sepal_length \n",
+ " sepal_width \n",
+ " petal_length \n",
+ " petal_width \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " count \n",
+ " 150.000000 \n",
+ " 150.000000 \n",
+ " 150.000000 \n",
+ " 150.000000 \n",
+ " \n",
+ " \n",
+ " mean \n",
+ " 5.843333 \n",
+ " 3.054000 \n",
+ " 3.758667 \n",
+ " 1.198667 \n",
+ " \n",
+ " \n",
+ " std \n",
+ " 0.828066 \n",
+ " 0.433594 \n",
+ " 1.764420 \n",
+ " 0.763161 \n",
+ " \n",
+ " \n",
+ " min \n",
+ " 4.300000 \n",
+ " 2.000000 \n",
+ " 1.000000 \n",
+ " 0.100000 \n",
+ " \n",
+ " \n",
+ " 25% \n",
+ " 5.100000 \n",
+ " 2.800000 \n",
+ " 1.600000 \n",
+ " 0.300000 \n",
+ " \n",
+ " \n",
+ " 50% \n",
+ " 5.800000 \n",
+ " 3.000000 \n",
+ " 4.350000 \n",
+ " 1.300000 \n",
+ " \n",
+ " \n",
+ " 75% \n",
+ " 6.400000 \n",
+ " 3.300000 \n",
+ " 5.100000 \n",
+ " 1.800000 \n",
+ " \n",
+ " \n",
+ " max \n",
+ " 7.900000 \n",
+ " 4.400000 \n",
+ " 6.900000 \n",
+ " 2.500000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"iris\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"sepal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 51.24711349471842,\n \"min\": 0.8280661279778629,\n \"max\": 150.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 5.843333333333334,\n 5.8,\n 150.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sepal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 52.08647211421483,\n \"min\": 0.4335943113621737,\n \"max\": 150.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 3.0540000000000003,\n 3.0,\n 150.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 51.835227940958106,\n \"min\": 1.0,\n \"max\": 150.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 3.758666666666666,\n 4.35,\n 150.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 52.63663424340991,\n \"min\": 0.1,\n \"max\": 150.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 1.1986666666666668,\n 1.3,\n 150.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {},
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "iris['species'].value_counts()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 209
+ },
+ "id": "6ATCZc4JIe_n",
+ "outputId": "e3920552-47f2-41c3-b194-692b85184d1b"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "species\n",
+ "setosa 50\n",
+ "versicolor 50\n",
+ "virginica 50\n",
+ "Name: count, dtype: int64"
+ ],
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count \n",
+ " \n",
+ " \n",
+ " species \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " setosa \n",
+ " 50 \n",
+ " \n",
+ " \n",
+ " versicolor \n",
+ " 50 \n",
+ " \n",
+ " \n",
+ " virginica \n",
+ " 50 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
dtype: int64 "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ],
+ "metadata": {
+ "id": "v-SbZNSMJFd-"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "iris.plot(kind='scatter', x='sepal_length', y='sepal_width')\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 452
+ },
+ "id": "6gFXSE-qJQFH",
+ "outputId": "e812c4c7-ce80-428e-b260-02f81bfae9a0"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGzCAYAAAAi6m1wAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP9tJREFUeJzt3Xt8FPXZ///3EkI4JoQAASEcEzkICIhIiBK8PaBiC/WupZQKHttqFPBURa3eamuwllsRkaqtoEWgxSpSq0WkEjTgAUI0Hr5I5BCwQgKGBIhGTOb3hz/2NuTA7rA7+9nPvp6Pxz5KZmZnrmvGmb06p8vnOI4jAAAAizSLdAAAAAChRoEDAACsQ4EDAACsQ4EDAACsQ4EDAACsQ4EDAACsQ4EDAACsQ4EDAACsQ4EDAACsQ4EDAACs0zzSARw1e/ZszZo1SzNmzNAjjzzS4DSLFi3SFVdcUWdYQkKCvv7664CXU1tbq//85z9q166dfD7fiYQMAAA84jiODh48qJNOOknNmh3//IwRBc57772nJ554QkOGDDnutImJidqyZYv/72CLlP/85z9KS0sLOkYAABB5u3btUvfu3Y87XcQLnEOHDmnKlCl66qmn9Nvf/va40/t8PnXp0sX18tq1ayfpuxWUmJjoej4AAMA7lZWVSktL8/+OH0/EC5ycnByNHz9e5557bkAFzqFDh9SzZ0/V1tZq+PDheuCBB3TKKac0On11dbWqq6v9fx88eFDSd2eCKHAAAIgugV65iehNxsuWLVNBQYFyc3MDmr5fv356+umn9dJLL2nx4sWqra3V6NGjtXv37ka/k5ubq6SkJP+Hy1MAANjP5ziOE4kF79q1SyNGjNDq1av9996MHTtWQ4cObfQm42MdOXJEAwYM0OTJk3X//fc3OM2xZ3COnuKqqKjgDA4AAFGisrJSSUlJAf9+R+wS1aZNm1RaWqrhw4f7h9XU1GjdunV67LHHVF1drbi4uCbnER8fr2HDhqm4uLjRaRISEpSQkBCyuAEAgPkiVuCcc845KioqqjPsiiuuUP/+/XXbbbcdt7iRviuIioqKdNFFF4UrTAAAEIUiVuC0a9dOgwYNqjOsTZs2SklJ8Q+fOnWqunXr5r9H57777tOoUaOUnp6uAwcO6KGHHtLOnTt19dVXex4/AAAwV8SfompKSUlJnZf5lJeX65prrtGePXuUnJys0047TevXr9fAgQMjGCUAADBNxG4yjpRgb1ICAACRF+zvN72oAACAdShwAACAdShwAACAdYy+yRiAN7aVHdLOL6vUK6WNendsE+lwAOCEUeAAMexA1TeavrRQ67aW+YeNyeikeZOHKal1fAQjA4ATwyUqIIZNX1qo/OJ9dYblF+/TDUs3RygiAAgNChwgRm0rO6R1W8tUc8ybImocR+u2lmn7vsMRigwAThwFDhCjdn5Z1eT4HfspcABELwocIEb17NC6yfG9UrjZGED0osABYlSfTm01JqOT4ny+OsPjfD6NyejE01QAohoFDhDD5k0epqz0jnWGZaV31LzJwyIUEQCEBo+JAzEsqXW8nr1qpLbvO6wd+w/zHhwA1qDAAaDeHSlsANiFS1QAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6FDgAAMA6zSMdAICmbSs7pJ1fVqlXShv17tgm0uEAQFSgwAEMdaDqG01fWqh1W8v8w8ZkdNK8ycOU1Do+gpEBgPm4RAUYavrSQuUX76szLL94n25YujlCEQFA9KDAAQy0reyQ1m0tU43j1Ble4zhat7VM2/cdjlBkABAdKHAAA+38sqrJ8Tv2U+AAQFMocAAD9ezQusnxvVK42RgAmkKBAxioT6e2GpPRSXE+X53hcT6fxmR04mkqADgOChzAUPMmD1NWesc6w7LSO2re5GERiggAogePiQOGSmodr2evGqnt+w5rx/7DvAcHAIJAgQMYrndHChsACBaXqAAAgHUocAAAgHUocAAAgHUocAAAgHW4yRj4Hjp3A4AdKHAA0bkbAGzDJSpAdO4GANtQ4CDm0bkbAOxDgYOYR+duALAPBQ5iHp27AcA+FDiIeXTuBgD7UOAAonM3ANiGx8QB0bkbAGxDgQN8D527AcAOXKICAADWocABAADWocABAADWocABAADWMabAmT17tnw+n2bOnNnkdMuXL1f//v3VsmVLDR48WK+88oo3AQKoY1vZIb2xpZRWFgCMZMRTVO+9956eeOIJDRkypMnp1q9fr8mTJys3N1cXX3yxlixZookTJ6qgoECDBg3yKFogttF5HUA0iPgZnEOHDmnKlCl66qmnlJyc3OS0c+fO1QUXXKBbb71VAwYM0P3336/hw4frscce8yhaAHReBxANIl7g5OTkaPz48Tr33HOPO+2GDRvqTTdu3Dht2LCh0e9UV1ersrKyzgeAO3ReBxAtIlrgLFu2TAUFBcrNzQ1o+j179ig1NbXOsNTUVO3Zs6fR7+Tm5iopKcn/SUtLO6GYgVhG53UA0SJiBc6uXbs0Y8YMPffcc2rZsmXYljNr1ixVVFT4P7t27QrbsgDb0XkdQLSI2E3GmzZtUmlpqYYPH+4fVlNTo3Xr1umxxx5TdXW14uLi6nynS5cu2rt3b51he/fuVZcuXRpdTkJCghISEkIbPBCjjnZezy/eV+cyVZzPp6z0jrS5AGCMiJ3BOeecc1RUVKTCwkL/Z8SIEZoyZYoKCwvrFTeSlJmZqTVr1tQZtnr1amVmZnoVNhDz6LwOIBpE7AxOu3bt6j3a3aZNG6WkpPiHT506Vd26dfPfozNjxgxlZ2drzpw5Gj9+vJYtW6aNGzfqySef9Dx+IFbReR1ANDDiPTiNKSkpUbNm/3eSafTo0VqyZInuuusu3XHHHcrIyNCKFSt4Bw4QAXReB2Ayn+Mc87yn5SorK5WUlKSKigolJiZGOhwAABCAYH+/I/4eHAAAgFCjwAEAANahwAEAANYx+iZjwEZ5W0pVuPuAhvdI1lkZnSIdDgBYiQIH8MjO/Yc1cX6+yquO+Iclt47XypwzlZbS9BuCAQDB4RIV4JFjixtJKq86oh/OfytCEQGAvShwAA/kbSmtV9wcVV51RG9uLfM4IgCwGwUO4IHC3QeaHF9QUu5NIAAQIyhwAA8M7d6+yfHDeyR7EwgAxAgKHMAD2f06K7l1fIPjklvH8zQVAIQYBQ7gkZU5Z9Yrco4+RQUACC0eEwc8kpbSWpvvPl9vbi1TQUk578EBgDCiwAE8dlZGJwobAAgzLlEBAADrUOAAAADrUOAAAADrUOAAAADrcJMxrPXXd0u0Yft+ZfXtqEtHpEU6HKNtKzuknV9WqVdKG/Xu2CbS4QAIEy/2dVOOJz7HcZyILT0CKisrlZSUpIqKCiUmJkY6HIRB0e4D+tHj6/Vt7f/9p928mU8rc7I0sFtSBCMzz4GqbzR9aaHWfa8X1piMTpo3eZiSGnkxIYDo48W+Hu5lBPv7zSUqWOfY4kaSvq119MP5+RGKyFzTlxYqv3hfnWH5xft0w9LNEYoIQDh4sa+bdjyhwIFV/vpuSb3i5qhvax0t37jL44jMta3skNZtLVPNMSdxaxxH67aWafu+wxGKDEAoebGvm3g8ocCBVTZs39/k+PzP9jU5Ppbs/LKqyfE79lPgADbwYl838XhCgQOrZPZOaXJ8Vt+OHkVivp4dWjc5vlcKNxsDNvBiXzfxeEKBA6tMGtlDzZv5GhzXvJmPp6m+p0+nthqT0UlxvrrrK87n05iMTjxNBVjCi33dxOMJBQ6sszInq16Rc/QpKtQ1b/IwZaXXPauVld5R8yYPi1BEAMLBi33dtOMJj4nDWss37lL+Z/t4D04Atu87rB37D0f8vRUAwsuLfT1cywj295sCBwAAGI/34AAAgJhHgQMAAKxDgQMAAKxDgQMAAKxDN3FYy9SuuaZ02gUAm1HgwDqmds2lczcAeIdLVLCOqV1zTeu0CwA2o8CBVUztmmtip10AsBkFDqxiatdcEzvtAoDNKHBgFVO75prYaRcAbEaBA6uY2jXXxE67AGAzChxYx9SuuaZ12gUAm9FsE9YytWsunbsBIHh0Ez8OChwAAKIP3cQBAEDMo8ABAADWocABAADWocABAADWodmm5WzqXG1TLgAih2NJbKDAsZRNnattygVA5HAsiS1corKUTZ2rbcoFQORwLIktFDgWsqlztU25AIgcjiWxhwLHQjZ1rrYpFwCRw7Ek9lDgWMimztU25QIgcjiWxB4KHAvZ1LnaplwARA7HkthDgWMpmzpX25QLgMjhWBJbaLZpOZs6V9uUC4DI4VgSnegmfhyxVuAAAGADuokDAICYR4EDAACsQ4EDAACsQ4EDAACsE9ECZ8GCBRoyZIgSExOVmJiozMxMvfrqq41Ov2jRIvl8vjqfli1behgxIilvS6nmrvlUb36vUV4op5e+e537G1tKjXptu4kxAYDpItpNvHv37po9e7YyMjLkOI6eeeYZTZgwQZs3b9Ypp5zS4HcSExO1ZcsW/9++Y17aBPvs3H9YE+fnq7zqiH9Ycut4rcw5U2kp9d9OGuz0kpldhk2MCQCiRUTP4PzgBz/QRRddpIyMDJ188sn63e9+p7Zt2+rtt99u9Ds+n09dunTxf1JTUz2MGJFwbLEiSeVVR/TD+W+FZHrJzC7DJsYEANHCmHtwampqtGzZMh0+fFiZmZmNTnfo0CH17NlTaWlpmjBhgj766KMm51tdXa3Kyso6H0SPvC2l9YqVo8qrjtS7/BTs9JKZXYZNjAkAoknEC5yioiK1bdtWCQkJ+tWvfqUXX3xRAwcObHDafv366emnn9ZLL72kxYsXq7a2VqNHj9bu3bsbnX9ubq6SkpL8n7S0tHClgjAo3H2gyfEFJeUnNL1kZpdhE2MCgGgS8QKnX79+Kiws1DvvvKNrr71W06ZN08cff9zgtJmZmZo6daqGDh2q7OxsvfDCC+rUqZOeeOKJRuc/a9YsVVRU+D+7du0KVyoIg6Hd2zc5fniP5BOaXjKzy7CJMQFANIl4gdOiRQulp6frtNNOU25urk499VTNnTs3oO/Gx8dr2LBhKi4ubnSahIQE/1NaRz+IHtn9Oiu5kRtqk1vH66yMTic0vWRml2ETYwKAaBLxAudYtbW1qq6uDmjampoaFRUVqWvXrmGOCpG0MufMekXL0aeiQjG9ZGaXYRNjAoBo4brZZm1trYqLi1VaWqra2to648aMGRPQPGbNmqULL7xQPXr00MGDB7VkyRI9+OCDWrVqlc477zxNnTpV3bp1U25uriTpvvvu06hRo5Senq4DBw7ooYce0ooVK7Rp06ZG79s5Fs02o9ebW8tUUFKu4T2SGzwTc6LTS2Z2GTYxJgDwWrC/367eg/P222/rZz/7mXbu3Klj6yOfz6eampqA5lNaWqqpU6fqiy++UFJSkoYMGeIvbiSppKREzZr930mm8vJyXXPNNdqzZ4+Sk5N12mmnaf369QEXN4huZ2V0CrhQcTO9JPXuaF4RYWJMAGA6V2dwhg4dqpNPPln33nuvunbtWu9le0lJSSELMNQ4gwMAQPTx5AzO1q1b9fzzzys9Pd3N1wEAAMLK1U3GZ5xxRpNPLgEAAERSwGdwPvjgA/+/b7jhBt18883as2ePBg8erPj4uk+sDBkyJHQRAgAABCnge3CaNWsmn89X76Zi/4z+/3HB3GQcCbF2D862skPa+WVVWJ/AydtSqsLdB4J6WsmL5bjJ3ab1ZQMvtkewy/AiJgD1he0enO3bt59QYPCWF52o3XTt9mI5bnK3aX3ZwIvtEewy6O4ORJeA78Hp2bOn/7Nz505169atzrCePXuqW7du2rlzZzjjRYC86ETtpmu3F8txk7tN68sGXmyPYJdBd3cguri6yfjss8/Wl19+WW94RUWFzj777BMOCifGi07Ubrp2e7EcN7nbtL5s4MX2CHYZdHcHoo+rAufovTbH2r9/v9q04Zp0pHnRidpN124vluMmd5vWlw282B7BLoPu7kD0Ceo9OJdccomk724ovvzyy5WQkOAfV1NTow8++ECjR48ObYQImhedqN107fZiOW5yt2l92cCL7RHsMujuDkSfoM7gJCUlKSkpSY7jqF27dv6/k5KS1KVLF/3iF7/Q4sWLwxUrAuRFJ2o3Xbu9WI6b3G1aXzbwYnsEuwy6uwPRx1WrhnvvvVe33HJLVF6OipXHxCuqjuiGpZvD+sTHrv1V+uH8t8L+VFCwy3GTu03rywZebI9gl+FFTAAaF+zvt+tu4tEqVgqco7zoRO2ma7cXy3GTu03rywZebI9gl0F3dyAywlbgDBs2rMEbixtSUFAQ0HSREGsFDgAANgjbi/4mTpzo//fXX3+txx9/XAMHDlRmZqYk6e2339ZHH32k6667LvioAQAAQijgAueee+7x//vqq6/W9OnTdf/999ebZteuXaGLDgAAwAVX9+AkJSVp48aNysjIqDN869atGjFihCoqKkIWYKhxiQoAgOgT7O+3qxf9tWrVSvn5+fWG5+fnq2XLlm5mCQAAEDJBvejvqJkzZ+raa69VQUGBRo4cKUl655139PTTT+s3v/lNSAMEjqLrM0xgSzd4W/IAGuOqwLn99tvVp08fzZ071/9ivwEDBmjhwoX6yU9+EtIAAbo+wwS2dIO3JQ/geHgPDow39c/vKr94X51Gh3E+n7LSO+rZq0ae8PRAIIbd91qDDVOTW8dr893nRyAid2zJA7HHk3twAK/Q9RkmsKUbvC15AIEIuMDp0KGD9u3bJ0lKTk5Whw4dGv0AoULXZ5jAlm7wtuQBBCLge3AefvhhtWvXzv/vQN9qDJwIuj7DBLZ0g7clDyAQARc406ZN8//78ssvD0csQD1Huzg3dk9NY12fA50eCMTRbvCN3bsSLU8h2ZIHEAhX9+BMnTpVCxcu1GeffRbqeIB65k0epqz0jnWGZaV31LzJw0IyPRCIlTlnKvmYp/COPn0UTWzJAzgeV09RXX311Vq3bp2Ki4vVrVs3ZWdna+zYscrOzq73dmPT8BRV9KLrM0xgSzd4W/JA7AhbN/GGfP7551q3bp3y8vKUl5enTz/9VF27dtXu3bvdzjLsKHAAAIg+nj4mnpycrJSUFCUnJ6t9+/Zq3ry5OnXi/wkAAIDIclXg3HHHHRo9erRSUlJ0++236+uvv9btt9+uPXv2aPPmzaGOEQAAICiuLlE1a9ZMnTp10o033qhLLrlEJ598cjhiCwsuUQEAEH2C/f121Ytq8+bNysvL09q1azVnzhy1aNHCf6Px2LFjo6rgAQAA9glJL6r3339fDz/8sJ577jnV1taqpqYmFLGFhUlncLzodu1mGaZ2GaY7eHSL5e0X7D5l6roKNi43eZh6XETkeXIGx3Ecbd68WWvXrtXatWv11ltvqbKyUkOGDFF2drabWcYUL7pdu1mGqV2G6Q4e3WJ5+wW7T5m6roKNy00eph4XEb1cncFJTk7WoUOHdOqpp/ovTZ111llq3759GEIMLRPO4HjR7drNMkztMkx38OgWy9sv2H3K1HUVbFxu8jD1uAhzePKY+OLFi7V//35t3LhRc+bM0Q9+8IMGi5vdu3ertrbWzSKs5UW3azfLMLXLMN3Bo1ssb79g9ylT11WwcbnJw9TjIqKbqwJn/PjxAVVPAwcO1I4dO9wswlpedLt2swxTuwzTHTy6xfL2C3afMnVdBRuXmzxMPS4iup3Qi/6OJwT3L1vHi27XbpZhapdhuoNHt1jefsHuU6auq2DjcpOHqcdFRLewFjio72i36zifr87wOJ9PYzI6heSOfjfLONpluCGR7DLsxfpC+MTy9gt2nzJ1XQUbl5s8TD0uIrpR4ESAF92u3SzD1C7DdAePbrG8/YLdp0xdV8HG5SYPU4+LiF4heQ9OY9q1a6f3339fffr0CdcigmbCU1RHedHt2s0yTO0yTHfw6BbL2y/YfcrUdRVsXG7yMPW4iMjztJv48SQmJqqwsJACBwAAnBBPu4kfDzcZAwCASHD1JuNAffzxxzrppJPCuQgAAIB6Ai5wLrnkkoBn+sILL0iS0tLSgo8IAADgBAVc4CQlJYUzDgAAgJAJuMBZuHBhOONAmJjamfev75Zow/b9yurbUZeO4Ewf7GZi92ov9kH2c0RSWJ+iMlGsPEVlamfeot0H9KPH1+vb2v/7z655M59W5mRpYDfOEsIuJnav9mIfZD9HOHj2mPjzzz+vv/3tbyopKdE333xTZ1xBQYGbWXoiVgocUzvzpt/xSp2D3lHNm/lU/MBFIYkLMIWJ3au92AfZzxEOnjwm/uijj+qKK65QamqqNm/erJEjRyolJUXbtm3ThRde6GaWCCFTO/P+9d2SBg96kvRtraPlG3edcFyAKUzsXu3FPsh+DlO4KnAef/xxPfnkk5o3b55atGihX//611q9erWmT5+uioqKUMeIIJnamXfD9v1Nfif/s30nFBNgEhO7V3uxD7KfwxSuCpySkhKNHj1aktSqVSsdPHhQknTZZZdp6dKloYsOrpjamTezd0qT38nq27HJ8UA0MbF7tRf7IPs5TOGqwOnSpYu+/PJLSVKPHj309ttvS5K2b9/O24sNYGpn3kkje6h5M1+94dJ31+Z5ygI2MbF7tRf7IPs5TOGqwPmv//ovrVy5UpJ0xRVX6MYbb9R5552nSZMm6Uc/+lFIA4Q7pnbmXZmTVe/gd/TpCsA2Jnav9mIfZD+HCVw9RVVbW6va2lo1b/7da3SWLVum9evXKyMjQ7/85S/VokWLkAcaKrHyFNVRpnbmXb5xl/I/28f7MRATTOxe7cU+yH6OUDKqm7iJYq3AAQDABsH+frtutlleXq4///nP+uSTTyRJAwcO1BVXXKEOHTq4nSUAAEBIuLoHZ926derdu7ceffRRlZeXq7y8XI8++qh69+6tdevWhTpGAACAoLi6RDV48GBlZmZqwYIFiouLkyTV1NTouuuu0/r161VUVBTyQEOFS1QAAEQfT95kXFxcrJtvvtlf3EhSXFycbrrpJhUXF7uZJQAAQMi4KnCGDx/uv/fm+z755BOdeuqpAc9nwYIFGjJkiBITE5WYmKjMzEy9+uqrTX5n+fLl6t+/v1q2bKnBgwfrlVdeCTr+cNlWdkhvbCkN+BXswU5vqrwtpZq75lO9+b2GgsfjJndb1pcXeQS7TUyMyU1cbpZhor++W6KZf90cVFsDL9aVqftgrB57Y/k4GghXNxlPnz5dM2bMUHFxsUaNGiVJevvttzV//nzNnj1bH3zwgX/aIUOGNDqf7t27a/bs2crIyJDjOHrmmWc0YcIEbd68Waecckq96devX6/JkycrNzdXF198sZYsWaKJEyeqoKBAgwYNcpNKSATbMdjEDsNu7Nx/WBPn56u86oh/WHLreK3MOVNpKQ2/xdVN7rasLy/yCHabmBiTm7jcLMNEx3bhXrH5P5r1QlGTXbi9WFem7oOxeuyN5eNoMFzdg9OsWdMnfnw+nxzHkc/nU01NTVDz7tChgx566CFdddVV9cZNmjRJhw8f1ssvv+wfNmrUKA0dOlR//OMfA5p/OO7BCbZjsIkdht0Ydt9rdQ6SRyW3jtfmu89v8DtucrdlfXmRR7DbxMSY3MTlZhkmctOF24t1Zeo+GKvH3lg9jnpyD8727dub/Gzbts3/v4GqqanRsmXLdPjwYWVmZjY4zYYNG3TuuefWGTZu3Dht2LCh0flWV1ersrKyzieUgu0YbGKHYTfytpQ2eJCUpPKqIw2e9naTuy3ry4s8gt0mJsbkJi43yzCRmy7cXqwrU/fBWD32xvJxNFiuCpyePXsG/DmeoqIitW3bVgkJCfrVr36lF198UQMHDmxw2j179ig1NbXOsNTUVO3Zs6fR+efm5iopKcn/SUsL7ds0g+0YbGKHYTcKdx9ocnxBSXm9YW5yt2V9eZFHsNvExJik4ONyswwTuenC7cW6MnUfjNVjbywfR4PlqsCRpL/85S/KysrSSSedpJ07d0qSHnnkEb300ktBzadfv34qLCzUO++8o2uvvVbTpk3Txx9/7DasembNmqWKigr/Z9euwG/aC0SwHYNN7DDsxtDu7ZscP7xHcr1hbnK3ZX15kUew28TEmKTg43KzDBO56cLtxboydR+M1WNvLB9Hg+WqwFmwYIFuuukmXXTRRTpw4ID/Ppv27dvrkUceCWpeLVq0UHp6uk477TTl5ubq1FNP1dy5cxuctkuXLtq7d2+dYXv37lWXLl0anX9CQoL/Ka2jn1AKtmOwiR2G3cju11nJjdyYltw6XmdldKo33E3utqwvL/IIdpuYGJObuNwsw0RuunB7sa5M3Qdj9dgby8fRYLkqcObNm6ennnpKd955Z5134YwYMeKEX/JXW1ur6urqBsdlZmZqzZo1dYatXr260Xt2vBJsx2ATOwy7sTLnzHoHy6NPYzTGTe62rC8v8gh2m5gYk5u43CzDRG66cHuxrkzdB2P12BvLx9FguHqKqlWrVvp//+//qWfPnmrXrp3ef/999enTR1u3btWQIUP01VdfBTSfWbNm6cILL1SPHj108OBBLVmyRA8++KBWrVql8847T1OnTlW3bt2Um5sr6bvHxLOzszV79myNHz9ey5Yt0wMPPBDUY+LhfJNxsB2DTeww7MabW8tUUFKu4T2SA/5/y25yt2V9eZFHsNvExJjcxOVmGSZy04Xbi3Vl6j4Yq8feWDuOetJNfODAgcrNzdWECRPqFDjz5s3TwoULVVBQENB8rrrqKq1Zs0ZffPGFkpKSNGTIEN12220677zzJEljx45Vr169tGjRIv93li9frrvuuks7duxQRkaGfv/73+uiixp+fLIhtGoAACD6eNJN/KabblJOTo6+/vprOY6jd999V0uXLlVubq7+9Kc/BTyfP//5z02OX7t2bb1hl156qS699NJgQwYAADHEVYFz9dVXq1WrVrrrrrtUVVWln/3sZ+rWrZvmzp2rn/70p6GOEQAAICiuCpyvvvpKP/rRjzRlyhRVVVXpww8/VH5+vrp37x7q+AAAAILm6imqCRMm6Nlnn5UkffPNN/rhD3+o//3f/9XEiRO1YMGCkAYIAAAQLFcFTkFBgc466yxJ0vPPP6/U1FTt3LlTzz77rB599NGQBmizWOrqCm/Z0l3ZizxMXIYbpm5DW7B+o4+rS1RVVVVq166dJOm1117TJZdcombNmmnUqFH+txqjcbHY1RXesKW7shd5mLgMN0zdhrZg/UYvV2dw0tPTtWLFCu3atUurVq3S+ed/14G2tLSUR68DMH1pofKL6/aVyS/epxuWbo5QRLBFsP9tmfrfohd5mLgMN0zdhrZg/UYvVwXO3XffrVtuuUW9evXSGWec4X+T8GuvvaZhw+x9K2IoxGpXV4SfLd2VvcjDxGW4Yeo2tAXrN7q5KnB+/OMfq6SkRBs3btS//vUv//BzzjlHDz/8cMiCs1GsdnVF+NnSXdmLPExchhumbkNbsH6jm6t7cKTvGl8e2+Ry5MiRJxyQ7WK1qyvCz5buyl7kYeIy3DB1G9qC9RvdXJ3BgXux2tUV4WdLd2Uv8jBxGW6Yug1twfqNbhQ4ERCLXV3hDVu6K3uRh4nLcMPUbWgL1m/0ctVsM5qZ1Gwzmru6wmy2dFf2Ig8Tl+GGqdvQFqzfyPOkm3g0M6nAAQAAgQn295tLVAAAwDoUOAAAwDoUOAAAwDoUOAAAwDquX/QHwFzbyg5p55dVAT/xkbelVIW7D2h4j2SdldEpLMvwghd5uMk72LhMXLeSuXGZyNR1ZWpc4UCBA1gk2M7HO/cf1sT5+SqvOuIfltw6XitzzlRaSsNvcTWxu7IXebjJO9i4TFy3JsdlIlPXlalxhROXqACLBNv5+NgfX0kqrzqiH85/K2TL8IIXebjJO9i4TFy3krlxmcjUdWVqXOFEgQNYItjOx3lbSuv9+B5VXnVEb37v/+m5XYYXvMjDTd7BxmXiujU5LhOZuq5MjSvcKHAASwTb+bhw94Empy8oKT/hZXjBizzc5B1sXCauW8ncuExk6royNa5wo8ABLBFs5+Oh3ds3Of3wHsknvAwveJGHm7yDjcvEdSuZG5eJTF1XpsYVbhQ4gCWC7Xyc3a+zkhu5uTC5dXyDT/uY2F3Zizzc5B1sXCauW5PjMpGp68rUuMKNAgewSLCdj1fmnFnvR/joUz6hWoYXvMjDTd7BxmXiupXMjctEpq4rU+MKJ5ptAhYKtvPxm1vLVFBSHtT7Y0zsruxFHm7yDjYuE9etZG5cJjJ1XZkaVyDoJn4cFDgAAEQfuokDAICYR4EDAACsQ4EDAACsQ4EDAACsQ7NN4Hts6bTrRR6Prdmq/M/26ayMTrru7PSwLMPE7eEmJhPzAGxHgQPInk67XuSxvrhMP/vTu/6/N2z7Ur9ftUV/vWaUzuibEpJlmLg93MRkYh5ArOASFSB7Ou16kcf3i5vvm/TU2yFbhonbw01MJuYBxAoKHMQ8WzrtepHHY2u2Njn+8TeKT3gZJm4PNzGZmAcQSyhwEPNs6bTrRR75n+1rcvyb37sU45aJ28NNTCbmAcQSChzEPFs67XqRR1bfjk2OD7Q9QlNM3B5uYjIxDyCWUOAg5tnSadeLPK4/J6PJ8aF4msrE7eEmJhPzAGIJBQ4gezrtepHHX68ZFdRwN0zcHm5iMjEPIFbQbBP4nmjutPt9XuTx+BvFenNrWVjfg2Pi9nATk4l5ANGGbuLHQYEDAED0oZs4AACIeRQ4AADAOhQ4AADAOhQ4AADAOjTbBAznRSdqWzpkmxgTYJJY2kcocABDedGJ2pYO2SbGBJgkFvcRLlEBhvKiE7UtHbJNjAkwSSzuIxQ4gIG86ERtS4dsE2MCTBKr+wgFDmAgLzpR29Ih28SYAJPE6j5CgQMYyItO1LZ0yDYxJsAksbqPUOAABvKiE7UtHbJNjAkwSazuIxQ4gKG86ERtS4dsE2MCTBKL+wjNNgHDedGJ2pYO2SbGBJgkmvcRuokfBwUOAADRh27iAAAg5lHgAAAA61DgAAAA61DgAAAA60S0wMnNzdXpp5+udu3aqXPnzpo4caK2bNnS5HcWLVokn89X59OyZUuPIkaobCs7pDe2lIb1FeFeLMMLbvII9ju2rCsv5G0p1dw1n+rN7zUtjEZsc9guot3E8/LylJOTo9NPP13ffvut7rjjDp1//vn6+OOP1aZN44+vJSYm1imEfMe8vAjmMrVDtom86PRty7ryws79hzVxfr7Kq474hyW3jtfKnDOVltL0m2JNwjZHrDDqMfGysjJ17txZeXl5GjNmTIPTLFq0SDNnztSBAwdcLYPHxCNr6p/fVX7xvjpN3+J8PmWld9SzV42MmmV4wU0ewX7HlnXlhWH3vVanuDkquXW8Nt99fgQicodtjmgV1Y+JV1RUSJI6dOjQ5HSHDh1Sz549lZaWpgkTJuijjz5qdNrq6mpVVlbW+SAyTO2QbSIvOn3bsq68kLeltMHiRpLKq45EzeUqtjliiTEFTm1trWbOnKmsrCwNGjSo0en69eunp59+Wi+99JIWL16s2tpajR49Wrt3725w+tzcXCUlJfk/aWlp4UoBx2Fqh2wTedHp25Z15YXC3QeaHF9QUu5NICeIbY5YYkyBk5OTow8//FDLli1rcrrMzExNnTpVQ4cOVXZ2tl544QV16tRJTzzxRIPTz5o1SxUVFf7Prl27whE+AmBqh2wTedHp25Z15YWh3ds3OX54j2RvAjlBbHPEEiMKnOuvv14vv/yy3njjDXXv3j2o78bHx2vYsGEqLi5ucHxCQoISExPrfBAZpnbINpEXnb5tWVdeyO7XWcmN3ICb3DpeZ2V08jgid9jmiCURLXAcx9H111+vF198Uf/+97/Vu3fvoOdRU1OjoqIide3aNQwRItRM7ZBtIi86fduyrrywMufMekXO0aeoognbHLEiok9RXXfddVqyZIleeukl9evXzz88KSlJrVq1kiRNnTpV3bp1U25uriTpvvvu06hRo5Senq4DBw7ooYce0ooVK7Rp0yYNHDjwuMvkKSozmNoh20RedPq2ZV154c2tZSooKdfwHslRc+amIWxzRJuo6ibe2PtrFi5cqMsvv1ySNHbsWPXq1UuLFi2SJN1444164YUXtGfPHiUnJ+u0007Tb3/7Ww0bFtj/+6DAAQAg+kRVgRMJFDgAAESfqH4PDgAAQChQ4AAAAOtQ4AAAAOtEtNkmYte2skPa+WUVT3AEIG9LqQp3H4j6p3YAwEsUOPAUnYwDZ0v3agCIBC5RwVPTlxYqv3hfnWH5xft0w9LNEYrIXMcWN9J3jR1/OP+tCEUEANGDAgeeoZNx4GzpXg0AkUKBA8/QyThwtnSvBoBIocCBZ+hkHDhbulcDQKRQ4MAzdDIOnC3dqwEgUihw4Ck6GQfOlu7VABAJ9KJCRNDJOHC2dK8GgBNBs83joMABACD60GwTAADEPAocAABgHQocAABgHQocAABgHZptRplY7sIdq7nHat6mYnsA0YECJ0rEchfuWM09VvM2FdsDiC5coooSsdyFO1Zzj9W8TcX2AKILBU4UiOUu3LGae6zmbSq2BxB9KHCiQCx34Y7V3GM1b1OxPYDoQ4ETBWK5C3es5h6reZuK7QFEHwqcKBDLXbhjNfdYzdtUbA8g+lDgRIlY7sIdq7nHat6mYnsA0YVmm1Emlrtwx2rusZq3qdgeQGTQTfw4or3AAQAgFtFNHAAAxDwKHAAAYB0KHAAAYB0KHAAAYB2abQIwVt6WUhXuPqDhPZJ1VkansCyD7uCAnShwABhn5/7Dmjg/X+VVR/zDklvHa2XOmUpLafqtwoGiOzhgNy5RATDOscWNJJVXHdEP578VsmXQHRywGwUOAKPkbSmtV9wcVV51RG9+74yLW3QHB+xHgQPAKIW7DzQ5vqCk/ISXQXdwwH4UOACMMrR7+ybHD++RfMLLoDs4YD8KHABGye7XWcmN3OSb3Do+JE9T0R0csB8FDgDjrMw5s16Rc/QpqlChOzhgN5ptAjDWm1vLVFBSHtb34NAdHIgOdBM/DgocAACiD93EAQBAzKPAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1qHAAQAA1ologZObm6vTTz9d7dq1U+fOnTVx4kRt2bLluN9bvny5+vfvr5YtW2rw4MF65ZVXPIgWkbat7JDe2FKq7fsORzoUAIDhIlrg5OXlKScnR2+//bZWr16tI0eO6Pzzz9fhw43/gK1fv16TJ0/WVVddpc2bN2vixImaOHGiPvzwQw8jh5cOVH2jqX9+V/81J09XLHxPZ/9hrab++V1VVB2JdGgAAEP5HMdxIh3EUWVlZercubPy8vI0ZsyYBqeZNGmSDh8+rJdfftk/bNSoURo6dKj++Mc/HncZlZWVSkpKUkVFhRITE0MWO8Jn6p/fVX7xPtV87z/VOJ9PWekd9exVIyMYGQDAK8H+fht1D05FRYUkqUOHDo1Os2HDBp177rl1ho0bN04bNmxocPrq6mpVVlbW+SB6bCs7pHVby+oUN5JU4zhat7WMy1UAgAYZU+DU1tZq5syZysrK0qBBgxqdbs+ePUpNTa0zLDU1VXv27Glw+tzcXCUlJfk/aWlpIY0b4bXzy6omx+/YT4EDAKjPmAInJydHH374oZYtWxbS+c6aNUsVFRX+z65du0I6f4RXzw6tmxzfK6WNR5EAAKJJ80gHIEnXX3+9Xn75Za1bt07du3dvctouXbpo7969dYbt3btXXbp0aXD6hIQEJSQkhCxWeKtPp7Yak9Gp0XtwenekwAEA1BfRMziO4+j666/Xiy++qH//+9/q3bv3cb+TmZmpNWvW1Bm2evVqZWZmhitMRNi8ycOUld6xzrCs9I6aN3lYhCICAJguomdwcnJytGTJEr300ktq166d/z6apKQktWrVSpI0depUdevWTbm5uZKkGTNmKDs7W3PmzNH48eO1bNkybdy4UU8++WTE8kB4JbWO17NXjdT2fYe1Y/9h9Uppw5kbAECTIvqYuM/na3D4woULdfnll0uSxo4dq169emnRokX+8cuXL9ddd92lHTt2KCMjQ7///e910UUXBbRMHhMHACD6BPv7bdR7cLxAgQMAQPSJ6vfgAAAAhAIFDgAAsA4FDgAAsA4FDgAAsA4FDgAAsA4FDgAAsA4FDgAAsA4FDgAAsA4FDgAAsI4R3cS9dPTFzZWVlRGOBAAABOro73agDRhirsA5ePCgJCktLS3CkQAAgGAdPHhQSUlJx50u5npR1dbW6j//+Y/atWvXaLNPk1VWViotLU27du2KuV5asZp7rOYtxW7usZq3RO6xmHugeTuOo4MHD+qkk05Ss2bHv8Mm5s7gNGvWTN27d490GCcsMTExpnaA74vV3GM1byl2c4/VvCVyj8XcA8k7kDM3R3GTMQAAsA4FDgAAsA4FTpRJSEjQPffco4SEhEiH4rlYzT1W85ZiN/dYzVsi91jMPVx5x9xNxgAAwH6cwQEAANahwAEAANahwAEAANahwAEAANahwDHY7Nmz5fP5NHPmzEanWbRokXw+X51Py5YtvQsyRP7nf/6nXh79+/dv8jvLly9X//791bJlSw0ePFivvPKKR9GGTrB527K9j/r888/185//XCkpKWrVqpUGDx6sjRs3NvmdtWvXavjw4UpISFB6eroWLVrkTbAhFGzea9eurbfdfT6f9uzZ42HUJ65Xr14N5pGTk9Pod2zYz6Xgc7dlX6+pqdFvfvMb9e7dW61atVLfvn11//33H7efVCj285h7k3G0eO+99/TEE09oyJAhx502MTFRW7Zs8f8djS0oJOmUU07R66+/7v+7efPG//Ncv369Jk+erNzcXF188cVasmSJJk6cqIKCAg0aNMiLcEMmmLwle7Z3eXm5srKydPbZZ+vVV19Vp06dtHXrViUnJzf6ne3bt2v8+PH61a9+peeee05r1qzR1Vdfra5du2rcuHEeRu+em7yP2rJlS503vXbu3DmcoYbce++9p5qaGv/fH374oc477zxdeumlDU5v034ebO6SHfv6gw8+qAULFuiZZ57RKaecoo0bN+qKK65QUlKSpk+f3uB3QrafOzDOwYMHnYyMDGf16tVOdna2M2PGjEanXbhwoZOUlORZbOFyzz33OKeeemrA0//kJz9xxo8fX2fYGWec4fzyl78McWThFWzetmxvx3Gc2267zTnzzDOD+s6vf/1r55RTTqkzbNKkSc64ceNCGVpYucn7jTfecCQ55eXl4QkqQmbMmOH07dvXqa2tbXC8Lft5Q46Xuy37+vjx450rr7yyzrBLLrnEmTJlSqPfCdV+ziUqA+Xk5Gj8+PE699xzA5r+0KFD6tmzp9LS0jRhwgR99NFHYY4wPLZu3aqTTjpJffr00ZQpU1RSUtLotBs2bKi3fsaNG6cNGzaEO8yQCyZvyZ7tvXLlSo0YMUKXXnqpOnfurGHDhumpp55q8js2bHc3eR81dOhQde3aVeedd57y8/PDHGl4ffPNN1q8eLGuvPLKRs9M2LC9GxJI7pId+/ro0aO1Zs0affrpp5Kk999/X2+99ZYuvPDCRr8Tqu1OgWOYZcuWqaCgQLm5uQFN369fPz399NN66aWXtHjxYtXW1mr06NHavXt3mCMNrTPOOEOLFi3Sv/71Ly1YsEDbt2/XWWedpYMHDzY4/Z49e5SamlpnWGpqatTdkxBs3rZsb0natm2bFixYoIyMDK1atUrXXnutpk+frmeeeabR7zS23SsrK/XVV1+FO+SQcJN3165d9cc//lF///vf9fe//11paWkaO3asCgoKPIw8tFasWKEDBw7o8ssvb3QaW/bzYwWSuy37+u23366f/vSn6t+/v+Lj4zVs2DDNnDlTU6ZMafQ7IdvPgzrfg7AqKSlxOnfu7Lz//vv+Yce7RHWsb775xunbt69z1113hSFC75SXlzuJiYnOn/70pwbHx8fHO0uWLKkzbP78+U7nzp29CC9sjpf3saJ5e8fHxzuZmZl1ht1www3OqFGjGv1ORkaG88ADD9QZ9s9//tOR5FRVVYUlzlBzk3dDxowZ4/z85z8PZWieOv/8852LL764yWls3c8Dyf1Y0bqvL1261OnevbuzdOlS54MPPnCeffZZp0OHDs6iRYsa/U6o9nPO4Bhk06ZNKi0t1fDhw9W8eXM1b95ceXl5evTRR9W8efM6N6g15miFXFxc7EHE4dO+fXudfPLJjebRpUsX7d27t86wvXv3qkuXLl6EFzbHy/tY0by9u3btqoEDB9YZNmDAgCYv0TW23RMTE9WqVauwxBlqbvJuyMiRI6Nyu0vSzp079frrr+vqq69ucjob9/NAcz9WtO7rt956q/8szuDBg3XZZZfpxhtvbPIqRaj2cwocg5xzzjkqKipSYWGh/zNixAhNmTJFhYWFiouLO+48ampqVFRUpK5du3oQcfgcOnRIn332WaN5ZGZmas2aNXWGrV69WpmZmV6EFzbHy/tY0by9s7Ky6jwhIkmffvqpevbs2eh3bNjubvJuSGFhYVRud0lauHChOnfurPHjxzc5nQ3b+1iB5n6saN3Xq6qq1KxZ3VIjLi5OtbW1jX4nZNvd9XkneOLYS1SXXXaZc/vtt/v/vvfee51Vq1Y5n332mbNp0ybnpz/9qdOyZUvno48+ikC07t18883O2rVrne3btzv5+fnOueee63Ts2NEpLS11HKd+3vn5+U7z5s2dP/zhD84nn3zi3HPPPU58fLxTVFQUqRRcCTZvW7a34zjOu+++6zRv3tz53e9+52zdutV57rnnnNatWzuLFy/2T3P77bc7l112mf/vbdu2Oa1bt3ZuvfVW55NPPnHmz5/vxMXFOf/6178ikYIrbvJ++OGHnRUrVjhbt251ioqKnBkzZjjNmjVzXn/99UikcEJqamqcHj16OLfddlu9cbbu50cFk7st+/q0adOcbt26OS+//LKzfft254UXXnA6duzo/PrXv/ZPE679nALHcMcWONnZ2c60adP8f8+cOdPp0aOH06JFCyc1NdW56KKLnIKCAu8DPUGTJk1yunbt6rRo0cLp1q2bM2nSJKe4uNg//ti8Hcdx/va3vzknn3yy06JFC+eUU05x/vnPf3oc9YkLNm9btvdR//jHP5xBgwY5CQkJTv/+/Z0nn3yyzvhp06Y52dnZdYa98cYbztChQ50WLVo4ffr0cRYuXOhdwCESbN4PPvig07dvX6dly5ZOhw4dnLFjxzr//ve/PY46NFatWuVIcrZs2VJvnK37+VHB5G7Lvl5ZWenMmDHD6dGjh9OyZUunT58+zp133ulUV1f7pwnXfu5znOO8ThAAACDKcA8OAACwDgUOAACwDgUOAACwDgUOAACwDgUOAACwDgUOAACwDgUOAACwDgUOAACwDgUOgKhw+eWXa+LEiQFNO3bsWM2cOTOs8QRq7dq18vl8OnDgQKRDAWIKBQ4AhIhJhRUQ6yhwAACAdShwAATk+eef1+DBg9WqVSulpKTo3HPP1eHDhyVJf/rTnzRgwAC1bNlS/fv31+OPP+7/3o4dO+Tz+bRs2TKNHj1aLVu21KBBg5SXl+efpqamRldddZV69+6tVq1aqV+/fpo7d27IYq+urtYtt9yibt26qU2bNjrjjDO0du1a//hFixapffv2WrVqlQYMGKC2bdvqggsu0BdffOGf5ttvv9X06dPVvn17paSk6LbbbtO0adP8l80uv/xy5eXlae7cufL5fPL5fNqxY4f/+5s2bdKIESPUunVrjR49Wlu2bAlZfgDqo8ABcFxffPGFJk+erCuvvFKffPKJ1q5dq0suuUSO4+i5557T3Xffrd/97nf65JNP9MADD+g3v/mNnnnmmTrzuPXWW3XzzTdr8+bNyszM1A9+8APt379fklRbW6vu3btr+fLl+vjjj3X33Xfrjjvu0N/+9reQxH/99ddrw4YNWrZsmT744ANdeumluuCCC7R161b/NFVVVfrDH/6gv/zlL1q3bp1KSkp0yy23+Mc/+OCDeu6557Rw4ULl5+ersrJSK1as8I+fO3euMjMzdc011+iLL77QF198obS0NP/4O++8U3PmzNHGjRvVvHlzXXnllSHJDUAjTqQNOoDYsGnTJkeSs2PHjnrj+vbt6yxZsqTOsPvvv9/JzMx0HMdxtm/f7khyZs+e7R9/5MgRp3v37s6DDz7Y6DJzcnKc//7v//b/PW3aNGfChAkBxZudne3MmDHDcRzH2blzpxMXF+d8/vnndaY555xznFmzZjmO4zgLFy50JDnFxcX+8fPnz3dSU1P9f6empjoPPfSQ/+9vv/3W6dGjR52Yvr/co9544w1HkvP666/7h/3zn/90JDlfffVVQPkACF7ziFZXAKLCqaeeqnPOOUeDBw/WuHHjdP755+vHP/6xWrRooc8++0xXXXWVrrnmGv/03377rZKSkurMIzMz0//v5s2ba8SIEfrkk0/8w+bPn6+nn35aJSUl+uqrr/TNN99o6NChJxx7UVGRampqdPLJJ9cZXl1drZSUFP/frVu3Vt++ff1/d+3aVaWlpZKkiooK7d27VyNHjvSPj4uL02mnnaba2tqA4hgyZEideUtSaWmpevToEXxSAI6LAgfAccXFxWn16tVav369XnvtNc2bN0933nmn/vGPf0iSnnrqKZ1xxhn1vhOoZcuW6ZZbbtGcOXOUmZmpdu3a6aGHHtI777xzwrEfOnRIcXFx2rRpU72Y2rZt6/93fHx8nXE+n0+O45zw8huav8/nk6SAiyMAwaPAARAQn8+nrKwsZWVl6e6771bPnj2Vn5+vk046Sdu2bdOUKVOa/P7bb7+tMWPGSPruDM+mTZt0/fXXS5Ly8/M1evRoXXfddf7pP/vss5DEPWzYMNXU1Ki0tFRnnXWWq3kkJSUpNTVV7733nj+HmpoaFRQU1DnL1KJFC9XU1IQibAAniAIHwHG98847WrNmjc4//3x17txZ77zzjsrKyjRgwADde++9mj59upKSknTBBReourpaGzduVHl5uW666Sb/PObPn6+MjAwNGDBADz/8sMrLy/032mZkZOjZZ5/VqlWr1Lt3b/3lL3/Re++9p969e59w7CeffLKmTJmiqVOnas6cORo2bJjKysq0Zs0aDRkyROPHjw9oPjfccINyc3OVnp6u/v37a968eSovL/efjZGkXr166Z133tGOHTvUtm1bdejQ4YTjB+AOBQ6A40pMTNS6dev0yCOPqLKyUj179tScOXN04YUXSvru/pWHHnpIt956q9q0aaPBgwfXe+Hd7NmzNXv2bBUWFio9PV0rV65Ux44dJUm//OUvtXnzZk2aNEk+n0+TJ0/Wddddp1dffTUk8S9cuFC//e1vdfPNN+vzzz9Xx44dNWrUKF188cUBz+O2227Tnj17NHXqVMXFxekXv/iFxo0bV+ey1y233KJp06Zp4MCB+uqrr7R9+/aQxA8geD4nlBeZAeAYO3bsUO/evbV58+aQ3DRsitraWg0YMEA/+clPdP/990c6HADH4AwOAARg586deu2115Sdna3q6mo99thj2r59u372s59FOjQADeBFfwCiSklJidq2bdvop6SkJCzLbdasmRYtWqTTTz9dWVlZKioq0uuvv64BAwaEZXkATgyXqABElW+//bZOC4Rj9erVS82bc3IaiHUUOAAAwDpcogIAANahwAEAANahwAEAANahwAEAANahwAEAANahwAEAANahwAEAANb5/wDIvDsJwqTttwAAAABJRU5ErkJggg==\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "iris.plot(kind='box')\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 430
+ },
+ "id": "PiN3pnrXJiCX",
+ "outputId": "c14505b8-c95d-4143-f455-dc70807cb1a7"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAALx9JREFUeJzt3Xl0VFW+9vGnkpBKIANTAkECwQQ1zCpTApFwQWlaXCAX2xZ8Bafb3YLCRVZjtFVoheByik3TOANXmbwYwKZVHNogCiigKCAECEFQowEvZEAISWW/f9ipphSQSnZVpZLvZ61aoU6dc/avsjlVT3btOsdhjDECAACwICTQBQAAgIaDYAEAAKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAmjB/N1hdXa1vvvlG0dHRcjgc/m4eAADUgjFGZWVlateunUJCzj4u4fdg8c033ygxMdHfzQIAAAsOHTqk9u3bn/VxvweL6OhoST8WFhMT4+/mAQBALZSWlioxMdH9Pn42fg8WNR9/xMTEECwAAAgyvzSNgcmbAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAar4KFy+XS/fffr06dOikyMlLJycl66KGHZIzxVX0AACCIePV100ceeUTz58/XokWL1LVrV23ZskU333yzYmNjddddd/mqRgAAECS8ChYbNmzQyJEjdfXVV0uSkpKStHTpUn388cc+KQ4AAAQXrz4KSU9P17vvvqs9e/ZIkj777DN98MEHGj58+Fm3qaioUGlpqccNAAA0TF6NWNxzzz0qLS3VJZdcotDQULlcLs2aNUvjxo076zbZ2dmaOXNmnQsFAAD1n1cjFq+88ooWL16sJUuW6JNPPtGiRYv02GOPadGiRWfdJisrSyUlJe7boUOH6lw0AAConxzGi690JCYm6p577tHEiRPdyx5++GG9/PLL2r1793nto7S0VLGxsSopKeFaIQAABInzff/26qOQH3744WfXYA8NDVV1dXXtqgxCJ065VHC43OvtTla69NXRE2rfIlIRTUK93j45LkqR4d5vBwCAP3kVLK655hrNmjVLHTp0UNeuXfXpp5/qiSee0C233OKr+uqdgsPlGjH3A7+3u+bOgep2Qazf2wUAwBtefRRSVlam+++/XytXrlRxcbHatWunG264QQ888IDCw8PPax/B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vZecCcGiEajv/wnh6frrr9eePXu82sZXIachqG9v+jY15OdWV/Xxd1NUVKThw4ef9/rB+geg38+8CeDcIiMjFRkZGegyAFjWtm3bQJfgF0E/YrFixQp1795dkZGRatWqlYYOHarjx49Lkp5//nmlpqYqIiJCl1xyif72t7+5t6sZclq2bJnS09MVERGhbt26ad26de51XC6Xbr31VnXq1EmRkZG6+OKL9dRTT1mrvaKiQtOmTdMFF1ygZs2aqV+/fsrLy3M/XpO4165dq9TUVEVFRelXv/qVioqK3OtUVVXprrvuUvPmzdWqVStNnz5d48ePd//1OmHCBK1bt05PPfWUHA6HHA6HDhw44N5+69at6t27t5o2bar09HTl5+dbe36+Fix9v2bNGjVv3lwul0uStG3bNjkcDt1zzz3udW677TbdeOONks78l9acOXPUpk0bRUdH69Zbb9XJkyfdj82YMUOLFi3S6tWr3X18+v+j/fv3a/DgwWratKl69uypjRs31up5BEpmZqYmTZqkSZMmKTY2Vq1bt9b999/vvsLiuY6jvLw83XzzzSopKXH/bmbMmCFJeumll9S7d29FR0erbdu2Gjt2rIqLi63VvXr1al122WWKiIjQhRdeqJkzZ6qqqsr9uMPh0PPPP69rr71WTZs2VefOnfXaa6957OO1115T586dFRERocGDB2vRokXuv2DP9dwk6YcfftAtt9yi6OhodejQQc8++6y15+YP9b3fjTGKi4vTihUr3Mt69eqlhIQE9/0PPvhATqdTP/zwg6SffxTy8ccf69JLL1VERIR69+6tTz/91P3YgQMHNHjwYElSixYt5HA4NGHCBPfj1dXV+uMf/6iWLVuqbdu2Hn0fcCaIffPNNyYsLMw88cQTprCw0Hz++edm3rx5pqyszLz88ssmISHBvPrqq2b//v3m1VdfNS1btjQLFy40xhhTWFhoJJn27dubFStWmC+++MLcdtttJjo62hw5csQYY8ypU6fMAw88YDZv3mz2799vXn75ZdO0aVOzfPlydw3jx483I0eOPK96Bw0aZCZPnuy+f9ttt5n09HTz/vvvm3379plHH33UOJ1Os2fPHmOMMQsWLDBNmjQxQ4cONZs3bzZbt241qampZuzYse59PPzww6Zly5YmNzfX7Nq1y/z+9783MTEx7pqOHTtm0tLSzO23326KiopMUVGRqaqqMu+9956RZPr162fy8vLMzp07TUZGhklPT69Dj/hPMPX9sWPHTEhIiNm8ebMxxpicnBzTunVr069fP/c6KSkp5rnnnjPG/NjvsbGx7seWL19unE6nef75583u3bvNfffdZ6Kjo03Pnj2NMcaUlZWZ3/zmN+ZXv/qVu48rKircz/OSSy4xa9asMfn5+WbMmDGmY8eOprKysi6/fr8aNGiQiYqKMpMnTza7d+9298Wzzz5rjDn3cVRRUWFycnJMTEyM+3dTVlZmjDHmhRdeMK+//ropKCgwGzduNGlpaWb48OHudmuOkaNHj/5ijT/ts/fff9/ExMSYhQsXmoKCAvPWW2+ZpKQkM2PGDPc6Nf8HlyxZYvbu3WvuuusuExUVZb7//ntjjDH79+83TZo0MdOmTTO7d+82S5cuNRdccIG7pnM9t44dO5qWLVuaefPmmb1795rs7GwTEhJidu/eXdfu8Jtg6PfRo0ebiRMnGmOM+b//+z8THh5uYmNjza5du4wxP74+DxgwwL2+JLNy5UpjzI/HbVxcnBk7dqzZsWOH+fvf/24uvPBCI8l8+umnpqqqyrz66qtGksnPzzdFRUXm2LFj7t9NTEyMmTFjhtmzZ49ZtGiRcTgc5q233qrz792GoA4WW7duNZLMgQMHfvZYcnKyWbJkiceyhx56yKSlpRlj/v3mMmfOHPfjlZWVpn379uaRRx45a5sTJ040//mf/+m+X9tg8eWXX5rQ0FDz9ddfe6wzZMgQk5WVZYz58cVKktm3b5/78Xnz5pk2bdq477dp08Y8+uij7vtVVVWmQ4cOHjX9NNAY8++D55133nEv+8c//mEkmRMnTpzX8wmkYOv7yy67zN1Po0aNMrNmzTLh4eGmrKzMfPXVV0aSR6A8/U0qLS3N3HHHHR7769evnztYnK2Wmuf5/PPPu5ft3LnTSHK/8AWDQYMGmdTUVFNdXe1eNn36dJOamnrex9Hpv8+z2bx5s5HkfgOqS7AYMmSImT17tsc6L730kklISHDfl2T+9Kc/ue+Xl5cbSeaNN95wP8du3bp57OO+++7zqOlsz61jx47mxhtvdN+vrq428fHxZv78+b/4XOqLYOj3v/zlL6Zr167GGGNWrVpl+vXrZ0aOHOn+PQ8dOtTce++97vVPDxbPPPOMadWqlcfr7fz5893B4ly1DBo0yAwcONBjWZ8+fcz06dN/sWZ/COqPQnr27KkhQ4aoe/fuuu666/Tcc8/p6NGjOn78uAoKCnTrrbcqKirKfXv44YdVUFDgsY+0tDT3v8PCwtS7d2/t2rXLvWzevHm6/PLLFRcXp6ioKD377LM6ePBgnWvfvn27XC6XLrroIo8a161b51Fj06ZNlZyc7L6fkJDgHrYrKSnRd999p759+7ofDw0N1eWXX37edfTo0cNj35KsDgf7SrD1/aBBg5SXlydjjNavX6/Ro0crNTVVH3zwgdatW6d27dqpc+fOZ9x2165d6tev31lr/yXB2sen69+/vxwOh/t+Wlqa9u7de97H0Zls3bpV11xzjTp06KDo6GgNGjRIkqwc35999pn+/Oc/e9R0++23q6ioyD0sLnn2TbNmzRQTE+Pum/z8fPXp08djv6cf67/k9H07HA61bduWfpfdfh80aJC++OILHT58WOvWrVNmZqYyMzOVl5enyspKbdiwQZmZmWfcdteuXerRo4ciIiI8nt/5Or1/Jc/3hkAL6smboaGhevvtt7Vhwwa99dZbmjt3ru677z79/e9/lyQ999xzP3tBDg0NPe/9L1u2TNOmTdPjjz+utLQ0RUdH69FHH9VHH31U59rLy8sVGhqqrVu3/qymqKgo97+bNGni8ZjD4XB/xmjD6fuvOYCrq6ut7d9Xgq3vMzMz9eKLL+qzzz5TkyZNdMkll7hfgI4ePep+cfOFYO3j83G+x9FPHT9+XMOGDdOwYcO0ePFixcXF6eDBgxo2bJhOnTplpa6ZM2dq9OjRP3vs9DeSMx3ftvrGl/sOtPrS7927d1fLli21bt06rVu3TrNmzVLbtm31yCOPaPPmzaqsrFR6errX+z0f9bl/gzpYSD/+MgcMGKABAwbogQceUMeOHfXhhx+qXbt22r9/v8aNG3fO7Tdt2qQrrrhC0o8TIbdu3apJkyZJkj788EOlp6frjjvucK//S2n4fF166aVyuVwqLi5WRkZGrfYRGxurNm3aaPPmze7n4HK59Mknn3ic4yA8PNw9cbAhCaa+z8jIUFlZmZ588kl3iMjMzNScOXN09OhR3X333WfdNjU1VR999JFuuukmj9pP11D7uMZPA92mTZvUuXPn8zqOzvS72b17t77//nvNmTNHiYmJkqQtW7ZYq/eyyy5Tfn6+UlJSar2Piy++WK+//rrHss2bN3vcp98D2+8Oh0MZGRlavXq1du7cqYEDB6pp06aqqKjQM888o969e6tZs2Zn3DY1NVUvvfSSTp486Q6bZzquJQVdHwf1RyEfffSRZs+erS1btujgwYPKzc3V4cOHlZqaqpkzZyo7O1t/+ctftGfPHm3fvl0LFizQE0884bGPefPmaeXKldq9e7cmTpyoo0eP6pZbbpEkde7cWVu2bNHatWu1Z88e3X///T87sGvroosu0rhx43TTTTcpNzdXhYWF+vjjj5Wdna1//OMf572fO++8U9nZ2Vq9erXy8/M1efJkHT161GP4MCkpSR999JEOHDigI0eO1JtUWxfB1vctWrRQjx49tHjxYvfQ6BVXXKFPPvlEe/bsOeeIxeTJk/Xiiy9qwYIF2rNnjx588EHt3LnTY52kpCR9/vnnys/P15EjR1RZWVnrWuujgwcPaurUqcrPz9fSpUs1d+5cTZ48+byOo6SkJJWXl+vdd9/VkSNH9MMPP6hDhw4KDw/X3LlztX//fr322mt66KGHrNX7wAMP6H/+5380c+ZM7dy5U7t27dKyZcv0pz/96bz38bvf/U67d+/W9OnTtWfPHr3yyitauHChpH+PPJ3puTUkwdDvmZmZWrp0qXr16qWoqCiFhIToiiuu0OLFi895XI8dO1YOh0O33367vvjiC73++ut67LHHPNbp2LGjHA6H1qxZo8OHD6u8vLxOtfpNoCd51MUXX3xhhg0bZuLi4ozT6TQXXXSRmTt3rvvxxYsXm169epnw8HDTokULc8UVV5jc3FxjzL8nti1ZssT07dvXhIeHmy5duph//vOf7u1PnjxpJkyYYGJjY03z5s3NH/7wB3PPPff84qS5s/npJMqabx4kJSWZJk2amISEBHPttdeazz//3Bhz5slHK1euNKd3W2VlpZk0aZKJiYkxLVq0MNOnTzfXXXed+e1vf+teJz8/3/Tv399ERkYaSaawsPCMk4I+/fRT9+P1XbD1vTHGTJ48+WcTJ3v27Gnatm3rsd6Z+n3WrFmmdevWJioqyowfP9788Y9/9KiluLjYXHnllSYqKspIMu+99577edZMBDPGmKNHj7ofDxaDBg0yd9xxh/sbTy1atDD33nuve1LfLx1Hxhjz+9//3rRq1cpIMg8++KAxxpglS5aYpKQk43Q6TVpamnnttdfOa+LcmZypz958802Tnp5uIiMjTUxMjOnbt6/7Gw3GeE7kqxEbG2sWLFjgvr969WqTkpJinE6nyczMdE/uO33C35meW8eOHc2TTz7pse+ePXu6Hw8GwdDvxvz7dfP0iZNPPvmkkWTefPNNj3V/2ucbN240PXv2NOHh4aZXr17ub4Gcfsz++c9/Nm3btjUOh8OMHz/e/bv56YT8kSNHuh8PtEZ72fQDBw6oU6dO+vTTT3/x1MjBpLq6WqmpqfrNb35j9S+whqSh9n1DlZmZqV69enGKakmzZs3S008/rUOHDgW6FJ+j34NX0M+xaOy+/PJLvfXWWxo0aJAqKir017/+VYWFhRo7dmygSwNQR3/729/Up08ftWrVSh9++KEeffRR9zwgoL4K6jkW9cnBgwc9vvb005uNr7CdSUhIiBYuXKg+ffpowIAB2r59u9555x2lpqb6pD38XKD6Hv4zfPjws/bv7Nmzfdbu3r17NXLkSHXp0kUPPfSQ7r777vp1hsUGLlD9Huwa7UchtlVVVXmcKvunkpKSFBbGAFFDRN83fF9//bVOnDhxxsdatmypli1b+rki+AP9XjsECwAAYA0fhQAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACs+f+41bu3M2fN+AAAAABJRU5ErkJggg==\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# slicing of features and target\n",
+ "\n",
+ "X = iris.iloc[:,:-1] # rows, columns\n",
+ "y = iris.iloc[:,-1]"
+ ],
+ "metadata": {
+ "id": "S2O9UYO2J_Sv"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "X"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 423
+ },
+ "id": "hSYYvvPSKfwP",
+ "outputId": "ed8154ef-13c6-4279-ef76-2e3019ec0c95"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " sepal_length sepal_width petal_length petal_width\n",
+ "0 5.1 3.5 1.4 0.2\n",
+ "1 4.9 3.0 1.4 0.2\n",
+ "2 4.7 3.2 1.3 0.2\n",
+ "3 4.6 3.1 1.5 0.2\n",
+ "4 5.0 3.6 1.4 0.2\n",
+ ".. ... ... ... ...\n",
+ "145 6.7 3.0 5.2 2.3\n",
+ "146 6.3 2.5 5.0 1.9\n",
+ "147 6.5 3.0 5.2 2.0\n",
+ "148 6.2 3.4 5.4 2.3\n",
+ "149 5.9 3.0 5.1 1.8\n",
+ "\n",
+ "[150 rows x 4 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " sepal_length \n",
+ " sepal_width \n",
+ " petal_length \n",
+ " petal_width \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 5.1 \n",
+ " 3.5 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 4.9 \n",
+ " 3.0 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.7 \n",
+ " 3.2 \n",
+ " 1.3 \n",
+ " 0.2 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4.6 \n",
+ " 3.1 \n",
+ " 1.5 \n",
+ " 0.2 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5.0 \n",
+ " 3.6 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 145 \n",
+ " 6.7 \n",
+ " 3.0 \n",
+ " 5.2 \n",
+ " 2.3 \n",
+ " \n",
+ " \n",
+ " 146 \n",
+ " 6.3 \n",
+ " 2.5 \n",
+ " 5.0 \n",
+ " 1.9 \n",
+ " \n",
+ " \n",
+ " 147 \n",
+ " 6.5 \n",
+ " 3.0 \n",
+ " 5.2 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 148 \n",
+ " 6.2 \n",
+ " 3.4 \n",
+ " 5.4 \n",
+ " 2.3 \n",
+ " \n",
+ " \n",
+ " 149 \n",
+ " 5.9 \n",
+ " 3.0 \n",
+ " 5.1 \n",
+ " 1.8 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
150 rows × 4 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "X",
+ "summary": "{\n \"name\": \"X\",\n \"rows\": 150,\n \"fields\": [\n {\n \"column\": \"sepal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8280661279778629,\n \"min\": 4.3,\n \"max\": 7.9,\n \"num_unique_values\": 35,\n \"samples\": [\n 6.2,\n 4.5,\n 5.6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sepal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.4335943113621737,\n \"min\": 2.0,\n \"max\": 4.4,\n \"num_unique_values\": 23,\n \"samples\": [\n 2.3,\n 4.0,\n 3.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.7644204199522617,\n \"min\": 1.0,\n \"max\": 6.9,\n \"num_unique_values\": 43,\n \"samples\": [\n 6.7,\n 3.8,\n 3.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal_width\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7631607417008414,\n \"min\": 0.1,\n \"max\": 2.5,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.2,\n 1.2,\n 1.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {},
+ "execution_count": 27
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "y"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 458
+ },
+ "id": "EXfKBRRjKiK_",
+ "outputId": "2bf233a9-46ef-4d6d-9e83-69c11056665b"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "0 setosa\n",
+ "1 setosa\n",
+ "2 setosa\n",
+ "3 setosa\n",
+ "4 setosa\n",
+ " ... \n",
+ "145 virginica\n",
+ "146 virginica\n",
+ "147 virginica\n",
+ "148 virginica\n",
+ "149 virginica\n",
+ "Name: species, Length: 150, dtype: object"
+ ],
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " species \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 145 \n",
+ " virginica \n",
+ " \n",
+ " \n",
+ " 146 \n",
+ " virginica \n",
+ " \n",
+ " \n",
+ " 147 \n",
+ " virginica \n",
+ " \n",
+ " \n",
+ " 148 \n",
+ " virginica \n",
+ " \n",
+ " \n",
+ " 149 \n",
+ " virginica \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
150 rows × 1 columns
\n",
+ "
dtype: object "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 28
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# test train split\n",
+ "# from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)"
+ ],
+ "metadata": {
+ "id": "V8AJgCrfKUNn"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "print(X_test.shape)\n",
+ "print(X_train.shape)\n",
+ "print(y_test.shape)\n",
+ "print(y_train.shape)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "jXFlFHvjLFaP",
+ "outputId": "9d019779-f72e-4a35-8dd4-db9a5f4dece3"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "(30, 4)\n",
+ "(120, 4)\n",
+ "(30,)\n",
+ "(120,)\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# train model\n",
+ "model = LogisticRegression()\n",
+ "model.fit(X_train, y_train)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 79
+ },
+ "id": "UaZv1f5ML2ho",
+ "outputId": "28213e7e-470a-4496-b054-288cbad2996c"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "LogisticRegression()"
+ ],
+ "text/html": [
+ "LogisticRegression() 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. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 34
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#print accuracy of model\n",
+ "accuracy = model.score(X_test, y_test)\n",
+ "print(f\"{accuracy * 100} %\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "_7TSGu9ZMAAg",
+ "outputId": "e7537b4c-863b-4599-a30b-a026f0c91128"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "100.0 %\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# print classification report\n",
+ "from sklearn.metrics import classification_report\n",
+ "y_pred = model.predict(X_test)\n",
+ "print(classification_report(y_test, y_pred))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "-hYX2fVAMHNP",
+ "outputId": "e7b32306-8422-4448-b7c8-8198783b705d"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " setosa 1.00 1.00 1.00 10\n",
+ " versicolor 1.00 1.00 1.00 9\n",
+ " virginica 1.00 1.00 1.00 11\n",
+ "\n",
+ " accuracy 1.00 30\n",
+ " macro avg 1.00 1.00 1.00 30\n",
+ "weighted avg 1.00 1.00 1.00 30\n",
+ "\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Confusion matrix\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "cm = confusion_matrix(y_test, y_pred)\n",
+ "cm"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "czeQAtPZMOEw",
+ "outputId": "a556e733-618c-4ec7-e1ae-2edbc2acb666"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([[10, 0, 0],\n",
+ " [ 0, 9, 0],\n",
+ " [ 0, 0, 11]])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 43
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# confusion matrix using seaborn\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "sns.heatmap(cm, annot=True)\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 430
+ },
+ "id": "ui1lUNmDMXQG",
+ "outputId": "30d7ec1c-0919-41f9-e351-bc17fca4eaad"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# fit model\n",
+ "model = model.fit(X,y)"
+ ],
+ "metadata": {
+ "id": "dez7PhlwOSlP"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# predict\n",
+ "pred = model.predict([[6.6,2.8,5.8,1.7]])\n",
+ "print(f\"Flower can be: {pred[0]}\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "7l4HWITvOiFQ",
+ "outputId": "a4107a1b-e965-4d1c-fcc6-82509567212a"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Flower can be: virginica\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py:2739: UserWarning: X does not have valid feature names, but LogisticRegression was fitted with feature names\n",
+ " warnings.warn(\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# take input from user using input()\n",
+ "sepal_length = float(input(\"Enter sepal length: \"))\n",
+ "sepal_width = float(input(\"Enter sepal width: \"))\n",
+ "petal_length = float(input(\"Enter petal length: \"))\n",
+ "petal_width = float(input(\"Enter petal width: \"))\n",
+ "\n",
+ "# predict\n",
+ "pred = model.predict([[sepal_length,sepal_width,petal_length,petal_width]])\n",
+ "print(f\"Flower can be: {pred[0]}\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "9hAKfqlUPSpY",
+ "outputId": "1fadd7d7-1498-420f-e704-9826f7ead660"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Enter sepal length: 1.4\n",
+ "Enter sepal width: 2.5\n",
+ "Enter petal length: 6.5\n",
+ "Enter petal width: 3.5\n",
+ "Flower can be: virginica\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py:2739: UserWarning: X does not have valid feature names, but LogisticRegression was fitted with feature names\n",
+ " warnings.warn(\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Saving Trained Model"
+ ],
+ "metadata": {
+ "id": "dPo7ZclgPqPX"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# save model using joblib\n",
+ "import joblib\n",
+ "joblib.dump(model, 'iris_model.pkl')"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "2DD2ksYaPsX-",
+ "outputId": "556de63a-8e54-40f6-b97c-b563aa0b88c4"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "['iris_model.pkl']"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 51
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Loading Saved Model and then Predicting using Saved Model"
+ ],
+ "metadata": {
+ "id": "eJhqOChoQH51"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Predicting using Saved Model\n",
+ "model = joblib.load('iris_model.pkl')\n",
+ "pred = model.predict([[6.6,2.8,5.8,1.7]])\n",
+ "print(f\"Flower can be: {pred[0]}\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "gx0i-sg3P3dG",
+ "outputId": "e37111c9-120b-4dd2-b285-b45929ea6835"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Flower can be: virginica\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py:2739: UserWarning: X does not have valid feature names, but LogisticRegression was fitted with feature names\n",
+ " warnings.warn(\n"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file