diff --git "a/main.ipynb" "b/main.ipynb" new file mode 100644--- /dev/null +++ "b/main.ipynb" @@ -0,0 +1,762 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Weather Prediction Model

\n", + "
Created by: Cristopher Ian Artacho
\n", + "
BSCS 3A
\n", + "\n", + "
Using a dataset from kaggle, the aim of this project is to train a model that could classify the weather into \"snow\", \"drizzle\", \"rain\", \"sunny\", and \"fog\" based on the user input as parameters
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.metrics import classification_report, f1_score\n", + "\n", + "import joblib\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Data Exploration and Preprocessing

\n", + "
In this process, we will get to understand our data, and the dataset. In case that there are missing values, noise, and/or errors in the data, we will need to clean it in order to reduce the complexity of the data, allowing the model to better understand the dataset.
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load dataset\n", + "df = pd.read_csv(\"seattle-weather.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 295, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 1461 entries, 0 to 1460\n", + "Data columns (total 6 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 date 1461 non-null object \n", + " 1 precipitation 1461 non-null float64\n", + " 2 temp_max 1461 non-null float64\n", + " 3 temp_min 1461 non-null float64\n", + " 4 wind 1461 non-null float64\n", + " 5 weather 1461 non-null object \n", + "dtypes: float64(4), object(2)\n", + "memory usage: 68.6+ KB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.drop(columns=['date'], inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We do not need the \"date\" column, because we are mainly focusing on classifying the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sample(frac=1, random_state=42).reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "weather\n", + "rain 641\n", + "sun 640\n", + "fog 101\n", + "drizzle 53\n", + "snow 26\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "print(df[\"weather\"].value_counts())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Feature Engineering

\n", + "
In this process, we will transform the target variable into numerical, in order for the model to understand the different classes in the column
" + ] + }, + { + "cell_type": "code", + "execution_count": 300, + "metadata": {}, + "outputs": [], + "source": [ + "# Define manual mapping\n", + "weather_mapping = {\"rain\": 0, \"sun\": 1, \"fog\": 2, \"drizzle\": 3, \"snow\": 4}\n", + "\n", + "# Apply mapping\n", + "df[\"weather\"] = df[\"weather\"].map(weather_mapping)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8, 6))\n", + "sns.heatmap(df.corr(), annot=True, cmap=\"coolwarm\", fmt=\".2f\")\n", + "plt.title(\"Correlation Matrix\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Training the Model

\n", + "
After mapping the target variable, it is time to train the model in order to help it classify which of the classifications does the weather parameters belong to.For this model, we will use the Decision Trees
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "X = df.drop(columns=['weather'])\n", + "y = df['weather']" + ] + }, + { + "cell_type": "code", + "execution_count": 303, + "metadata": {}, + "outputs": [], + "source": [ + "# Train-test split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 304, + "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": 304, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Train Decision Tree model\n", + "model = DecisionTreeClassifier(random_state=42)\n", + "model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 305, + "metadata": {}, + "outputs": [], + "source": [ + "# Predictions\n", + "y_pred = model.predict(X_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Model Evaluation

\n", + "
After training the model, we will use Evaluation metrics in order to judge if the model's predictions are correct.
" + ] + }, + { + "cell_type": "code", + "execution_count": 306, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Classification Report:\n", + " precision recall f1-score support\n", + "\n", + " 0 0.91 0.95 0.93 139\n", + " 1 0.84 0.78 0.81 125\n", + " 2 0.12 0.21 0.15 14\n", + " 3 0.33 0.17 0.22 12\n", + " 4 0.00 0.00 0.00 3\n", + "\n", + " accuracy 0.80 293\n", + " macro avg 0.44 0.42 0.42 293\n", + "weighted avg 0.81 0.80 0.80 293\n", + "\n", + "\n", + "F1 Score: 0.802114678972584\n" + ] + } + ], + "source": [ + "# Model evaluation\n", + "print(\"\\nClassification Report:\")\n", + "print(classification_report(y_test, y_pred))\n", + "print(\"\\nF1 Score:\", f1_score(y_test, y_pred, average='weighted'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAILCAYAAADxIrpRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABrmElEQVR4nO3dd3hUZfr/8c+QhCRAKiQBBJOIiKAUBRsiLRgsiIANXZWq6K6CfeXn14ING4p1gRWFVXYtgIKoK4qAAoIgxRaRDisILAmTUAJJ5vn9ETJmJmcmZyaTTMK+X9c1V5xT76ecZ26OZ55xGGOMAAAAAHioF+4AAAAAgNqIRBkAAACwQKIMAAAAWCBRBgAAACyQKAMAAAAWSJQBAAAACyTKAAAAgAUSZQAAAMACiTIAAABggUQZQLVxOBx65JFHwh1G2PXs2VM9e/Z0v9+6dascDoemTZsWtpi8ecdY1w0dOlSNGjUKdxi10tChQ5WRkeGxLJBrNSMjQ0OHDg15XEBtRKIM1BGvvfaaHA6HzjnnnKCPsXPnTj3yyCNau3Zt6AKr5RYtWiSHw+F+RUVF6aSTTtKNN96ozZs3hzu8gCxbtkyPPPKI9u/fH5bzt2vXTh07dqyw/IMPPpDD4VCPHj0qrHvjjTfkcDg0f/78kMdz6NAhPfLII1q0aFHIjx1KixYt0qBBg9S0aVPVr19fqampuuyyyzR79uxwh+ZTuPsaUFtEhjsAAPbMmDFDGRkZ+vbbb7Vx40adfPLJAR9j586dGjdunDIyMtSpU6fQB1mLjR49WmeddZaKioq0evVqTZkyRR9//LF++OEHNW/evEZjSU9P1+HDhxUVFRXQfsuWLdO4ceM0dOhQJSYmVk9wfnTr1k1Tp06V0+lUQkKCe/nSpUsVGRmplStXqqioyKNcS5cuVUREhM4777yQx3Po0CGNGzdOkmrt3fCHH35Yjz76qFq3bq1Ro0YpPT1d+/bt0yeffKIrrrhCM2bM0HXXXRfuMHX48GFFRv6REvjra+vXr1e9etxnw/8GejpQB2zZskXLli3T888/r5SUFM2YMSPcIdU5F1xwga6//noNGzZML7/8sp577jnl5uZq+vTpPvc5ePBgtcTicDgUExOjiIiIajl+denWrZtcLpeWLVvmsXzp0qW6+uqrdfjwYX333Xce65YsWaIOHTooLi6uJkOtEcYYHT582Of6mTNn6tFHH9WVV16pn376SePGjdPw4cN17733auHChfr3v/+t+Pj4GozYt5iYGI9E2Z/o6OiA/5EH1FUkykAdMGPGDCUlJenSSy/VlVde6TNR3r9/v+68805lZGQoOjpaLVq00I033qj//ve/WrRokc466yxJ0rBhw9yPIpQ9J+vruUPvZ1ePHj2qhx56SJ07d1ZCQoIaNmyoCy64QAsXLgy4XLt371ZkZKT7rmB569evl8Ph0CuvvCJJKioq0rhx49S6dWvFxMSocePG6tatmz7//POAzytJvXv3llT6jxBJeuSRR+RwOPTzzz/ruuuuU1JSkrp16+be/u2331bnzp0VGxur5ORkDR48WDt27Khw3ClTpqhVq1aKjY3V2Wefra+//rrCNr6eUf7ll1909dVXKyUlRbGxsWrTpo0eeOABd3z33nuvJCkzM9Pdflu3bq2WGK2U1cfSpUvdywoLC7V69WoNGjRIJ510kse6vXv36tdff/Wox99++03Dhw9XWlqaoqOjddppp+mNN97wOI+dPrZ161alpKRIksaNG+euD+/nbH/77TcNGDBAjRo1UkpKiu655x6VlJR4bONyuTRx4kSddtppiomJUVpamkaNGqW8vDyP7TIyMtSvXz999tln6tKli2JjYzV58mSf9fXggw8qOTlZb7zxhmVi2bdvX/Xr18/9fs+ePRoxYoTS0tIUExOjjh07VviHXFnfee6559ztGB0drbPOOksrV66scI4PP/xQp59+umJiYnT66afrgw8+sIy1fN1V1tesxorNmzfrqquuUnJysho0aKBzzz1XH3/8scc2ZY9Bvffee3riiSfUokULxcTEKCsrSxs3bvTYdsOGDbriiivUtGlTxcTEqEWLFho8eLCcTqdl/EB14dELoA6YMWOGBg0apPr16+vaa6/V3/72N61cudKd+ErSgQMHdMEFFygnJ0fDhw/XmWeeqf/+97+aO3eu/vOf/6ht27Z69NFH9dBDD+nmm2/WBRdcIEnq2rVrQLHk5+fr9ddf17XXXqubbrpJBQUFmjp1qvr27atvv/02oEc60tLS1KNHD7333nt6+OGHPda9++67ioiI0FVXXSWp9MN7/PjxGjlypM4++2zl5+dr1apVWr16tS688MKAyiBJmzZtkiQ1btzYY/lVV12l1q1b68knn5QxRpL0xBNP6MEHH9TVV1+tkSNHau/evXr55ZfVvXt3rVmzxv2/pqdOnapRo0apa9euuuOOO7R582b1799fycnJatmypd94vv/+e11wwQWKiorSzTffrIyMDG3atEkfffSRnnjiCQ0aNEi//vqr/vWvf+mFF15QkyZNJMmdLNZEjCeddJKaN2+uJUuWuJetXLlSR48eVdeuXdW1a1ctXbpUd999tyS57zyXJcq7d+/WueeeK4fDodtuu00pKSn69NNPNWLECOXn5+uOO+6QZK+PpaSk6G9/+5tuvfVWDRw4UIMGDZIkdejQwR1bSUmJ+vbtq3POOUfPPfecvvjiC02YMEGtWrXSrbfe6t5u1KhRmjZtmoYNG6bRo0dry5YteuWVV7RmzRotXbrUI8ldv369rr32Wo0aNUo33XST2rRpY1lXGzZs0C+//KLhw4fbupt++PBh9ezZUxs3btRtt92mzMxMvf/++xo6dKj279+vMWPGeGz/z3/+UwUFBRo1apQcDoeeeeYZDRo0SJs3b3bHO3/+fF1xxRVq166dxo8fr3379mnYsGFq0aKF31gq62vedu/era5du+rQoUMaPXq0GjdurOnTp6t///6aOXOmBg4c6LH9U089pXr16umee+6R0+nUM888oz/96U9asWKFpNJ/KPXt21dHjhzR7bffrqZNm+q3337TvHnztH//fo/HfoBqZwDUaqtWrTKSzOeff26MMcblcpkWLVqYMWPGeGz30EMPGUlm9uzZFY7hcrmMMcasXLnSSDJvvvlmhW3S09PNkCFDKizv0aOH6dGjh/t9cXGxOXLkiMc2eXl5Ji0tzQwfPtxjuSTz8MMP+y3f5MmTjSTzww8/eCxv166d6d27t/t9x44dzaWXXur3WFYWLlxoJJk33njD7N271+zcudN8/PHHJiMjwzgcDrNy5UpjjDEPP/ywkWSuvfZaj/23bt1qIiIizBNPPOGx/IcffjCRkZHu5UePHjWpqammU6dOHvUzZcoUI8mjDrds2VKhHbp3727i4uLMtm3bPM5T1nbGGPPss88aSWbLli3VHqMvV111lYmNjTVHjx41xhgzfvx4k5mZaYwx5rXXXjOpqanube+55x4jyfz222/GGGNGjBhhmjVrZv773/96HHPw4MEmISHBHDp0yBhjv4/t3bvXZx8bMmSIkWQeffRRj+VnnHGG6dy5s/v9119/bSSZGTNmeGz373//u8Ly9PR0I8n8+9//9l9Jxpg5c+YYSeaFF16odFtjjJk4caKRZN5++233sqNHj5rzzjvPNGrUyOTn5xtj/ug7jRs3Nrm5uRXO99FHH7mXderUyTRr1szs37/fvWz+/PlGkklPT/c4v3c9+uprxlQcK+644w4jyXz99dfuZQUFBSYzM9NkZGSYkpISY8wf12Lbtm092vfFF1/0GAPWrFljJJn333/fRs0B1YtHL4BabsaMGUpLS1OvXr0klf4v0muuuUbvvPOOx/9CnjVrljp27Fjh7k3ZPqESERGh+vXrSyr9X9a5ubkqLi5Wly5dtHr16oCPN2jQIEVGRurdd991L/vxxx/1888/65prrnEvS0xM1E8//aQNGzYEFffw4cOVkpKi5s2b69JLL9XBgwc1ffp0denSxWO7W265xeP97Nmz5XK5dPXVV+u///2v+9W0aVO1bt3a/TjAqlWrtGfPHt1yyy3u+pFKp+Kq7A7Y3r179dVXX2n48OE68cQTPdbZabuaiLFMt27dPJ5FXrp0qfv/Spx//vnas2ePu42WLl2qzMxMNW/eXMYYzZo1S5dddpmMMR5x9u3bV06n091/QtnHvNvzggsu8Jjt5P3331dCQoIuvPBCj5g6d+6sRo0aVXikKDMzU3379q30vPn5+ZJk+9nsTz75RE2bNtW1117rXhYVFaXRo0frwIEDWrx4scf211xzjZKSkjzKJcldtl27dmnt2rUaMmSIR9teeOGFateuna2Y7Prkk0909tlnezxi06hRI918883aunWrfv75Z4/thw0b5tH/vGMvi/ezzz7ToUOHQhorECgSZaAWKykp0TvvvKNevXppy5Yt2rhxozZu3KhzzjlHu3fv1oIFC9zbbtq0SaeffnqNxDV9+nR16NDB/axwSkqKPv7446CeH2zSpImysrL03nvvuZe9++67ioyMdP/vdEl69NFHtX//fp1yyilq37697r33Xn3//fe2z/PQQw/p888/15dffqnvv/9eO3fu1A033FBhu8zMTI/3GzZskDFGrVu3VkpKiscrJydHe/bskSRt27ZNktS6dWuP/cumo/OnLEEItv1qIsYy5Z9TNsZo2bJlOv/8893xx8fHa+nSpSosLNR3333n3n7v3r3av3+/pkyZUiHGYcOGSZI7Tik0fSwmJqbC4wJJSUkezx5v2LBBTqdTqampFeI6cOCAR0xSxf7hS9mX9AoKCmxtv23bNrVu3brCbBJt27Z1ry/P+x9UZUlzWdl8tbUkn4+LBGvbtm2Wxww29szMTN111116/fXX1aRJE/Xt21evvvoqzycjLHhGGajFvvzyS+3atUvvvPOO3nnnnQrrZ8yYoezs7JCcy9edy5KSEo/ZGd5++20NHTpUAwYM0L333qvU1FRFRERo/Pjx7ud+AzV48GANGzZMa9euVadOnfTee+8pKyvL/WykJHXv3l2bNm3SnDlzNH/+fL3++ut64YUXNGnSJI0cObLSc7Rv3159+vSpdLvY2FiP9y6XSw6HQ59++qnlLBW14UctajLGjh07Ki4uTkuWLNEll1yi3Nxc9x3levXq6ZxzztGSJUvUqlUrHT161J0ou1wuSdL111+vIUOGWB677PniUPUxO7OKuFwupaam+vyCrHei7d0/fDn11FMlST/88IOt7QPlq2zm2HP1tZmd2CdMmKChQ4e6r/fRo0dr/PjxWr58eaXPWAOhRKIM1GIzZsxQamqqXn311QrrZs+erQ8++ECTJk1SbGysWrVqpR9//NHv8fz9b/ykpCTLHxfYtm2bx93GmTNn6qSTTtLs2bM9juf9ZbxADBgwQKNGjXI/fvHrr79q7NixFbZLTk7WsGHDNGzYMB04cEDdu3fXI488YitRDlarVq1kjFFmZqZOOeUUn9ulp6dLKr1DWTajhlQ6W8eWLVssf6ijTFn9Btt+NRFjmYiICJ177rlaunSplixZovj4eLVv3969vmvXrnr33Xfd83yXJcopKSmKi4tTSUlJpf9gsdvHQvFIUatWrfTFF1/o/PPPt50E23HKKaeoTZs2mjNnjl588cVK/7GSnp6u77//Xi6Xy+Ou8i+//OJeH4jybe1t/fr1le4fSN2mp6dbHjPY2Mu0b99e7du31//93/+5/8/FpEmT9Pjjjwd1PCAYPHoB1FKHDx/W7Nmz1a9fP1155ZUVXrfddpsKCgo0d+5cSdIVV1yhdevWWU7/VHanpmHDhpJkmRC3atVKy5cv19GjR93L5s2bV2F6sbK7QeXv/qxYsULffPNN0GVNTExU37599d577+mdd95R/fr1NWDAAI9t9u3b5/G+UaNGOvnkk3XkyJGgz2vHoEGDFBERoXHjxlW4W2eMccfVpUsXpaSkaNKkSR51OG3atEp/3SwlJUXdu3fXG2+8oe3bt1c4Rxlf7VcTMZbXrVs37d27V2+++abOOeccj8Sua9euWr9+vebMmaPGjRu7//d7RESErrjiCs2aNcvyHwR79+51/7fdPtagQQNJ1v3ZrquvvlolJSV67LHHKqwrLi6u0rHHjRunffv2aeTIkSouLq6wfv78+Zo3b54k6ZJLLtHvv//u8ax+cXGxXn75ZTVq1MjyVw/9adasmTp16qTp06d7PLLw+eefV3hm2Iq/scLbJZdcom+//dajfQ4ePKgpU6YoIyMj4Gei8/PzK9RX+/btVa9evWq/3gFv3FEGaqm5c+eqoKBA/fv3t1x/7rnnun985JprrtG9996rmTNn6qqrrtLw4cPVuXNn5ebmau7cuZo0aZI6duyoVq1aKTExUZMmTVJcXJwaNmyoc845R5mZmRo5cqRmzpypiy66SFdffbU2bdqkt99+W61atfI4b79+/TR79mwNHDhQl156qbZs2aJJkyapXbt2OnDgQNDlveaaa3T99dfrtddeU9++fSv8Gli7du3Us2dPde7cWcnJyVq1apVmzpyp2267Lehz2tGqVSs9/vjjGjt2rLZu3aoBAwYoLi5OW7Zs0QcffKCbb75Z99xzj6KiovT4449r1KhR6t27t6655hpt2bJFb775pq3nf1966SV169ZNZ555pm6++WZlZmZq69at+vjjj90/Od65c2dJ0gMPPKDBgwcrKipKl112WY3FWKbsLvE333xTYd7isunfli9frssuu8zjzuRTTz2lhQsX6pxzztFNN92kdu3aKTc3V6tXr9YXX3yh3NxcSfb7WGxsrNq1a6d3331Xp5xyipKTk3X66acH9Kx3jx49NGrUKI0fP15r165Vdna2oqKitGHDBr3//vt68cUXdeWVV9o+XnnXXHONfvjhBz3xxBNas2aNrr32Wvcv8/373//WggUL9M9//lOSdPPNN2vy5MkaOnSovvvuO2VkZGjmzJlaunSpJk6cGNQPtowfP16XXnqpunXrpuHDhys3N1cvv/yyTjvttEqvVV99rSyBLu/+++/Xv/71L1188cUaPXq0kpOTNX36dG3ZskWzZs0K+Ff8vvzyS91222266qqrdMopp6i4uFhvvfWW+x9bQI2q8Xk2ANhy2WWXmZiYGHPw4EGf2wwdOtRERUW5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C/iX+eAfv8wHAABQu1XbL/NJksvl0saNG7Vnzx65XC6Pdd27dw/mkAAAAECtEnCivHz5cl133XXatm2bvG9GOxwOlZSUhCw4AAAAIFwCTpRvueUW98wXzZo1Y0o4AAAAHJcCTpQ3bNigmTNn6uSTT66OeAAAAIBaIeBZL8455xxt3LixOmIBAAAAag1bd5S///5793/ffvvtuvvuu/X777+rffv2ioqK8ti2Q4cOoY0QAAAACANb08PVq1dPDoejwpf33Ac5to4v8zE9HAAAQG0X0unhtmzZErLAAAAAgLrAVqKcnp7u/u+vvvpKXbt2VWSk567FxcVatmyZx7YAAABAXRXwl/l69eql3NzcCsudTqd69eoVkqAAAACAcAs4US57Ftnbvn371LBhw5AEBQAAAISb7XmUBw0aJKn0i3tDhw5VdHS0e11JSYm+//57de3aNfQRAgAAAGFgO1FOSEiQVHpHOS4uTrGxse519evX17nnnqubbrop9BECAAAAYWA7UX7zzTclSRkZGbrnnnt4zAIAAADHNVvzKMM+5lEGAACo3UI6j7K3mTNn6r333tP27dt19OhRj3WrV68O5pAAAABArRLwrBcvvfSShg0bprS0NK1Zs0Znn322GjdurM2bN+viiy+ujhgBAACAGhdwovzaa69pypQpevnll1W/fn3dd999+vzzzzV69Gg5nc7qiBEAAACocQEnytu3b3dPAxcbG6uCggJJ0g033KB//etfoY0OAAAACJOAE+WmTZu6f5nvxBNP1PLlyyVJW7ZsEd8LBAAAwPEi4ES5d+/emjt3riRp2LBhuvPOO3XhhRfqmmuu0cCBA0MeIAAAABAOAU8P53K55HK5FBlZOmHGO++8o2XLlql169YaNWqU6tevXy2B1hVMDwcAAFC72c3XmEc5xEiUAQAAaje7+VrAj15I0tdff63rr79e5513nn777TdJ0ltvvaUlS5YEFy0AAABQywScKM+aNUt9+/ZVbGys1qxZoyNHjkiSnE6nnnzyyZAHCAAAAIRDwIny448/rkmTJunvf/+7oqKi3MvPP/98fpUPAAAAx42AE+X169ere/fuFZYnJCRo//79oYgJAAAACLug5lHeuHFjheVLlizRSSedFJKgAAAAgHALOFG+6aabNGbMGK1YsUIOh0M7d+7UjBkzdM899+jWW2+tjhgBAACAGhcZ6A7333+/XC6XsrKydOjQIXXv3l3R0dG65557dPvtt1dHjAAAAECNsz2P8pYtW5SZmel+f/ToUW3cuFEHDhxQu3bt1KhRo2oLsi5hHmUAAIDazW6+ZvuOcqtWrZSenq5evXqpd+/e6tWrl9q1axeSYAEAAIDaxnai/OWXX2rRokVatGiR/vWvf+no0aM66aST3Elzr169lJaWVp2xAgAAADUmqJ+wLiws1LJly9yJ87fffquioiKdeuqp+umnn6ojzjqDRy8AAABqN7v5WlCJcpmjR49q6dKl+vTTTzV58mQdOHBAJSUlwR7uuECiDAAAULuF/BllqTQxXr58uRYuXKhFixZpxYoVatmypbp3765XXnlFPXr0qHLgAAAAQG1gO1Hu3bu3VqxYoczMTPXo0UOjRo3SP//5TzVr1qw64wMAAADCwnai/PXXX6tZs2bq3bu3evbsqR49eqhx48bVGRsAAAAQNrZ/mW///v2aMmWKGjRooKefflrNmzdX+/btddttt2nmzJnau3dvdcYJAAAA1Kigv8xXUFCgJUuWuJ9XXrdunVq3bq0ff/wx1DHWKXyZDwAAoHazm6/ZvqPsrWHDhkpOTlZycrKSkpIUGRmpnJycYA8HAAAA1Cq2n1F2uVxatWqVFi1apIULF2rp0qU6ePCgTjjhBPXq1UuvvvqqevXqVZ2xAgAAADXGdqKcmJiogwcPqmnTpurVq5deeOEF9ezZU61atarO+AAAAICwsJ0oP/vss+rVq5dOOeWU6owHAAAAqBVsJ8qjRo2qzjgAAACAWiXoL/MBAAAAxzMSZQAAAMACiTIAAABggUQZAAAAsECiDAAAAFggUQYAAAAskCgDAAAAFkiUAQAAAAskygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAALJMoAAACABRJlAAAAwAKJMgAAAGCBRBkAAACwQKIMAAAAWCBRBgAAACyQKAMAAAAWSJQBAAAACyTKAAAAgAUSZQAAAMACiTIAAABggUQZAAAAsECiDAAAAFggUQYAAAAskCgDAAAAFkiUAQAAAAskygAAAICFyHAHAJTJy5N275acTikxUUpNlZKSwh0VUHtxzSAc6ly/q3MBozbhjjJqhR07pMGDpbZtpXPPlU49tfT9jh3hjgyonbhmEA51rt/VuYBR25AoI+zy8qSRI6X58z2Xz59fujwvLzxxAbUV1wzCoc71uzoXMGqjOpEoz5w5U+3bt1dsbKwaN26sPn366ODBgxo6dKgGDBig5557Ts2aNVPjxo31l7/8RUVFRe598/LydOONNyopKUkNGjTQxRdfrA0bNkiSjDFKSUnRzJkz3dt36tRJzZo1c79fsmSJoqOjdejQIcvYjhw5ovz8fI8XArN7d8VxrMz8+aXrAfyBawbhUOf6XZ0LGLVRrU+Ud+3apWuvvVbDhw9XTk6OFi1apEGDBskYI0lauHChNm3apIULF2r69OmaNm2apk2b5t5/6NChWrVqlebOnatvvvlGxhhdcsklKioqksPhUPfu3bVo0SJJpUl1Tk6ODh8+rF9++UWStHjxYp111llq0KCBZXzjx49XQkKC+9WyZctqrY/jkdNZtfXA/xquGYRDnet3dS5g1EZ1IlEuLi7WoEGDlJGRofbt2+vPf/6zGjVqJElKSkrSK6+8olNPPVX9+vXTpZdeqgULFkiSNmzYoLlz5+r111/XBRdcoI4dO2rGjBn67bff9OGHH0qSevbs6U6Uv/rqK51xxhkeyxYtWqQePXr4jG/s2LFyOp3u1w6eewpYQkLV1gP/a7hmEA51rt/VuYBRG9X6RLljx47KyspS+/btddVVV+nvf/+78so9V3TaaacpIiLC/b5Zs2bas2ePJCknJ0eRkZE655xz3OsbN26sNm3aKCcnR5LUo0cP/fzzz9q7d68WL16snj17uhPloqIiLVu2TD179vQZX3R0tOLj4z1eCExampSdbb0uO7t0PYA/cM0gHOpcv6tzAaM2qvWJckREhD7//HN9+umnateunV5++WW1adNGW7ZskSRFRUV5bO9wOORyuWwfv3379kpOTtbixYs9EuXFixdr5cqVKioqUteuXUNaJnhKSpJef73ieJadXbqcWXwAT1wzCIc61+/qXMCojerEPMoOh0Pnn3++zj//fD300ENKT0/XBx98UOl+bdu2VXFxsVasWOFOdvft26f169erXbt27mNfcMEFmjNnjn766Sd169ZNDRo00JEjRzR58mR16dJFDRs2rNbyQWrZUnrnnT+mukxIKP3HPuMYYI1rBuFQ5/pdnQsYtU2tT5RXrFihBQsWKDs7W6mpqVqxYoX27t2rtm3b6vvvv/e7b+vWrXX55Zfrpptu0uTJkxUXF6f7779fJ5xwgi6//HL3dj179tTdd9+tLl26uJ997t69u2bMmKF77723WsuHPyQlMXYBgeCaQTjUuX5X5wJGbVLrH72Ij4/XV199pUsuuUSnnHKK/u///k8TJkzQxRdfbGv/N998U507d1a/fv103nnnyRijTz75xOORjR49eqikpMTjWeSePXtWWAYAAID/HQ5TNs8aQiI/P18JCQlyOp18sQ8AAKAWspuv1fo7ygAAAEA4kCgDAAAAFkiUAQAAAAskygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAALJMoAAACABRJlAAAAwAKJMgAAAGCBRBkAAACwQKIMAAAAWCBRBgAAACyQKAMAAAAWSJQBAAAACyTKAAAAgAUSZQAAAMACiTIAAABggUQZAAAAsECiDAAAAFggUQYAAAAskCgDAAAAFkiUAQAAAAskygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAALJMoAAACABRJlAAAAwAKJMgAAAGCBRBkAAACwQKIMAAAAWCBRBgAAACyQKAMAAAAWSJQBAAAACyTKAAAAgAUSZQAAAMACiTIAAABggUQZAAAAsECiDAAAAFggUQYAAAAskCgDAAAAFkiUAQAAAAskygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAALJMoAAACABRJlAAAAwAKJMgAAAGCBRBkAAACwQKIMAAAAWIgMdwD/q0pKSlRUVBTuMBCEqKgoRUREhDsMAABQzUiUa5gxRr///rv2798f7lBQBYmJiWratKkcDke4QwEAANWERLmGlSXJqampatCgAYlWHWOM0aFDh7Rnzx5JUrNmzcIcEQAAqC4kyjWopKTEnSQ3btw43OEgSLGxsZKkPXv2KDU1lccwAAA4TvFlvhpU9kxygwYNwhwJqqqsDXnOHACA4xeJchjwuEXdRxsCAHD8I1EGAAAALJAoAwAAABZIlFGnORwOffjhh+EOAwAAHIdIlGHbN998o4iICF166aUB7ZeRkaGJEydWT1AAAADVhES5DsrLk375RVqxQlq/vvR9TZg6dapuv/12ffXVV9q5c2fNnBQAACBMSJTrmB07pMGDpbZtpXPPlU49tfT9jh3Ve94DBw7o3Xff1a233qpLL71U06ZN81j/0Ucf6ayzzlJMTIyaNGmigQMHSpJ69uypbdu26c4775TD4XDPFvHII4+oU6dOHseYOHGiMjIy3O9XrlypCy+8UE2aNFFCQoJ69Oih1atXV2cxAQAA3EiU65C8PGnkSGn+fM/l8+eXLq/OO8vvvfeeTj31VLVp00bXX3+93njjDRljJEkff/yxBg4cqEsuuURr1qzRggULdPbZZ0uSZs+erRYtWujRRx/Vrl27tGvXLtvnLCgo0JAhQ7RkyRItX75crVu31iWXXKKCgoJqKSMAAEB5/DJfHbJ7d8Ukucz8+aXrk5Kq59xTp07V9ddfL0m66KKL5HQ6tXjxYvXs2VNPPPGEBg8erHHjxrm379ixoyQpOTlZERERiouLU9OmTQM6Z+/evT3eT5kyRYmJiVq8eLH69etXxRIBAAD4xx3lOsTprNr6YK1fv17ffvutrr32WklSZGSkrrnmGk2dOlWStHbtWmVlZYX8vLt379ZNN92k1q1bKyEhQfHx8Tpw4IC2b98e8nMBAAB4445yHZKQULX1wZo6daqKi4vVvHlz9zJjjKKjo/XKK68oNjY24GPWq1fP/ehGGe+fgx4yZIj27dunF198Uenp6YqOjtZ5552no0ePBlcQAACAAHBHuQ5JS5Oys63XZWeXrg+14uJi/eMf/9CECRO0du1a92vdunVq3ry5/vWvf6lDhw5asGCBz2PUr19fJSUlHstSUlL0+++/eyTLa9eu9dhm6dKlGj16tC655BKddtppio6O1n//+9+Qlg8AAMAX7ijXIUlJ0uuvV/xCX3Z26fLqeD553rx5ysvL04gRI5Tgdcv6iiuu0NSpU/Xss88qKytLrVq10uDBg1VcXKxPPvlEf/3rXyWVzqP81VdfafDgwYqOjlaTJk3Us2dP7d27V88884yuvPJK/fvf/9ann36q+Ph49/Fbt26tt956S126dFF+fr7uvffeoO5eAwAABIM7ynVMy5bSO+9IOTnS8uWlf995p3R5dZg6dar69OlTIUmWShPlVatWKTk5We+//77mzp2rTp06qXfv3vr222/d2z366KPaunWrWrVqpZSUFElS27Zt9dprr+nVV19Vx44d9e233+qee+6pcO68vDydeeaZuuGGGzR69GilpqZWT0EBAAC8OIz3g6Kokvz8fCUkJMjpdHrcHZWkwsJCbdmyRZmZmYqJiQlThAgF2hIAgLrLX75WHneUAQAAAAskygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAALkeEOwFvPnj3VqVMnTZw40XL91q1blZmZqTVr1qhTp05VOtcjjzyiDz/8UGvXrq3ScVBFxcVSUZFUUqKht96q/fn5+nDOHEmV94fqsmjRIvXq1Ut5eXlKTEz0uZ3TKW3dWvo3MVFKTZWSkio5eF6etHt3pTvZ3CwEOwWmBk5Rp+TlSXv2SCUlpV354EEpObma6yWMjVC4K0/19u6WcTrlSEyUq0mqYprVvQ5Q1/txXY8f1gJt16r0g+rsQ8fLOCFJMrVMjx49zJgxY3yuLy4uNrt27TJFRUVVPtfDDz9sOnbsWOXjlOd0Oo0k43Q6K6w7fPiw+fnnn83hw4dDes6aMGTIECPJSDJRUVGmVatWZty4cVVvhyNHjFm/3piVK41ZudIMufRSc3lWVulyY8y+fftMfn6+rUMtXLjQSDJ5eXlVi8nGsQ4fPmy+//5n86c/HTaScb+ys43Zvt3PgbdvL92okp1sbhbUsauiBk5Rp2zfbkz//sbMnWtMVlYN1UsYG+HIxu2muI/nuYv7ZJsjG+tWB6jr/biuxw9rgbZrVfpBdfahujJO+MvXyqtTifKRY8lTqNTZRDk315icHGOWLzfml19K31ezIUOGmIsuusjs2rXLbN261bz22mvG4XCYJ598ssK2ttupqMgjSXYnyj16lC4PMAmvyUS5oOCwWbjwZ5Oe7pkolw02lk2Sm1txZLLYyeZmQR27KmrgFHVKWX088EDFJLna6iWMjXB4Z26FD7/yH4KHd9aNDlDX+3Fdjx/WAm3XqvSD6uxDdWmcsJsoh/UZ5YMHD+rGG29Uo0aN1KxZM02YMMFjfUZGhh577DHdeOONio+P180336ytW7fK4XC4H5cYOnSoHA5HhdeiRYu0aNEiy3VDhw71GdPrr7+utm3bKiYmRqeeeqpee+01v2U4cuSI8vPzPV7VascOafBgqW1b6dxzpVNPLX2/Y0f1nldSdHS0mjZtqvT0dN16663q06eP5s6dq6FDh2rAgAF64okn1Lx5c7Vp0+ZYqDt09dVXKzExUcnJybr88su1detW9/FKCgt117hxSuzVS4379NF9L70kU7YyP18qKlLPnj11xx13uPc5cuSI/vrXv6ply5aKjo7WySefrKlTp2rr1q3q1auXJCkpKcmjnV0ul8aPH6/MzEzFxsaqY8eOmjlzpkfZPvnkE51yyimKjY1Vr169POK0UlwsFRZar5s/v/R/Z1Wwe3fpykp2srlZUMeuiho4RZ1SVh/nnistWGC9TcjrJYyNUG/vbkV8YX3uiC/mq97eutEB6no/ruvxw1qg7VqVflCdfeh4GSfKC2uifO+992rx4sWaM2eO5s+fr0WLFmn16tUe2zz33HPq2LGj1qxZowcffLDCMV588UXt2rXL/RozZoxSU1N16qmnqmvXrh7rvvzyS8XExKh79+6W8cyYMUMPPfSQnnjiCeXk5OjJJ5/Ugw8+qOnTp/ssw/jx45WQkOB+tWzZsmqV4k9enjRyZMUePn9+6fK8vOo7t4XY2FgdPXpUkrRgwQKtX79en3/+uebNm6eioiL17dtXcXFx+vrrr7V06VI1atRIF110kXufCS+8oGnz5umNBx/Ukr//Xbn5+fpg0aI/TlBSUuGcN954o/71r3/ppZdeUk5OjiZPnqxGjRqpZcuWmjVrliRp/fr12rVrl1588UVJpW30j3/8Q5MmTdJPP/2kO++8U9dff70WL14sqTShHzRokC677DKtXbtWI0eO1P333++37BaheXA67S6suN7mZkEduypq4BR1Sll5ff2DyXu7kJ60Rk7myVRy7MrW1xZ1vR/X9fhhLdB2rUo/qM4+dLyME+WF7ct8Bw4c0NSpU/X2228rKytLkjR9+nS1aNHCY7vevXvr7rvvdr/3vtNXlqBK0uzZszV58mR98cUXatq0qSS5/+7bt08jR47U8OHDNXz4cMuYHn74YU2YMEGDBg2SJGVmZurnn3/W5MmTNWTIEMt9xo4dq7vuusv9Pj8/v/qSZTv/DKyBb3MYY7RgwQJ99tlnuv3227V37141bNhQr7/+uurXry9Jevvtt+VyufT666/L4XBIkt58800lJiZq0aJFys7O1sTXXtPYoUM1qHdvSdKk++/XZ99888eJIiI8zvvrr7/qvffe0+eff64+ffpIkk466ST3+uTkZElSamqq+wt4R44c0ZNPPqkvvvhC5513nnufJUuW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jYqLi3PfCU9OTlZhYaE2bdqk5ORkDR06VH379tVll12mF198Ubt27apq9QBASJAoA0AdFRMTowsvvFAPPvigli1bpqFDh+rhhx/W1q1b1a9fP3Xo0EGzZs3Sd999536O+OjRo+79o6KiPI7ncDgsl7lcrqBjPHDggDp37qy1a9d6vH799Vddd911kqQ333xT33zzjbp27ap3331Xp5xyipYvXx70OQEgVEiUAeA40a5dOx08eFDfffedXC6XJkyYoHPPPVennHKKdu7cGbLzeCexy5cvV9u2bS23PfPMM7Vhwwalpqbq5JNP9nglJCS4tzvjjDM0duxYLVu2TKeffrr++c9/hixeAAgWiTIA1DH79u1T79699fbbb+v777/Xli1b9P777+uZZ57R5ZdfrpNPPllFRUV6+eWXtXnzZr311lvuZ4xDYenSpXrmmWf066+/6tVXX9X777+vMWPGWG77pz/9SU2aNNHll1+ur7/+Wlu2bNGiRYs0evRo/ec//9GWLVs0duxYffPNN9q2bZvmz5+vDRs2+Ey8AaAmMY8yANQxjRo10jnnnKMXXnhBmzZtUlFRkVq2bKmbbrpJ/+///T/Fxsbq+eef19NPP62xY8eqe/fuGj9+vG688caQnP/uu+/WqlWrNG7cOMXHx+v5559X3759Lbdt0KCBvvrqK/31r3/VoEGDVFBQoBNOOEFZWVmKj4/X4cOH9csvv2j69Onat2+fmjVrpr/85S8aNWpUSGIFgKpg1gsAgG0ZGRm64447dMcdd4Q7FACodjx6AQAAAFggUQYAAAAs8OgFAAAAYIE7ygAAAIAFEmUAAADAAokyAAAAYIFEGQAAALBAogwAAABYIFEGAAAALJAoAwAAABZIlAEAAAAL/x8KuxFD+9p/DAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "reverse_mapping = {v: k for k, v in weather_mapping.items()}\n", + "\n", + "y_test_labels = [reverse_mapping[val] for val in y_test]\n", + "y_pred_labels = [reverse_mapping[val] for val in y_pred]\n", + "\n", + "# Plot actual vs predicted values\n", + "plt.figure(figsize=(8, 6))\n", + "sns.scatterplot(x=range(len(y_test)), y=y_test_labels, label='Actual', color='blue')\n", + "sns.scatterplot(x=range(len(y_pred)), y=y_pred_labels, label='Predicted', color='red')\n", + "plt.xticks([])\n", + "plt.xlabel(\"Samples\")\n", + "plt.ylabel(\"Weather Condition\")\n", + "plt.title(\"Actual vs Predicted Weather Conditions\")\n", + "plt.legend()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 308, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model saved successfully!\n" + ] + } + ], + "source": [ + "#SAVING THE MODEL AS A .pkl FILE\n", + "joblib.dump(model, \"weather_model.pkl\")\n", + "print(\"Model saved successfully!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}