{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "fv9OoQsMFk5A" }, "source": [ "# സപ്പോർട്ട് വെക്ടർ റിഗ്രസർ ഉപയോഗിച്ച് ടൈം സീരീസ് പ്രവചനം\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ഈ നോട്ട്‌ബുക്കിൽ, ഞങ്ങൾ താഴെ പറയുന്നവ കാണിക്കുന്നു:\n", "\n", "- SVM റെഗ്രസർ മോഡലിനായി 2D ടൈം സീരീസ് ഡാറ്റ പരിശീലനത്തിന് തയ്യാറാക്കുക\n", "- RBF കർണൽ ഉപയോഗിച്ച് SVR നടപ്പിലാക്കുക\n", "- പ്ലോട്ടുകളും MAPE ഉപയോഗിച്ച് മോഡൽ വിലയിരുത്തുക\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## മോഡ്യൂളുകൾ ഇറക്കുമതി ചെയ്യൽ\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.path.append('../../')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "M687KNlQFp0-" }, "outputs": [], "source": [ "import os\n", "import warnings\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import datetime as dt\n", "import math\n", "\n", "from sklearn.svm import SVR\n", "from sklearn.preprocessing import MinMaxScaler\n", "from common.utils import load_data, mape" ] }, { "cell_type": "markdown", "metadata": { "id": "Cj-kfVdMGjWP" }, "source": [ "## ഡാറ്റ തയ്യാറാക്കൽ\n" ] }, { "cell_type": "markdown", "metadata": { "id": "8fywSjC6GsRz" }, "source": [ "### ഡാറ്റ ലോഡ് ചെയ്യുക\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 363 }, "id": "aBDkEB11Fumg", "outputId": "99cf7987-0509-4b73-8cc2-75d7da0d2740" }, "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", "
load
2012-01-01 00:00:002698.0
2012-01-01 01:00:002558.0
2012-01-01 02:00:002444.0
2012-01-01 03:00:002402.0
2012-01-01 04:00:002403.0
\n", "
" ], "text/plain": [ " load\n", "2012-01-01 00:00:00 2698.0\n", "2012-01-01 01:00:00 2558.0\n", "2012-01-01 02:00:00 2444.0\n", "2012-01-01 03:00:00 2402.0\n", "2012-01-01 04:00:00 2403.0" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "energy = load_data('../../data')[['load']]\n", "energy.head(5)" ] }, { "cell_type": "markdown", "metadata": { "id": "O0BWP13rGnh4" }, "source": [ "### ഡാറ്റ പ്ലോട്ട് ചെയ്യുക\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 486 }, "id": "hGaNPKu_Gidk", "outputId": "7f89b326-9057-4f49-efbe-cb100ebdf76d" }, "outputs": [], "source": [ "energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", "plt.xlabel('timestamp', fontsize=12)\n", "plt.ylabel('load', fontsize=12)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "IPuNor4eGwYY" }, "source": [ "### പരിശീലനവും പരിശോധനാ ഡാറ്റയും സൃഷ്ടിക്കുക\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ysvsNyONGt0Q" }, "outputs": [], "source": [ "train_start_dt = '2014-11-01 00:00:00'\n", "test_start_dt = '2014-12-30 00:00:00'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 548 }, "id": "SsfdLoPyGy9w", "outputId": "d6d6c25b-b1f4-47e5-91d1-707e043237d7" }, "outputs": [], "source": [ "energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \\\n", " .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \\\n", " .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)\n", "plt.xlabel('timestamp', fontsize=12)\n", "plt.ylabel('load', fontsize=12)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "XbFTqBw6G1Ch" }, "source": [ "### പരിശീലനത്തിനായി ഡാറ്റ തയ്യാറാക്കൽ\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ഇപ്പോൾ, നിങ്ങളുടെ ഡാറ്റ ഫിൽട്ടറിംഗ് ചെയ്യുകയും സ്കെയിലിംഗ് ചെയ്യുകയും ചെയ്ത് പരിശീലനത്തിനായി തയ്യാറാക്കേണ്ടതാണ്.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cYivRdQpHDj3", "outputId": "a138f746-461c-4fd6-bfa6-0cee094c4aa1" }, "outputs": [], "source": [ "train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]\n", "test = energy.copy()[energy.index >= test_start_dt][['load']]\n", "\n", "print('Training data shape: ', train.shape)\n", "print('Test data shape: ', test.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ഡാറ്റയെ (0, 1) പരിധിയിലാക്കുക.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 363 }, "id": "3DNntGQnZX8G", "outputId": "210046bc-7a66-4ccd-d70d-aa4a7309949c" }, "outputs": [], "source": [ "scaler = MinMaxScaler()\n", "train['load'] = scaler.fit_transform(train)\n", "train.head(5)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "26Yht-rzZexe", "outputId": "20326077-a38a-4e78-cc5b-6fd7af95d301" }, "outputs": [], "source": [ "test['load'] = scaler.transform(test)\n", "test.head(5)" ] }, { "cell_type": "markdown", "metadata": { "id": "x0n6jqxOQ41Z" }, "source": [ "### സമയ ഘട്ടങ്ങളോടെ ഡാറ്റ സൃഷ്ടിക്കൽ\n" ] }, { "cell_type": "markdown", "metadata": { "id": "fdmxTZtOQ8xs" }, "source": [ "നമ്മുടെ SVR-ക്കായി, ഇൻപുട്ട് ഡാറ്റയെ `[batch, timesteps]` എന്ന രൂപത്തിലാക്കുന്നു. അതിനാൽ, നിലവിലുള്ള `train_data`യും `test_data`യും പുനരൂപപ്പെടുത്തുന്നു, അതിലൂടെ ഒരു പുതിയ ഡൈമെൻഷൻ timesteps-നെ സൂചിപ്പിക്കും. നമ്മുടെ ഉദാഹരണത്തിന്, `timesteps = 5` എടുക്കുന്നു. അതിനാൽ, മോഡലിന് നൽകുന്ന ഇൻപുട്ടുകൾ ആദ്യ 4 timesteps-ലെ ഡാറ്റയാണ്, ഔട്ട്പുട്ട് 5ആം timestep-ലെ ഡാറ്റ ആയിരിക്കും.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Rpju-Sc2HFm0" }, "outputs": [], "source": [ "# Converting to numpy arrays\n", "\n", "train_data = train.values\n", "test_data = test.values" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Selecting the timesteps\n", "\n", "timesteps=None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "O-JrsrsVJhUQ", "outputId": "c90dbe71-bacc-4ec4-b452-f82fe5aefaef" }, "outputs": [], "source": [ "# Converting data to 2D tensor\n", "\n", "train_data_timesteps=None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "exJD8AI7KE4g", "outputId": "ce90260c-f327-427d-80f2-77307b5a6318" }, "outputs": [], "source": [ "# Converting test data to 2D tensor\n", "\n", "test_data_timesteps=None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2u0R2sIsLuq5" }, "outputs": [], "source": [ "x_train, y_train = None\n", "x_test, y_test = None\n", "\n", "print(x_train.shape, y_train.shape)\n", "print(x_test.shape, y_test.shape)" ] }, { "cell_type": "markdown", "metadata": { "id": "8wIPOtAGLZlh" }, "source": [ "## SVR മോഡൽ സൃഷ്ടിക്കൽ\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "EhA403BEPEiD" }, "outputs": [], "source": [ "# Create model using RBF kernel\n", "\n", "model = None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "GS0UA3csMbqp", "outputId": "d86b6f05-5742-4c1d-c2db-c40510bd4f0d" }, "outputs": [], "source": [ "# Fit model on training data" ] }, { "cell_type": "markdown", "metadata": { "id": "Rz_x8S3UrlcF" }, "source": [ "### മോഡൽ പ്രവചനം നടത്തുക\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XR0gnt3MnuYS", "outputId": "157e40ab-9a23-4b66-a885-0d52a24b2364" }, "outputs": [], "source": [ "# Making predictions\n", "\n", "y_train_pred = None\n", "y_test_pred = None" ] }, { "cell_type": "markdown", "metadata": { "id": "_2epncg-SGzr" }, "source": [ "## മോഡൽ പ്രകടനം വിശകലനം ചെയ്യൽ\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Scaling the predictions\n", "\n", "y_train_pred = scaler.inverse_transform(y_train_pred)\n", "y_test_pred = scaler.inverse_transform(y_test_pred)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "xmm_YLXhq7gV", "outputId": "18392f64-4029-49ac-c71a-a4e2411152a1" }, "outputs": [], "source": [ "# Scaling the original values\n", "\n", "y_train = scaler.inverse_transform(y_train)\n", "y_test = scaler.inverse_transform(y_test)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "u3LBj93coHEi", "outputId": "d4fd49e8-8c6e-4bb0-8ef9-ca0b26d725b4" }, "outputs": [], "source": [ "# Extract the timesteps for x-axis\n", "\n", "train_timestamps = None\n", "test_timestamps = None" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.figure(figsize=(25,6))\n", "# plot original output\n", "# plot predicted output\n", "plt.legend(['Actual','Predicted'])\n", "plt.xlabel('Timestamp')\n", "plt.title(\"Training data prediction\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LnhzcnYtXHCm", "outputId": "f5f0d711-f18b-4788-ad21-d4470ea2c02b" }, "outputs": [], "source": [ "print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225 }, "id": "53Q02FoqQH4V", "outputId": "53e2d59b-5075-4765-ad9e-aed56c966583" }, "outputs": [], "source": [ "plt.figure(figsize=(10,3))\n", "# plot original output\n", "# plot predicted output\n", "plt.legend(['Actual','Predicted'])\n", "plt.xlabel('Timestamp')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "clOAUH-SXCJG", "outputId": "a3aa85ff-126a-4a4a-cd9e-90b9cc465ef5" }, "outputs": [], "source": [ "print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')" ] }, { "cell_type": "markdown", "metadata": { "id": "DHlKvVCId5ue" }, "source": [ "## പൂർണ്ണ ഡാറ്റാസെറ്റ് പ്രവചനം\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cOFJ45vreO0N", "outputId": "35628e33-ecf9-4966-8036-f7ea86db6f16" }, "outputs": [], "source": [ "# Extracting load values as numpy array\n", "data = None\n", "\n", "# Scaling\n", "data = None\n", "\n", "# Transforming to 2D tensor as per model input requirement\n", "data_timesteps=None\n", "\n", "# Selecting inputs and outputs from data\n", "X, Y = None, None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ESSAdQgwexIi" }, "outputs": [], "source": [ "# Make model predictions\n", "\n", "# Inverse scale and reshape\n", "Y_pred = None\n", "Y = None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 328 }, "id": "M_qhihN0RVVX", "outputId": "a89cb23e-1d35-437f-9d63-8b8907e12f80" }, "outputs": [], "source": [ "plt.figure(figsize=(30,8))\n", "# plot original output\n", "# plot predicted output\n", "plt.legend(['Actual','Predicted'])\n", "plt.xlabel('Timestamp')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AcN7pMYXVGTK", "outputId": "7e1c2161-47ce-496c-9d86-7ad9ae0df770" }, "outputs": [], "source": [ "print('MAPE: ', mape(Y_pred, Y)*100, '%')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n\n\n**അസൂയാ**: \nഈ രേഖ AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നാം കൃത്യതയ്ക്ക് ശ്രമിച്ചിട്ടുണ്ടെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള യഥാർത്ഥ രേഖയാണ് പ്രാമാണികമായ ഉറവിടം എന്ന് പരിഗണിക്കേണ്ടതാണ്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനം ഉപയോഗിക്കുന്നതിൽ നിന്നുണ്ടാകുന്ന ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കോ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.\n\n" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "Recurrent_Neural_Networks.ipynb", "provenance": [] }, "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.7.1" }, "coopTranslator": { "original_hash": "e86ce102239a14c44585623b9b924a74", "translation_date": "2025-12-19T17:34:05+00:00", "source_file": "7-TimeSeries/3-SVR/working/notebook.ipynb", "language_code": "ml" } }, "nbformat": 4, "nbformat_minor": 1 }