3866 lines
385 KiB
Plaintext
3866 lines
385 KiB
Plaintext
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0,
|
|
"metadata": {
|
|
"colab": {
|
|
"provenance": [],
|
|
"toc_visible": true
|
|
},
|
|
"kernelspec": {
|
|
"name": "python3",
|
|
"display_name": "Python 3"
|
|
},
|
|
"language_info": {
|
|
"name": "python"
|
|
}
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Import Libraries"
|
|
],
|
|
"metadata": {
|
|
"id": "XTBQCgfi4s_3"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"id": "13IWG7jegtHo"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import time\n",
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import seaborn as sns\n",
|
|
"import missingno as msno\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from tensorflow.keras.models import Sequential\n",
|
|
"from tensorflow.keras.layers import GRU, Dense, Dropout\n",
|
|
"from tensorflow.keras.callbacks import EarlyStopping\n",
|
|
"from sklearn.preprocessing import MinMaxScaler\n",
|
|
"from sklearn.model_selection import train_test_split\n",
|
|
"from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Reading Dataset"
|
|
],
|
|
"metadata": {
|
|
"id": "_XF8Df9v4v3C"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## ADRO"
|
|
],
|
|
"metadata": {
|
|
"id": "f30_aaa44yhE"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"url_adro = \"https://raw.githubusercontent.com/MIlhamEr/Skripsi/refs/heads/main/dataset/PT%20Adaro%20Energy%20Indonesia%20Tbk_2020-2024.csv\"\n",
|
|
"adro = pd.read_csv(url_adro)\n",
|
|
"adro.head()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"id": "CJ69vEFiDxO3",
|
|
"outputId": "584cb3a9-69a0-4ae6-d4be-f1842014eac2"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Date Open High Low Close Adj Close Volume\n",
|
|
"0 2020-01-02 1555.0 1555.0 1490.0 1495.0 835.632202 76612000\n",
|
|
"1 2020-01-03 1460.0 1470.0 1425.0 1465.0 856.372375 117795600\n",
|
|
"2 2020-01-06 1455.0 1515.0 1450.0 1465.0 856.372375 61423200\n",
|
|
"3 2020-01-07 1480.0 1540.0 1460.0 1540.0 900.213867 74336500\n",
|
|
"4 2020-01-08 1530.0 1535.0 1505.0 1505.0 879.754395 55121100"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-d3121271-5570-49ef-8866-5f4893d046f6\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Date</th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Adj Close</th>\n",
|
|
" <th>Volume</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>2020-01-02</td>\n",
|
|
" <td>1555.0</td>\n",
|
|
" <td>1555.0</td>\n",
|
|
" <td>1490.0</td>\n",
|
|
" <td>1495.0</td>\n",
|
|
" <td>835.632202</td>\n",
|
|
" <td>76612000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>2020-01-03</td>\n",
|
|
" <td>1460.0</td>\n",
|
|
" <td>1470.0</td>\n",
|
|
" <td>1425.0</td>\n",
|
|
" <td>1465.0</td>\n",
|
|
" <td>856.372375</td>\n",
|
|
" <td>117795600</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>2020-01-06</td>\n",
|
|
" <td>1455.0</td>\n",
|
|
" <td>1515.0</td>\n",
|
|
" <td>1450.0</td>\n",
|
|
" <td>1465.0</td>\n",
|
|
" <td>856.372375</td>\n",
|
|
" <td>61423200</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>2020-01-07</td>\n",
|
|
" <td>1480.0</td>\n",
|
|
" <td>1540.0</td>\n",
|
|
" <td>1460.0</td>\n",
|
|
" <td>1540.0</td>\n",
|
|
" <td>900.213867</td>\n",
|
|
" <td>74336500</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>2020-01-08</td>\n",
|
|
" <td>1530.0</td>\n",
|
|
" <td>1535.0</td>\n",
|
|
" <td>1505.0</td>\n",
|
|
" <td>1505.0</td>\n",
|
|
" <td>879.754395</td>\n",
|
|
" <td>55121100</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d3121271-5570-49ef-8866-5f4893d046f6')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-d3121271-5570-49ef-8866-5f4893d046f6 button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-d3121271-5570-49ef-8866-5f4893d046f6');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-a934c254-b633-4405-a7fe-bdd49bf6aef3\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a934c254-b633-4405-a7fe-bdd49bf6aef3')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-a934c254-b633-4405-a7fe-bdd49bf6aef3 button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"variable_name": "adro",
|
|
"summary": "{\n \"name\": \"adro\",\n \"rows\": 1148,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1148,\n \"samples\": [\n \"2020-09-14\",\n \"2022-03-11\",\n \"2023-07-28\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 913.246493337149,\n \"min\": 645.0,\n \"max\": 4140.0,\n \"num_unique_values\": 345,\n \"samples\": [\n 3120.0,\n 1670.0,\n 3090.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 924.8420313199422,\n \"min\": 670.0,\n \"max\": 4250.0,\n \"num_unique_values\": 344,\n \"samples\": [\n 3020.0,\n 1930.0,\n 3320.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 902.619092508634,\n \"min\": 610.0,\n \"max\": 4080.0,\n \"num_unique_values\": 345,\n \"samples\": [\n 2870.0,\n 1900.0,\n 3120.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 914.3952655818309,\n \"min\": 645.0,\n \"max\": 4140.0,\n \"num_unique_values\": 357,\n \"samples\": [\n 3290.0,\n 775.0,\n 3640.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 865.5150705162999,\n \"min\": 377.03759765625,\n \"max\": 3910.0,\n \"num_unique_values\": 614,\n \"samples\": [\n 2913.447509765625,\n 2624.987548828125,\n 776.3223266601562\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 68712203,\n \"min\": 0,\n \"max\": 539995200,\n \"num_unique_values\": 1148,\n \"samples\": [\n 57485800,\n 121344700,\n 40850500\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"adro.info()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "B7p8nU8okoXL",
|
|
"outputId": "0c3b527b-9aaa-4ca8-c6bb-819260a61d9c"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 1148 entries, 0 to 1147\n",
|
|
"Data columns (total 7 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 Date 1148 non-null object \n",
|
|
" 1 Open 1148 non-null float64\n",
|
|
" 2 High 1148 non-null float64\n",
|
|
" 3 Low 1148 non-null float64\n",
|
|
" 4 Close 1148 non-null float64\n",
|
|
" 5 Adj Close 1148 non-null float64\n",
|
|
" 6 Volume 1148 non-null int64 \n",
|
|
"dtypes: float64(5), int64(1), object(1)\n",
|
|
"memory usage: 62.9+ KB\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## DSSA"
|
|
],
|
|
"metadata": {
|
|
"id": "PTWSX4dM5fsn"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"url_dssa = \"https://raw.githubusercontent.com/MIlhamEr/Skripsi/refs/heads/main/dataset/PT%20Dian%20Swastatika%20Sentosa%20Tbk_2020-2024.csv\"\n",
|
|
"dssa = pd.read_csv(url_dssa)\n",
|
|
"dssa.head()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"id": "opJl-3DOFICJ",
|
|
"outputId": "d248de8f-3d68-42e2-c2c3-8b1ee6f5324c"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Date Open High Low Close Adj Close Volume\n",
|
|
"0 2020-01-02 1360.0 1435.0 1360.0 1435.0 1435.0 5000\n",
|
|
"1 2020-01-03 1435.0 1435.0 1435.0 1435.0 1435.0 0\n",
|
|
"2 2020-01-06 1437.5 1437.5 1435.0 1435.0 1435.0 3000\n",
|
|
"3 2020-01-07 1435.0 1435.0 1435.0 1435.0 1435.0 0\n",
|
|
"4 2020-01-08 1435.0 1435.0 1435.0 1435.0 1435.0 0"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-df34a22f-ffcc-4722-a9dc-7f94a00f6d3e\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Date</th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Adj Close</th>\n",
|
|
" <th>Volume</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>2020-01-02</td>\n",
|
|
" <td>1360.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1360.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>5000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>2020-01-03</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>2020-01-06</td>\n",
|
|
" <td>1437.5</td>\n",
|
|
" <td>1437.5</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>3000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>2020-01-07</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>2020-01-08</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>1435.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-df34a22f-ffcc-4722-a9dc-7f94a00f6d3e')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-df34a22f-ffcc-4722-a9dc-7f94a00f6d3e button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-df34a22f-ffcc-4722-a9dc-7f94a00f6d3e');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-f7b0dcb2-aba8-4ac2-a0e3-be8644b81ed5\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-f7b0dcb2-aba8-4ac2-a0e3-be8644b81ed5')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-f7b0dcb2-aba8-4ac2-a0e3-be8644b81ed5 button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"variable_name": "dssa",
|
|
"summary": "{\n \"name\": \"dssa\",\n \"rows\": 1148,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1148,\n \"samples\": [\n \"2020-09-14\",\n \"2022-03-11\",\n \"2023-07-28\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8180.650972978378,\n \"min\": 910.0,\n \"max\": 42350.0,\n \"num_unique_values\": 372,\n \"samples\": [\n 28700.0,\n 2227.5,\n 2125.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8370.34990700453,\n \"min\": 920.0,\n \"max\": 44775.0,\n \"num_unique_values\": 359,\n \"samples\": [\n 4270.0,\n 1620.0,\n 13050.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8089.417253892426,\n \"min\": 910.0,\n \"max\": 41550.0,\n \"num_unique_values\": 363,\n \"samples\": [\n 3815.0,\n 2087.5,\n 2125.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8228.663218599353,\n \"min\": 920.0,\n \"max\": 41875.0,\n \"num_unique_values\": 330,\n \"samples\": [\n 1550.0,\n 3392.5,\n 4600.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8228.663218599353,\n \"min\": 920.0,\n \"max\": 41875.0,\n \"num_unique_values\": 330,\n \"samples\": [\n 1550.0,\n 3392.5,\n 4600.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 510893,\n \"min\": 0,\n \"max\": 12000000,\n \"num_unique_values\": 186,\n \"samples\": [\n 1529000,\n 1100200,\n 1728600\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 4
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"dssa.info()"
|
|
],
|
|
"metadata": {
|
|
"id": "4l_a9qfpoCar",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"outputId": "f685ea9a-1831-401f-b9e7-6aee685453f8"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|
"RangeIndex: 1148 entries, 0 to 1147\n",
|
|
"Data columns (total 7 columns):\n",
|
|
" # Column Non-Null Count Dtype \n",
|
|
"--- ------ -------------- ----- \n",
|
|
" 0 Date 1148 non-null object \n",
|
|
" 1 Open 1148 non-null float64\n",
|
|
" 2 High 1148 non-null float64\n",
|
|
" 3 Low 1148 non-null float64\n",
|
|
" 4 Close 1148 non-null float64\n",
|
|
" 5 Adj Close 1148 non-null float64\n",
|
|
" 6 Volume 1148 non-null int64 \n",
|
|
"dtypes: float64(5), int64(1), object(1)\n",
|
|
"memory usage: 62.9+ KB\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Pre-processing Data"
|
|
],
|
|
"metadata": {
|
|
"id": "GiaxLakO6sVo"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Cleaning Dataset"
|
|
],
|
|
"metadata": {
|
|
"id": "PcdKQXbg5jJW"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"adro_missing = adro.isnull().sum()\n",
|
|
"dssa_missing = dssa.isnull().sum()\n",
|
|
"\n",
|
|
"print(\"Missing values in ADRO:\")\n",
|
|
"print(adro_missing)\n",
|
|
"print(\"\\nMissing values in DSSA:\")\n",
|
|
"print(dssa_missing)"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "BivImi0n5eP2",
|
|
"outputId": "d12252d6-22f1-4e85-9747-3e9483c68340"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Missing values in ADRO:\n",
|
|
"Date 0\n",
|
|
"Open 0\n",
|
|
"High 0\n",
|
|
"Low 0\n",
|
|
"Close 0\n",
|
|
"Adj Close 0\n",
|
|
"Volume 0\n",
|
|
"dtype: int64\n",
|
|
"\n",
|
|
"Missing values in DSSA:\n",
|
|
"Date 0\n",
|
|
"Open 0\n",
|
|
"High 0\n",
|
|
"Low 0\n",
|
|
"Close 0\n",
|
|
"Adj Close 0\n",
|
|
"Volume 0\n",
|
|
"dtype: int64\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Normalisasi Data"
|
|
],
|
|
"metadata": {
|
|
"id": "scobtTMV6p5p"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"* Normalisasi data pake MinMaxScaler\n",
|
|
"* Kolom Date Ga dipake"
|
|
],
|
|
"metadata": {
|
|
"id": "bKVujuOSIv-e"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"scaler = MinMaxScaler()"
|
|
],
|
|
"metadata": {
|
|
"id": "AEAlTru7kzRs"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"def normalize_data(df):\n",
|
|
" scaled_df = pd.DataFrame(scaler.fit_transform(df.iloc[:, 1:]), columns=df.columns[1:], index=df.index)\n",
|
|
" return scaled_df"
|
|
],
|
|
"metadata": {
|
|
"id": "sKSDpg6E9BC8"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"adro_norm = adro.copy()\n",
|
|
"adro_norm = adro_norm.drop('Volume', axis=1)\n",
|
|
"adro_norm = normalize_data(adro_norm)\n",
|
|
"adro_norm.head()"
|
|
],
|
|
"metadata": {
|
|
"id": "ljGbAlvglUB5",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"outputId": "3f91083a-a5c6-4b6f-8c3d-1f734e6e7fc6"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Open High Low Close Adj Close\n",
|
|
"0 0.260372 0.247207 0.253602 0.243205 0.129805\n",
|
|
"1 0.233190 0.223464 0.234870 0.234621 0.135675\n",
|
|
"2 0.231760 0.236034 0.242075 0.234621 0.135675\n",
|
|
"3 0.238913 0.243017 0.244957 0.256080 0.148084\n",
|
|
"4 0.253219 0.241620 0.257925 0.246066 0.142293"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-599b5006-3dbf-438a-b3d8-d1484371029f\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Adj Close</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0.260372</td>\n",
|
|
" <td>0.247207</td>\n",
|
|
" <td>0.253602</td>\n",
|
|
" <td>0.243205</td>\n",
|
|
" <td>0.129805</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0.233190</td>\n",
|
|
" <td>0.223464</td>\n",
|
|
" <td>0.234870</td>\n",
|
|
" <td>0.234621</td>\n",
|
|
" <td>0.135675</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0.231760</td>\n",
|
|
" <td>0.236034</td>\n",
|
|
" <td>0.242075</td>\n",
|
|
" <td>0.234621</td>\n",
|
|
" <td>0.135675</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>0.238913</td>\n",
|
|
" <td>0.243017</td>\n",
|
|
" <td>0.244957</td>\n",
|
|
" <td>0.256080</td>\n",
|
|
" <td>0.148084</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>0.253219</td>\n",
|
|
" <td>0.241620</td>\n",
|
|
" <td>0.257925</td>\n",
|
|
" <td>0.246066</td>\n",
|
|
" <td>0.142293</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-599b5006-3dbf-438a-b3d8-d1484371029f')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-599b5006-3dbf-438a-b3d8-d1484371029f button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-599b5006-3dbf-438a-b3d8-d1484371029f');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-65ab4087-7a41-4ebb-9303-5354e167d7a5\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-65ab4087-7a41-4ebb-9303-5354e167d7a5')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-65ab4087-7a41-4ebb-9303-5354e167d7a5 button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"variable_name": "adro_norm",
|
|
"summary": "{\n \"name\": \"adro_norm\",\n \"rows\": 1148,\n \"fields\": [\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2613008564627031,\n \"min\": 0.0,\n \"max\": 1.0000000000000002,\n \"num_unique_values\": 345,\n \"samples\": [\n 0.7081545064377683,\n 0.2932761087267525,\n 0.6995708154506439\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2583357629385311,\n \"min\": 0.0,\n \"max\": 0.9999999999999999,\n \"num_unique_values\": 344,\n \"samples\": [\n 0.6564245810055865,\n 0.35195530726256974,\n 0.7402234636871508\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.2601207759390876,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 345,\n \"samples\": [\n 0.6512968299711817,\n 0.3717579250720462,\n 0.723342939481268\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.26162954666146787,\n \"min\": 0.0,\n \"max\": 1.0000000000000002,\n \"num_unique_values\": 357,\n \"samples\": [\n 0.7567954220314737,\n 0.037195994277539335,\n 0.8569384835479257\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.24498281383977363,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 614,\n \"samples\": [\n 0.7179272302549082,\n 0.6362790472042941,\n 0.11301697655741333\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 9
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"dssa_norm = dssa.copy()\n",
|
|
"dssa_norm = dssa_norm.drop('Volume', axis=1)\n",
|
|
"dssa_norm = normalize_data(dssa_norm)\n",
|
|
"dssa_norm.head()"
|
|
],
|
|
"metadata": {
|
|
"id": "GFoIHb2x-ewb",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"outputId": "87e6cf24-003e-4213-85c7-1ce1120ffc6d"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Open High Low Close Adj Close\n",
|
|
"0 0.010859 0.011743 0.011073 0.012575 0.012575\n",
|
|
"1 0.012669 0.011743 0.012918 0.012575 0.012575\n",
|
|
"2 0.012729 0.011800 0.012918 0.012575 0.012575\n",
|
|
"3 0.012669 0.011743 0.012918 0.012575 0.012575\n",
|
|
"4 0.012669 0.011743 0.012918 0.012575 0.012575"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-3655b34f-8b01-43f3-9adc-62749de4a1a5\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Open</th>\n",
|
|
" <th>High</th>\n",
|
|
" <th>Low</th>\n",
|
|
" <th>Close</th>\n",
|
|
" <th>Adj Close</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>0.010859</td>\n",
|
|
" <td>0.011743</td>\n",
|
|
" <td>0.011073</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>0.012669</td>\n",
|
|
" <td>0.011743</td>\n",
|
|
" <td>0.012918</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>0.012729</td>\n",
|
|
" <td>0.011800</td>\n",
|
|
" <td>0.012918</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>0.012669</td>\n",
|
|
" <td>0.011743</td>\n",
|
|
" <td>0.012918</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>0.012669</td>\n",
|
|
" <td>0.011743</td>\n",
|
|
" <td>0.012918</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" <td>0.012575</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3655b34f-8b01-43f3-9adc-62749de4a1a5')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-3655b34f-8b01-43f3-9adc-62749de4a1a5 button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-3655b34f-8b01-43f3-9adc-62749de4a1a5');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-3b3dee2e-c04a-42a9-a43d-d3d6ed63ab6f\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3b3dee2e-c04a-42a9-a43d-d3d6ed63ab6f')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-3b3dee2e-c04a-42a9-a43d-d3d6ed63ab6f button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"variable_name": "dssa_norm",
|
|
"summary": "{\n \"name\": \"dssa_norm\",\n \"rows\": 1148,\n \"fields\": [\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.19740953120121557,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 372,\n \"samples\": [\n 0.6706081081081081,\n 0.03179295366795366,\n 0.02931949806949807\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.1908642094859088,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 359,\n \"samples\": [\n 0.07638809713829667,\n 0.01596169193934557,\n 0.27659331889180255\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.19905062140483315,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 363,\n \"samples\": [\n 0.07148129921259842,\n 0.028973917322834646,\n 0.029896653543307086\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.20091962443167757,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 330,\n \"samples\": [\n 0.015382737150531074,\n 0.06037113905506044,\n 0.08985471859357833\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.20091962443167757,\n \"min\": 0.0,\n \"max\": 1.0,\n \"num_unique_values\": 330,\n \"samples\": [\n 0.015382737150531074,\n 0.06037113905506044,\n 0.08985471859357833\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Windowing (Time Series Data)"
|
|
],
|
|
"metadata": {
|
|
"id": "4Tzoy_Q9IXlN"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"Model GRU memerlukan data time series, jadi kita perlu membuat window (misalnya 30 hari ke belakang untuk memprediksi harga di hari ke-31).\n"
|
|
],
|
|
"metadata": {
|
|
"id": "ADXEkQcSUiyj"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"def prepare_data(df, time_step):\n",
|
|
" X, y = [], []\n",
|
|
" for i in range(len(df)-time_step):\n",
|
|
" t = []\n",
|
|
" for j in range(time_step):\n",
|
|
" t.append(df.iloc[i + j].values) # Use all columns for features\n",
|
|
" X.append(t)\n",
|
|
" y.append(df['High'][i + time_step]) # Predict High price\n",
|
|
" return np.array(X), np.array(y)"
|
|
],
|
|
"metadata": {
|
|
"id": "PEwwCBEHs9K8"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Data Mining"
|
|
],
|
|
"metadata": {
|
|
"id": "_vI3046ViEpy"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# ADRO\n"
|
|
],
|
|
"metadata": {
|
|
"id": "lGHmwVRWVPSq"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"time_step = 7\n",
|
|
"X_adro, y_adro = prepare_data(adro_norm, time_step)"
|
|
],
|
|
"metadata": {
|
|
"id": "DDjozXGEtAol"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"print(X_adro[0])\n",
|
|
"print(y_adro[0])"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "BAKLtf5wdL36",
|
|
"outputId": "05ba754b-d5d4-48d6-ea43-e388eccdd1c0"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"[[0.26037196 0.2472067 0.25360231 0.24320458 0.12980455]\n",
|
|
" [0.23319027 0.22346369 0.23487032 0.23462089 0.13567503]\n",
|
|
" [0.23175966 0.23603352 0.24207493 0.23462089 0.13567503]\n",
|
|
" [0.23891273 0.24301676 0.24495677 0.25608011 0.1480843 ]\n",
|
|
" [0.25321888 0.24162011 0.25792507 0.24606581 0.14229328]\n",
|
|
" [0.25035765 0.23882682 0.24927954 0.24320458 0.14063873]\n",
|
|
" [0.25035765 0.25 0.26080692 0.25894134 0.14973887]]\n",
|
|
"0.2583798882681564\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Target Attribute\n",
|
|
"\n",
|
|
"Dipilih atribut \"high\" sebagai target prediksi"
|
|
],
|
|
"metadata": {
|
|
"id": "3KPMX8ptLK6F"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"adro[\"High\"][:918].plot(figsize=(16,4),legend=True)\n",
|
|
"adro[\"High\"][918:].plot(figsize=(16,4),legend=True)\n",
|
|
"plt.legend(['Training set','Test set'])\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"id": "d6dVRhpZLHJp",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 330
|
|
},
|
|
"outputId": "a54fb6d5-67c8-4734-e2b4-2feb8088035f"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 1600x400 with 1 Axes>"
|
|
],
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABSYAAAFfCAYAAABTMBJRAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxZFJREFUeJzs3Xd4W+XZx/GvvKdsxzuxs5ezJ8TMACGDsEOBsnehgTa0jKallNE2lLfMMguUUPYoMwGySAJkkYTsHWfYiXc85D0kvX8cSZa8Yife/n2uS5d0znnOOY8Sx7Fv3fdzm+x2ux0RERERERERERGRNuTV3hMQERERERERERGR7keBSREREREREREREWlzCkyKiIiIiIiIiIhIm1NgUkRERERERERERNqcApMiIiIiIiIiIiLS5hSYFBERERERERERkTanwKSIiIiIiIiIiIi0OZ/2nkBrsdlspKenExoaislkau/piIiIiIiIiIiIdCp2u52ioiJ69uyJl1fL5zd22cBkeno6iYmJ7T0NERERERERERGRTi0tLY2EhIQWv26XDUyGhoYCxh+c2Wxu59mIiIiIiIiIiIh0LhaLhcTERFecraV12cCks3zbbDYrMCkiIiIiIiIiInKCWmuZRDW/ERERERERERERkTanwKSIiIiIiIiIiIi0OQUmRUREREREREREpM112TUmm8pqtVJVVdXe05B24Ofn1yqt7kVERERERERE5Pi6bWDSbreTmZlJQUFBe09F2omXlxf9+vXDz8+vvaciIiIiIiIiItLtdNvApDMoGRMTQ1BQUKt1F5KOyWazkZ6eTkZGBr1799bfv4iIiIiIiIhIG+uWgUmr1eoKSkZGRrb3dKSdREdHk56eTnV1Nb6+vu09HRERERERERGRbqVbLrDnXFMyKCionWci7clZwm21Wtt5JiIiIiIiIiIi3U+3DEw6qXy3e9Pfv4iIiIiIiIhI++nWgUkRERERERERERFpHwpMdnN9+/bl2WefbfL4FStWYDKZ1M1cREREpAvItpRz1zsbWZ2S295TERERkW5IgclOwmQyNfp45JFHTui669ev54477mjy+NNOO42MjAzCwsJO6H5tZfLkycyZM6e9pyEiIiLSoT2+cBffbM/kmtfWtfdUREREpBvqll25O6OMjAzX6w8//JCHH36YPXv2uPaFhIS4Xtvt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RMGujMmuFdgWEZFajqVAWR6YvCB6aMPjeo6reT3jHxA3ovXnJs3LmATYtm0bycnJlJeXExISwmeffcawYcMAuOaaa+jTpw89e/Zk69atPPjgg+zZs4dPP/0UgMzMTI+gJODazszMbHSMxWKhrKyMwMDAeuc1b948Hn300ea+HRERERHp4IocgTpzrdLmIH9HxmRF1wosOUu5Q7pIKXdHFejKuO1agW0REXFjt8OiucbrfmeDb0DDY2c8AXkHYPyNbTM3AU4gMDlkyBA2b95MYWEhn3zyCTfeeCMrV65k2LBh3HHHHa5xI0eOJD4+nvPOO4+UlBQGDBjQohOvbe7cufzud79zbVssFhITE1v1niIiIiLS+hoK1HW1jMkP16ey9UghucVGB/LQWhmi0rKcXd21xqSISBeWdwD2LQYvH5jxZONjI/rC3T+1ybSkRrNLuf38/Bg4cCDjx49n3rx5jB49mueee67esaeeeioA+/fvByAuLo6srCyPMc5t57qUDY0xm80NZksC+Pv7u7qFOx8iIiIi0rZW78/ltHnLWLYr6/iDm8hZyl27GUxXypisrLbx4P+28e66VPJKKjGZINbs397T6tKClDEpItL15e41nmOSjHUkpcM54TUmnWw2GxUVFfUe27x5MwDx8fEAJCcns23bNrKzs11jlixZgtlsdpWDJycns2zZMo/rLFmyxGMdSxERERHpmK55fR3pheXc+taGFrums5S7dgZhV8qY3HqkwGP7ulP7EGNupNxMTlpgF22eJCIibvIOGs89+rfvPKRBzSrlnjt3LjNmzKB3794UFRXx3nvvsWLFChYtWkRKSgrvvfceF1xwAZGRkWzdupV7772Xs846i1GjRgEwdepUhg0bxvXXX8+TTz5JZmYmDz30ELNnz8bf3/hE+M477+SFF17ggQce4JZbbuG7777jo48+YuHChS3/7kVERESkwytqoJS7K3XlXnvgmOv1mYOiuH/6kHacTffg/Popq+r8gW0REWlA3gHjWYHJDqtZgcns7GxuuOEGMjIyCAsLY9SoUSxatIjzzz+ftLQ0li5dyrPPPktJSQmJiYnMmjWLhx56yHW+t7c3CxYs4K677iI5OZng4GBuvPFGHnvsMdeYfv36sXDhQu69916ee+45EhISeP3115k2bVrLvWsRERERaVV+PnULc+x2OyaTqdnX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uDgA4uLi2LZtG/n5+bYxCQkJeHt707Nnz+aeroiIiIiIiIiIiLSAJs+Y/NOf/sTo0aOJiIggOzubZ599FkdHRyZMmICPjw+TJk1i2rRp+Pn54e3tzR/+8Afi4uIYOHAgACNGjKBnz57cddddzJo1i9zcXP7yl78wZcqUEzIiRURERERERERE5NLU5IHJgwcPMmHCBAoLC2nXrh1Dhgxh7dq1tGvXDoDXX38dBwcHxo0bR01NDfHx8bz33nu29zs6OrJgwQIefPBB4uLi8PT05J577uH5559v6qle0lxdXXn22WcVrBVpoDUhcpTWg4g9rQmRo7QeROxpTYjYa+k1YTKaq9+3iIiIiIiIiIiIyCk0e41JERERERERERERkeMpMCkiIiIiIiIiIiItToFJERERERERERERaXEKTIqIiIiIiIiIiEiLU2BSREREREREREREWpwCk5eod999l44dO+Lm5kZsbCzr169v7SmJNLmZM2dy5ZVX4uXlRWBgILfccgtpaWl2Y6qrq5kyZQr+/v60adOGcePGkZeXZzcmKyuLUaNG4eHhQWBgII8//jhms7klH0Wkyb300kuYTCYeeeQR2zGtB7ncHDp0iDvvvBN/f3/c3d2Jjo5m48aNtvOGYTB9+nRCQkJwd3dn+PDhpKen212jqKiIiRMn4u3tja+vL5MmTaKioqKlH0XkgtTX1/PMM88QGRmJu7s7nTt35q9//SuGYdjGaD3IL1liYiKjR48mNDQUk8nEt99+a3e+qT7/W7duZejQobi5uREeHs6sWbOa+9FEzsvp1kRdXR1PPvkk0dHReHp6Ehoayt133012drbdNVpqTSgweQn64osvmDZtGs8++yybNm2ib9++xMfHk5+f39pTE2lSK1euZMqUKaxdu5aEhATq6uoYMWIElZWVtjGPPvooP/zwA1999RUrV64kOzubsWPH2s7X19czatQoamtrWbNmDR999BEffvgh06dPb41HEmkSGzZs4P3336dPnz52x7Ue5HJSXFzM4MGDcXZ2ZuHChezYsYNXX32Vtm3b2sbMmjWLt956izlz5rBu3To8PT2Jj4+nurraNmbixImkpqaSkJDAggULSExMZPLkya3xSCLn7eWXX2b27Nm888477Ny5k5dffplZs2bx9ttv28ZoPcgvWWVlJX379uXdd9896fmm+PyXlZUxYsQIIiIiSE5O5pVXXmHGjBnMnTu32Z9P5Fydbk1UVVWxadMmnnnmGTZt2sTXX39NWloaN998s924FlsThlxyrrrqKmPKlCm21/X19UZoaKgxc+bMVpyVSPPLz883AGPlypWGYRhGSUmJ4ezsbHz11Ve2MTt37jQAIykpyTAMw/jf//5nODg4GLm5ubYxs2fPNry9vY2ampqWfQCRJlBeXm507drVSEhIMK655hrj4YcfNgxD60EuP08++aQxZMiQU563WCxGcHCw8corr9iOlZSUGK6ursZnn31mGIZh7NixwwCMDRs22MYsXLjQMJlMxqFDh5pv8iJNbNSoUcbvfvc7u2Njx441Jk6caBiG1oNcXgDjm2++sb1uqs//e++9Z7Rt29bu30xPPvmk0b1792Z+IpELc/yaOJn169cbgLF//37DMFp2TShj8hJTW1tLcnIyw4cPtx1zcHBg+PDhJCUlteLMRJpfaWkpAH5+fgAkJydTV1dntx6ioqLo0KGDbT0kJSURHR1NUFCQbUx8fDxlZWWkpqa24OxFmsaUKVMYNWqU3ecetB7k8vP9998zYMAAbrvtNgIDA4mJieGDDz6wnc/MzCQ3N9duTfj4+BAbG2u3Jnx9fRkwYIBtzPDhw3FwcGDdunUt9zAiF2jQoEEsXbqU3bt3A7BlyxZWrVrFyJEjAa0Hubw11ec/KSmJq6++GhcXF9uY+Ph40tLSKC4ubqGnEWkepaWlmEwmfH19gZZdE05N8wjSUg4fPkx9fb3dD5UAQUFB7Nq1q5VmJdL8LBYLjzzyCIMHD6Z3794A5Obm4uLiYvvm2SgoKIjc3FzbmJOtl8ZzIpeSzz//nE2bNrFhw4YTzmk9yOVm7969zJ49m2nTpvH000+zYcMG/vjHP+Li4sI999xj+0yf7DN/7JoIDAy0O+/k5ISfn5/WhFxS/vznP1NWVkZUVBSOjo7U19fzwgsvMHHiRACtB7msNdXnPzc3l8jIyBOu0Xju2FIiIpeS6upqnnzySSZMmIC3tzfQsmtCgUkRuSRMmTKF7du3s2rVqtaeikirOHDgAA8//DAJCQm4ubm19nREWp3FYmHAgAG8+OKLAMTExLB9+3bmzJnDPffc08qzE2lZX375JfPnz+fTTz+lV69epKSk8MgjjxAaGqr1ICIip1RXV8ftt9+OYRjMnj27VeagrdyXmICAABwdHU/ospqXl0dwcHArzUqkeU2dOpUFCxawfPly2rdvbzseHBxMbW0tJSUlduOPXQ/BwcEnXS+N50QuFcnJyeTn53PFFVfg5OSEk5MTK1eu5K233sLJyYmgoCCtB7mshISE0LNnT7tjPXr0ICsrCzj6mT7dv5mCg4NPaB5oNpspKirSmpBLyuOPP86f//xnxo8fT3R0NHfddRePPvooM2fOBLQe5PLWVJ9//TtKfmkag5L79+8nISHBli0JLbsmFJi8xLi4uNC/f3+WLl1qO2axWFi6dClxcXGtODORpmcYBlOnTuWbb75h2bJlJ6SJ9+/fH2dnZ7v1kJaWRlZWlm09xMXFsW3bNrtvqo3fdI//gVbkYjZs2DC2bdtGSkqK7deAAQOYOHGi7WutB7mcDB48mLS0NLtju3fvJiIiAoDIyEiCg4Pt1kRZWRnr1q2zWxMlJSUkJyfbxixbtgyLxUJsbGwLPIVI06iqqsLBwf5HO0dHRywWC6D1IJe3pvr8x8XFkZiYSF1dnW1MQkIC3bt31zZuueQ0BiXT09NZsmQJ/v7+dudbdE2cU6scuSh8/vnnhqurq/Hhhx8aO3bsMCZPnmz4+vradVkV+SV48MEHDR8fH2PFihVGTk6O7VdVVZVtzAMPPGB06NDBWLZsmbFx40YjLi7OiIuLs503m81G7969jREjRhgpKSnGokWLjHbt2hlPPfVUazySSJM6tiu3YWg9yOVl/fr1hpOTk/HCCy8Y6enpxvz58w0PDw/jk08+sY156aWXDF9fX+O7774ztm7daowZM8aIjIw0jhw5Yhtz4403GjExMca6deuMVatWGV27djUmTJjQGo8kct7uueceIywszFiwYIGRmZlpfP3110ZAQIDxxBNP2MZoPcgvWXl5ubF582Zj8+bNBmC89tprxubNm20dhpvi819SUmIEBQUZd911l7F9+3bj888/Nzw8PIz333+/xZ9X5ExOtyZqa2uNm2++2Wjfvr2RkpJi97P2sR22W2pNKDB5iXr77beNDh06GC4uLsZVV11lrF27trWnJNLkgJP+mjdvnm3MkSNHjIceesho27at4eHhYdx6661GTk6O3XX27dtnjBw50nB3dzcCAgKMxx57zKirq2vhpxFpescHJrUe5HLzww8/GL179zZcXV2NqKgoY+7cuXbnLRaL8cwzzxhBQUGGq6urMWzYMCMtLc1uTGFhoTFhwgSjTZs2hre3t3Hvvfca5eXlLfkYIhesrKzMePjhh40OHToYbm5uRqdOnYz/+7//s/sBU+tBfsmWL19+0p8b7rnnHsMwmu7zv2XLFmPIkCGGq6urERYWZrz00kst9Ygi5+R0ayIzM/OUP2svX77cdo2WWhMmwzCMs8+vFBEREREREREREblwqjEpIiIiIiIiIiIiLU6BSREREREREREREWlxCkyKiIiIiIiIiIhIi1NgUkRERERERERERFqcApMiIiIiIiIiIiLS4hSYFBERERERERERkRanwKSIiIiIiIiIiIi0OAUmRUREREREREREpMUpMCkiIiIiIiIiIiItToFJERERERERERERaXEKTIqIiIiIiIiIiEiL+3+ICTD0gJAWLgAAAABJRU5ErkJggg==\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"X_train_adro, X_test_adro, y_train_adro, y_test_adro = train_test_split(X_adro, y_adro, test_size=0.2, random_state=42, shuffle=False)"
|
|
],
|
|
"metadata": {
|
|
"id": "PgvMNs99VlKi"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Training Model"
|
|
],
|
|
"metadata": {
|
|
"id": "aKOSaBuNWlqz"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"def create_gru_model(units):\n",
|
|
" model = Sequential()\n",
|
|
" model.add(GRU(units=units, return_sequences=True, input_shape=(X_train_adro.shape[1], X_train_adro.shape[2])))\n",
|
|
" model.add(Dropout(0.2))\n",
|
|
" model.add(GRU(units=units))\n",
|
|
" model.add(Dropout(0.2))\n",
|
|
" model.add(Dense(units=1)) # Output layer with 1 neuron for regression\n",
|
|
" model.compile(optimizer='adam', loss='mean_squared_error')\n",
|
|
" return model"
|
|
],
|
|
"metadata": {
|
|
"id": "jRzT17pX6qGg"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Create model\n",
|
|
"gru_model = create_gru_model(50) # Example: 50 GRU units"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "hY9sMu-KXkH2",
|
|
"outputId": "21ee804c-feab-4b0c-c55f-c6ade380f86c"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stderr",
|
|
"text": [
|
|
"/usr/local/lib/python3.11/dist-packages/keras/src/layers/rnn/rnn.py:200: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
|
|
" super().__init__(**kwargs)\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"model_gru_adro = create_gru_model(100)\n",
|
|
"\n",
|
|
"start_time = time.time()\n",
|
|
"history = model_gru_adro.fit(X_train_adro, y_train_adro, epochs=100, batch_size=32, validation_split=0.1)\n",
|
|
"\n",
|
|
"end_time = time.time()\n",
|
|
"elapsed_time = end_time - start_time\n",
|
|
"\n",
|
|
"print(f\"Waktu training: {elapsed_time:.2f} detik\")"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "vkVXtzaM63Yq",
|
|
"outputId": "c0444510-62ef-45b0-f18a-2d2d36877488"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Epoch 1/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 44ms/step - loss: 0.0577 - val_loss: 0.0021\n",
|
|
"Epoch 2/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0045 - val_loss: 4.9115e-04\n",
|
|
"Epoch 3/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0035 - val_loss: 9.7674e-04\n",
|
|
"Epoch 4/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0028 - val_loss: 9.5480e-04\n",
|
|
"Epoch 5/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 0.0026 - val_loss: 9.4335e-04\n",
|
|
"Epoch 6/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 31ms/step - loss: 0.0028 - val_loss: 9.0496e-04\n",
|
|
"Epoch 7/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 27ms/step - loss: 0.0020 - val_loss: 4.3726e-04\n",
|
|
"Epoch 8/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 0.0019 - val_loss: 7.1848e-04\n",
|
|
"Epoch 9/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0019 - val_loss: 0.0010\n",
|
|
"Epoch 10/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 0.0021 - val_loss: 6.9643e-04\n",
|
|
"Epoch 11/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0020 - val_loss: 4.1383e-04\n",
|
|
"Epoch 12/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0018 - val_loss: 7.0771e-04\n",
|
|
"Epoch 13/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0021 - val_loss: 0.0014\n",
|
|
"Epoch 14/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0018 - val_loss: 0.0016\n",
|
|
"Epoch 15/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0018 - val_loss: 4.9007e-04\n",
|
|
"Epoch 16/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0016 - val_loss: 3.9633e-04\n",
|
|
"Epoch 17/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0016 - val_loss: 3.9178e-04\n",
|
|
"Epoch 18/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0013 - val_loss: 4.1424e-04\n",
|
|
"Epoch 19/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0017 - val_loss: 3.9486e-04\n",
|
|
"Epoch 20/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0015 - val_loss: 4.3281e-04\n",
|
|
"Epoch 21/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0017 - val_loss: 4.1300e-04\n",
|
|
"Epoch 22/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0015 - val_loss: 3.3882e-04\n",
|
|
"Epoch 23/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0015 - val_loss: 4.2586e-04\n",
|
|
"Epoch 24/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0016 - val_loss: 3.5654e-04\n",
|
|
"Epoch 25/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 25ms/step - loss: 0.0016 - val_loss: 3.6712e-04\n",
|
|
"Epoch 26/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - loss: 0.0014 - val_loss: 7.0714e-04\n",
|
|
"Epoch 27/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0016 - val_loss: 0.0021\n",
|
|
"Epoch 28/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0016 - val_loss: 3.8275e-04\n",
|
|
"Epoch 29/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0017 - val_loss: 3.5382e-04\n",
|
|
"Epoch 30/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0016 - val_loss: 0.0011\n",
|
|
"Epoch 31/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0020 - val_loss: 0.0018\n",
|
|
"Epoch 32/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0020 - val_loss: 5.0929e-04\n",
|
|
"Epoch 33/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0013 - val_loss: 5.0779e-04\n",
|
|
"Epoch 34/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0013 - val_loss: 2.8508e-04\n",
|
|
"Epoch 35/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0012 - val_loss: 5.2215e-04\n",
|
|
"Epoch 36/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0013 - val_loss: 3.1494e-04\n",
|
|
"Epoch 37/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0015 - val_loss: 4.8841e-04\n",
|
|
"Epoch 38/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0014 - val_loss: 3.9487e-04\n",
|
|
"Epoch 39/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0011 - val_loss: 2.8669e-04\n",
|
|
"Epoch 40/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0014 - val_loss: 7.1787e-04\n",
|
|
"Epoch 41/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0013 - val_loss: 2.8234e-04\n",
|
|
"Epoch 42/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0012 - val_loss: 4.7626e-04\n",
|
|
"Epoch 43/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0013 - val_loss: 6.2097e-04\n",
|
|
"Epoch 44/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 0.0016 - val_loss: 0.0019\n",
|
|
"Epoch 45/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - loss: 0.0016 - val_loss: 3.4984e-04\n",
|
|
"Epoch 46/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 37ms/step - loss: 0.0014 - val_loss: 4.4263e-04\n",
|
|
"Epoch 47/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 0.0014 - val_loss: 6.1408e-04\n",
|
|
"Epoch 48/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0014 - val_loss: 2.2885e-04\n",
|
|
"Epoch 49/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0012 - val_loss: 2.2621e-04\n",
|
|
"Epoch 50/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0011 - val_loss: 3.2538e-04\n",
|
|
"Epoch 51/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0011 - val_loss: 2.5797e-04\n",
|
|
"Epoch 52/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 0.0011 - val_loss: 4.8794e-04\n",
|
|
"Epoch 53/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0012 - val_loss: 4.5312e-04\n",
|
|
"Epoch 54/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0011 - val_loss: 4.5782e-04\n",
|
|
"Epoch 55/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0010 - val_loss: 2.2918e-04\n",
|
|
"Epoch 56/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0011 - val_loss: 2.1239e-04\n",
|
|
"Epoch 57/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0011 - val_loss: 4.0432e-04\n",
|
|
"Epoch 58/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0012 - val_loss: 5.5354e-04\n",
|
|
"Epoch 59/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0011 - val_loss: 2.3901e-04\n",
|
|
"Epoch 60/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0012 - val_loss: 5.7147e-04\n",
|
|
"Epoch 61/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0013 - val_loss: 5.6428e-04\n",
|
|
"Epoch 62/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0011 - val_loss: 8.3079e-04\n",
|
|
"Epoch 63/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0012 - val_loss: 2.2646e-04\n",
|
|
"Epoch 64/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 31ms/step - loss: 0.0012 - val_loss: 2.1170e-04\n",
|
|
"Epoch 65/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 32ms/step - loss: 0.0011 - val_loss: 2.6009e-04\n",
|
|
"Epoch 66/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 0.0010 - val_loss: 3.2673e-04\n",
|
|
"Epoch 67/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 0.0013 - val_loss: 2.1459e-04\n",
|
|
"Epoch 68/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0012 - val_loss: 4.3743e-04\n",
|
|
"Epoch 69/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0011 - val_loss: 3.2609e-04\n",
|
|
"Epoch 70/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 0.0012 - val_loss: 1.8397e-04\n",
|
|
"Epoch 71/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 9.3354e-04 - val_loss: 3.2544e-04\n",
|
|
"Epoch 72/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 0.0012 - val_loss: 3.2258e-04\n",
|
|
"Epoch 73/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 9.3039e-04 - val_loss: 2.1268e-04\n",
|
|
"Epoch 74/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 7.9803e-04 - val_loss: 4.3960e-04\n",
|
|
"Epoch 75/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 9.3897e-04 - val_loss: 1.9310e-04\n",
|
|
"Epoch 76/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0010 - val_loss: 2.1357e-04\n",
|
|
"Epoch 77/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 9.9517e-04 - val_loss: 2.0085e-04\n",
|
|
"Epoch 78/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 9.9405e-04 - val_loss: 3.0909e-04\n",
|
|
"Epoch 79/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 0.0010 - val_loss: 3.3926e-04\n",
|
|
"Epoch 80/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 9.7004e-04 - val_loss: 1.8530e-04\n",
|
|
"Epoch 81/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 8.9757e-04 - val_loss: 1.9034e-04\n",
|
|
"Epoch 82/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 8.7562e-04 - val_loss: 0.0011\n",
|
|
"Epoch 83/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 27ms/step - loss: 0.0015 - val_loss: 1.7253e-04\n",
|
|
"Epoch 84/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - loss: 8.6734e-04 - val_loss: 1.8017e-04\n",
|
|
"Epoch 85/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 33ms/step - loss: 8.6932e-04 - val_loss: 1.7235e-04\n",
|
|
"Epoch 86/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0011 - val_loss: 4.5892e-04\n",
|
|
"Epoch 87/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 0.0013 - val_loss: 4.9913e-04\n",
|
|
"Epoch 88/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 8.9259e-04 - val_loss: 1.7769e-04\n",
|
|
"Epoch 89/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 8.4344e-04 - val_loss: 3.6119e-04\n",
|
|
"Epoch 90/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 7.8751e-04 - val_loss: 4.7063e-04\n",
|
|
"Epoch 91/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 0.0011 - val_loss: 8.1291e-04\n",
|
|
"Epoch 92/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 56ms/step - loss: 9.6640e-04 - val_loss: 3.6469e-04\n",
|
|
"Epoch 93/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 46ms/step - loss: 0.0010 - val_loss: 2.0196e-04\n",
|
|
"Epoch 94/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 39ms/step - loss: 0.0011 - val_loss: 2.2020e-04\n",
|
|
"Epoch 95/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 42ms/step - loss: 8.2097e-04 - val_loss: 3.7359e-04\n",
|
|
"Epoch 96/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 55ms/step - loss: 0.0011 - val_loss: 3.6962e-04\n",
|
|
"Epoch 97/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 66ms/step - loss: 0.0010 - val_loss: 6.0087e-04\n",
|
|
"Epoch 98/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 9.1164e-04 - val_loss: 4.5958e-04\n",
|
|
"Epoch 99/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0014 - val_loss: 2.4420e-04\n",
|
|
"Epoch 100/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 9.4386e-04 - val_loss: 1.5957e-04\n",
|
|
"Waktu training: 77.03 detik\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"model_gru_adro.summary()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 302
|
|
},
|
|
"id": "_GjbaRRBZvJd",
|
|
"outputId": "22dcfa5a-2751-481d-dd3c-3843981e4bf0"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1mModel: \"sequential_1\"\u001b[0m\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_1\"</span>\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"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",
|
|
"│ gru_2 (\u001b[38;5;33mGRU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m32,100\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_2 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ gru_3 (\u001b[38;5;33mGRU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m60,600\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_3 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m101\u001b[0m │\n",
|
|
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
|
|
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
|
|
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
|
|
"│ gru_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GRU</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">32,100</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ gru_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GRU</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">60,600</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">101</span> │\n",
|
|
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m278,405\u001b[0m (1.06 MB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">278,405</span> (1.06 MB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m92,801\u001b[0m (362.50 KB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">92,801</span> (362.50 KB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m185,604\u001b[0m (725.02 KB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Optimizer params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">185,604</span> (725.02 KB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Plot training history"
|
|
],
|
|
"metadata": {
|
|
"id": "nSFbegfgWrZq"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"plt.plot(history.history['loss'], label='Training Loss')\n",
|
|
"plt.plot(history.history['val_loss'], label='Validation Loss')\n",
|
|
"plt.title('Model Loss')\n",
|
|
"plt.ylabel('Loss')\n",
|
|
"plt.xlabel('Epoch')\n",
|
|
"plt.legend(loc='upper right')\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"id": "ZkGX88gnWRaR",
|
|
"outputId": "3865635c-29ea-49a2-e968-62be83c22df3"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
],
|
|
"image/png": "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4YG2bdviq6++Mtx/4cIFpKamGh1vR0dHhIeH83jfoc6dO2PHjh34999/AQBHjhzB7t270bt3bwA81vWlJsc1NjYWTk5O6NChg6FNZGQklEol9u3bd1fPz4vVmomMjAzodDp4enoabff09MTp06dl6tX9R6/XY+rUqejSpQtatWoFAEhNTYWlpSWcnJyM2np6eiI1NVWGXt67Vq1ahfj4eMTFxVW6j8e5bp0/fx6LFy9GdHQ03njjDcTFxWHy5MmwtLTE6NGjDce0qs8UHu878/rrryMnJwdBQUFQqVTQ6XR47733MHLkSADgsa4nNTmuqamp8PDwMLpfrVbDxcXlro89AyR6oEyYMAHHjx/H7t275e7KfScpKQlTpkzBtm3bYGVlJXd37nt6vR4dOnTA//3f/wEA2rZti+PHj2PJkiUYPXq0zL27v/z444/4/vvvsXLlSrRs2RKHDx/G1KlT4ePjw2N9H+MQm5lwc3ODSqWqNKMnLS0NXl5eMvXq/jJx4kRs2LABu3btQoMGDQzbvby8UFJSgqysLKP2PPZ35uDBg0hPT0e7du2gVquhVqvx559/4tNPP4VarYanpyePcx3y9vZGixYtjLYFBwcjMTERAAzHlJ8pd+/VV1/F66+/juHDh6N169Z45plnMG3aNMTExADgsa4vNTmuXl5elSYylZaWIjMz866PPQMkM2FpaYn27dtjx44dhm16vR47duxARESEjD2790mShIkTJ+KXX37Bzp07ERAQYHR/+/btYWFhYXTsExISkJiYyGN/B3r27Iljx47h8OHDhluHDh0wcuRIw/95nOtOly5dKi1X8e+//6JRo0YAgICAAHh5eRkd75ycHOzbt4/H+w4VFBRAqTQ+XapUKuj1egA81vWlJsc1IiICWVlZOHjwoKHNzp07odfrER4efncduKsSb6pTq1atkjQajbRixQrp5MmT0vjx4yUnJycpNTVV7q7d01588UXJ0dFR+uOPP6SUlBTDraCgwNDmhRdekBo2bCjt3LlTOnDggBQRESFFRETI2Ov7w82z2CSJx7ku7d+/X1Kr1dJ7770nnTlzRvr+++8lGxsb6bvvvjO0ef/99yUnJyfp119/lY4ePSr1799fCggIkAoLC2Xs+b1n9OjRkq+vr7RhwwbpwoUL0tq1ayU3NzfptddeM7Thsa6d3Nxc6dChQ9KhQ4ckANJHH30kHTp0SLp06ZIkSTU7rr169ZLatm0r7du3T9q9e7cUGBgojRgx4q77xgDJzHz22WdSw4YNJUtLSyksLEz6559/5O7SPQ9Albfly5cb2hQWFkovvfSS5OzsLNnY2EgDBw6UUlJS5Ov0faJigMTjXLd+++03qVWrVpJGo5GCgoKkpUuXGt2v1+ulWbNmSZ6enpJGo5F69uwpJSQkyNTbe1dOTo40ZcoUqWHDhpKVlZXUuHFj6c0335SKi4sNbXisa2fXrl1Vfj6PHj1akqSaHddr165JI0aMkOzs7CQHBwdpzJgxUm5u7l33TSFJNy0FSkRERESsQSIiIiKqiAESERERUQUMkIiIiIgqYIBEREREVAEDJCIiIqIKGCARERERVcAAiYiIiKgCBkhERHVEoVBg3bp1cneDiOoAAyQiui88++yzUCgUlW69evWSu2tEdA9Sy90BIqK60qtXLyxfvtxom0ajkak3RHQvYwaJiO4bGo0GXl5eRjdnZ2cAYvhr8eLF6N27N6ytrdG4cWP89NNPRo8/duwYHnnkEVhbW8PV1RXjx49HXl6eUZtly5ahZcuW0Gg08Pb2xsSJE43uz8jIwMCBA2FjY4PAwECsX7++fl80EdULBkhE9MCYNWsWBg8ejCNHjmDkyJEYPnw4Tp06BQDIz89HVFQUnJ2dERcXhzVr1mD79u1GAdDixYsxYcIEjB8/HseOHcP69evRtGlTo+d46623MHToUBw9ehR9+vTByJEjkZmZadLXSUR14K4vd0tEZAZGjx4tqVQqydbW1uj23nvvSZIkSQCkF154wegx4eHh0osvvihJkiQtXbpUcnZ2lvLy8gz3b9y4UVIqlVJqaqokSZLk4+Mjvfnmm9X2AYA0c+ZMw895eXkSAGnz5s119jqJyDRYg0RE942HH34YixcvNtrm4uJi+H9ERITRfRERETh8+DAA4NSpUwgJCYGtra3h/i5dukCv1yMhIQEKhQLJycno2bPnLfvQpk0bw/9tbW3h4OCA9PT02r4kIpIJAyQium/Y2tpWGvKqK9bW1jVqZ2FhYfSzQqGAXq+vjy4RUT1iDRIRPTD++eefSj8HBwcDAIKDg3HkyBHk5+cb7t+zZw+USiWaN28Oe3t7+Pv7Y8eOHSbtMxHJgxkkIrpvFBcXIzU11WibWq2Gm5sbAGDNmjXo0KEDunbtiu+//x779+/H119/DQAYOXIk5syZg9GjR2Pu3Lm4evUqJk2ahGeeeQaenp4AgLlz5+KFF16Ah4cHevfujdzcXOzZsweTJk0y7QslonrHAImI7htbtmyBt7e30bbmzZvj9OnTAMQMs1WrVuGll16Ct7c3fvjhB7Ro0QIAYGNjg61bt2LKlCno2LEjbGxsMHjwYHz00UeGfY0ePRpFRUX4+OOP8corr8DNzQ1Dhgwx3QskIpNRSJIkyd0JIqL6plAo8Msvv2DAgAFyd4WI7gGsQSIiIiKqgAESERERUQWsQSKiBwKrCYjoTjCDRERERFQBAyQiIiKiChggEREREVXAAImIiIioAgZIRERERBUwQCIiIiKqgAESERERUQUMkIiIiIgqYIBEREREVMH/A3ixpjjHpRbwAAAAAElFTkSuQmCC\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Prediction"
|
|
],
|
|
"metadata": {
|
|
"id": "8b-qUyvwXHcl"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"y_pred_adro = model_gru_adro.predict(X_test_adro)"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "mepO7OcrWRce",
|
|
"outputId": "5d76f010-7b7b-4101-8557-def9e969a49e"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# DSSA"
|
|
],
|
|
"metadata": {
|
|
"id": "YQN0JJHuYNt2"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"time_step = 7\n",
|
|
"X_dssa, y_dssa = prepare_data(dssa_norm, time_step)"
|
|
],
|
|
"metadata": {
|
|
"id": "o7LuYgWatEoi"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Target Attribute"
|
|
],
|
|
"metadata": {
|
|
"id": "r9IZr0-SYNv2"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"dssa[\"High\"][:918].plot(figsize=(16,4),legend=True)\n",
|
|
"dssa[\"High\"][918:].plot(figsize=(16,4),legend=True)\n",
|
|
"plt.legend(['Training set','Test set'])\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 328
|
|
},
|
|
"id": "uneVAuClXJtX",
|
|
"outputId": "0f474c09-f169-4ee6-c523-ec62640d99ca"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 1600x400 with 1 Axes>"
|
|
],
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABS4AAAFfCAYAAABA51KlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYzJJREFUeJzt3Xl8VNX9//H3zCQz2RMSshBIWGRXZAfjviBBkbpWVKq4/7RgRWpFW4tWW3GpG6Li0kq/rXtbN1AUEbEoAoIgaxAMBAxZWJLJQjLJzP39cTOTDIQlkGQyk9fz8ZjHvXPvufd+JuSi8+aceyyGYRgCAAAAAAAAgDbEGugCAAAAAAAAAOBABJcAAAAAAAAA2hyCSwAAAAAAAABtDsElAAAAAAAAgDaH4BIAAAAAAABAm0NwCQAAAAAAAKDNIbgEAAAAAAAA0OaEBbqAQPJ4PMrPz1dsbKwsFkugywEAAAAAAACCimEYKisrU3p6uqzW5u0j2a6Dy/z8fGVkZAS6DAAAAAAAACCo7dixQ126dGnWc7br4DI2NlaS+YONi4sLcDUAAAAAAABAcHE6ncrIyPDlbM2pXQeX3uHhcXFxBJcAAAAAAADAMWqJxzAyOQ8AAAAAAACANofgEgAAAAAAAECbQ3AJAAAAAAAAoM1p18+4PBoej0culyvQZSAAwsPDZbPZAl0GAAAAAABAu0RweRgul0u5ubnyeDyBLgUBkpCQoLS0tBZ5wCwAAAAAAAAOjeDyEAzD0K5du2Sz2ZSRkSGrlVH17YlhGKqsrFRRUZEkqVOnTgGuCAAAAAAAoH0huDyE2tpaVVZWKj09XVFRUYEuBwEQGRkpSSoqKlJKSgrDxgEAAAAAAFoR3QgPwe12S5LsdnuAK0EgeUPrmpqaAFcCAAAAAADQvhBcHgHPNmzf+PMHAAAAAAAIDIJLAAAAAAAAAG0OwSWOqFu3bnrmmWeOuv2XX34pi8WikpKSFqsJAAAAAACgRez9SXrnOunnVYGupN0juAwhFovlsK8HH3zwmM67YsUK3XrrrUfd/tRTT9WuXbsUHx9/TNdrLWeffbamTJkS6DIAAAAAAEBb8u710oYPpFfODXQl7R6zioeQXbt2+dbffvttTZ8+XTk5Ob5tMTExvnXDMOR2uxUWduRfgeTk5CbVYbfblZaW1qRjAAAAAAAA2oTC9XUrRkDLAD0uQ0paWprvFR8fL4vF4nu/adMmxcbG6pNPPtHQoUPlcDi0ZMkSbd26VRdffLFSU1MVExOj4cOH6/PPP/c774FDxS0Wi1599VVdeumlioqKUq9evfThhx/69h84VHzOnDlKSEjQp59+qn79+ikmJkZjxozxC1pra2v1m9/8RgkJCUpKStK0adM0ceJEXXLJJYf8vNu3b9e4cePUoUMHRUdH68QTT9THH3/s279u3TpdcMEFiomJUWpqqq699lrt3r1bknT99ddr8eLFevbZZ309Urdt23bsP3wAAAAAABAaDALLtoLg8igZhqFKV21AXkYz3jD33nuvHn30UW3cuFEnn3yyysvLdeGFF2rhwoX6/vvvNWbMGI0bN055eXmHPc+f/vQnXXnllfrhhx904YUXasKECdq7d+8h21dWVuqvf/2r/vnPf+qrr75SXl6e7r77bt/+xx57TK+//rpee+01ff3113I6nXr//fcPW8OkSZNUXV2tr776SmvXrtVjjz3m61VaUlKic889V4MHD9Z3332n+fPnq7CwUFdeeaUk6dlnn1VWVpZuueUW7dq1S7t27VJGRsZR/hQBAAAAAEDIMjyBrgB1GCp+lPbXuNV/+qcBufaGh7IVZW+eP6qHHnpI559/vu99YmKiBg4c6Hv/8MMP67333tOHH36oyZMnH/I8119/va6++mpJ0iOPPKKZM2dq+fLlGjNmTKPta2pqNHv2bJ1wwgmSpMmTJ+uhhx7y7X/uued033336dJLL5UkzZo1y6/3ZGPy8vJ0+eWXa8CAAZKkHj16+PbNmjVLgwcP1iOPPOLb9ve//10ZGRnavHmzevfuLbvdrqioKIa1AwAAAACABuhx2VbQ47KdGTZsmN/78vJy3X333erXr58SEhIUExOjjRs3HrHH5cknn+xbj46OVlxcnIqKig7ZPioqyhdaSlKnTp187UtLS1VYWKgRI0b49ttsNg0dOvSwNfzmN7/Rn//8Z5122ml64IEH9MMPP/j2rVmzRosWLVJMTIzv1bdvX0nS1q1bD3teAAAAAAAABB49Lo9SZLhNGx7KDti1m0t0dLTf+7vvvlsLFizQX//6V/Xs2VORkZG64oor5HK5Dnue8PBwv/cWi0Uez6G7UjfW/niHwN98883Kzs7WvHnz9Nlnn2nGjBl68skndccdd6i8vFzjxo3TY489dtBxnTp1Oq7rAgAAAAAAoOURXB4li8XSbMO125Kvv/5a119/vW+Idnl5eatPUhMfH6/U1FStWLFCZ555piTJ7XZr1apVGjRo0GGPzcjI0G233abbbrtN9913n1555RXdcccdGjJkiP7zn/+oW7duh5w53W63y+12N/fHAQAAAAAAocJdI9nCj9wOLYKh4u1cr1699N///lerV6/WmjVrdM011xy252RLueOOOzRjxgx98MEHysnJ0Z133ql9+/bJYrEc8pgpU6bo008/VW5urlatWqVFixapX79+ksyJe/bu3aurr75aK1as0NatW/Xpp5/qhhtu8IWV3bp107Jly7Rt2zbt3r07IJ8bAAAAAAC0IZ4DOjhVlwWmDkgiuGz3nnrqKXXo0EGnnnqqxo0bp+zsbA0ZMqTV65g2bZquvvpqXXfddcrKylJMTIyys7MVERFxyGPcbrcmTZqkfv36acyYMerdu7deeOEFSVJ6erq+/vprud1ujR49WgMGDNCUKVOUkJAgq9X8tb/77rtls9nUv39/JScnH/G5ngAAAAAAIMRVOw//Hq3KYhzvgwaDmNPpVHx8vEpLSxUXF+e3r6qqSrm5uerevfthwzO0DI/Ho379+unKK6/Uww8/HLA6+D0AAAAAAKAd2bdNenZg/fv/9z+p08mHbI7D52vHK/Qe2oigtH37dn322Wc666yzVF1drVmzZik3N1fXXHNNoEsDAAAAAADBylUpvX+71Ot8afCvjty+qtT/PT0uA4qh4mgTrFar5syZo+HDh+u0007T2rVr9fnnn/ueWQkAAAAAANBkm+dLG96XPph08PMrG3NQcMkzLgOJHpdoEzIyMvT1118HugwAAAAAABBKbPb69fzvpS7DDt/+wOCyih6XgUSPSwAAAAAAAIQmo0Evyy0Lj9yeoeJtCsElAAAAAAAAQlOtq3596xeHb1u513w1dGBwmfOJNHOw9POq5qkPh8VQcQAAAAAAAISm2qr69cJ1kscjVe6RIhMkW7hUuF7652VSch8pd/HBxx84VPzNq8zlK+dIQyZKGSOlk8dLtgYR2/+eklb9n3T9XCkyUTI8UliEfxscFXpcAgAAAAAAIDS5q+vXXeVSzsfSk72lDyab2xY9IpUXHBxa9r/YXDrz63ttumv826z6h/TBr6XV/6rf5vFIC/8k7cuVnj5ReqSTNKNz46EojojgEgAAAAAAAKGp4VBxyQwVDY/0w1uSc5e064fGjxt2k7lc+47052Tpm1lSwSHabvm8fr1w3fHXDB/6qAIAAAAAACA0NexxKUm7N9evL/ijVJpX/94ea/bKPO+PUmaWZLHVT+7z2R8OfY1tS8yellar9NOXB++ftl1yxB7zR2jPCC4BAAAAAAAQmg7scdnQ2nfNZa/R0ln3Sqn9JbdLcsRJFouUNkDatfrQx/e/2JypfP8+s6dlUk9p9ev+bToNNJ+niWPCUPEQYrFYDvt68MEHj+vc77//frPV2pgHH3xQgwYNatFrAAAAAACAdsTb47JjH//t0SnmMrKDlP2I1GWoFB4pRcSboaUkXfhXKeVEacJ/pJsWSLcvlW5dLE1ZK517v3TxC1LX08y2S5+XvvizVLxJcsTXXyc2vWU/X4ijx2UI2bVrl2/97bff1vTp05WTk+PbFhMTE4iyAAAAAAAAAqO2Lrg84Vxpd31GotuWSBs+kHqcLXXs1fixGcOlX3/T+L4zf1e3vFvassB8ZqbXxbOkd64115N7H1f57R09LkNIWlqa7xUfHy+LxeK37a233lK/fv0UERGhvn376oUXXvAd63K5NHnyZHXq1EkRERHq2rWrZsyYIUnq1q2bJOnSSy+VxWLxvT/Q4c4hSSUlJbr55puVnJysuLg4nXvuuVqzZo0kac6cOfrTn/6kNWvW+HqIzpkzp0V+TgAAAAAAoJ3wBpeOGCm5b/322FRp5K3HHyxmjJCGXl//3maXeo6SrnjNHEruDThxTOhxebQMQ6qpDMy1w6Pquykfo9dff13Tp0/XrFmzNHjwYH3//fe65ZZbFB0drYkTJ2rmzJn68MMP9c477ygzM1M7duzQjh07JEkrVqxQSkqKXnvtNY0ZM0Y2m63RaxzuHJL0y1/+UpGRkfrkk08UHx+vl156Seedd542b96s8ePHa926dZo/f74+/9ycjSs+Pr7R6wAAAAAAABwV71Bxm0Ma+6Q05yJpwBXNe41BE6Tv/m6up54k2aOkky4zXzguBJdHq6ZSeiRAzyX4fb5kjz6uUzzwwAN68sknddll5k3TvXt3bdiwQS+99JImTpyovLw89erVS6effrosFou6du3qOzY5OVmSlJCQoLS0tENe43DnWLJkiZYvX66ioiI5HA5J0l//+le9//77+ve//61bb71VMTExCgsLO+w1AAAAAAAAjpp3cp4wh9TtdOnONVJ0cvNeo/PQ+vXU/s177naO4LIdqKio0NatW3XTTTfplltu8W2vra319Wq8/vrrdf7556tPnz4aM2aMLrroIo0ePbpJ1zncOdasWaPy8nIlJSX5HbN//35t3br1OD8hAAAAAABAI7w9LsPMTlTq0PXQbY+VxSL98h/Sd3+Tzrm/+c/fjh1XcPnoo4/qvvvu05133qlnnnlGklRVVaXf/va3euutt1RdXa3s7Gy98MILSk1N9R2Xl5en22+/XYsWLVJMTIwmTpyoGTNmKCysvpwvv/xSU6dO1fr165WRkaH7779f119/vd/1n3/+eT3xxBMqKCjQwIED9dxzz2nEiBHH85EOLTzK7PkYCOFRx3V4eXm5JOmVV17RyJEj/fZ5h30PGTJEubm5+uSTT/T555/ryiuv1KhRo/Tvf//7qK9zuHOUl5erU6dO+vLLLw86LiEh4Zg/GwAAAAAAwCF5e1za7C17nRMvMV9oVsccXK5YsUIvvfSSTj75ZL/td911l+bNm6d3331X8fHxmjx5si677DJ9/fXXkiS3262xY8cqLS1N33zzjXbt2qXrrrtO4eHheuSRRyRJubm5Gjt2rG677Ta9/vrrWrhwoW6++WZ16tRJ2dnZksxZs6dOnarZs2dr5MiReuaZZ5Sdna2cnBylpKQc68c6NIvluIdrB0pqaqrS09P1008/acKECYdsFxcXp/Hjx2v8+PG64oorNGbMGO3du1eJiYkKDw+X2+0+4rUOdY4hQ4aooKBAYWFhh5zcx263H9U1AAAAAAAAjsqBPS4RVI5pVvHy8nJNmDBBr7zyijp06ODbXlpaqr/97W966qmndO6552ro0KF67bXX9M033+jbb7+VJH322WfasGGD/vWvf2nQoEG64IIL9PDDD+v555+Xy2Wm4LNnz1b37t315JNPql+/fpo8ebKuuOIKPf30075rPfXUU7rlllt0ww03qH///po9e7aioqL097///Xh+HiHrT3/6k2bMmKGZM2dq8+bNWrt2rV577TU99dRTksyf55tvvqlNmzZp8+bNevfdd5WWlubrDdmtWzctXLhQBQUF2rdvX6PXONw5Ro0apaysLF1yySX67LPPtG3bNn3zzTf6wx/+oO+++853jdzcXK1evVq7d+9WdXV1q/xsAAAA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\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"X_train_dssa, X_test_dssa, y_train_dssa, y_test_dssa = train_test_split(X_dssa, y_dssa, test_size=0.2, random_state=42, shuffle=False)"
|
|
],
|
|
"metadata": {
|
|
"id": "tmBpUdQwXJvP"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Training Model"
|
|
],
|
|
"metadata": {
|
|
"id": "sX4EhWfQZAeF"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"model_gru_dssa = create_gru_model(100)\n",
|
|
"\n",
|
|
"start_time = time.time()\n",
|
|
"history = model_gru_dssa.fit(X_train_dssa, y_train_dssa, epochs=100, batch_size=32, validation_split=0.1)\n",
|
|
"\n",
|
|
"end_time = time.time()\n",
|
|
"elapsed_time = end_time - start_time\n",
|
|
"\n",
|
|
"print(f\"Waktu training: {elapsed_time:.2f} detik\")"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "54SsB3jhB6XX",
|
|
"outputId": "3cefa1a4-cb3d-4903-a6b3-538f97752edd"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Epoch 1/100\n"
|
|
]
|
|
},
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stderr",
|
|
"text": [
|
|
"/usr/local/lib/python3.11/dist-packages/keras/src/layers/rnn/rnn.py:200: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
|
|
" super().__init__(**kwargs)\n"
|
|
]
|
|
},
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 68ms/step - loss: 0.0010 - val_loss: 1.3904e-05\n",
|
|
"Epoch 2/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 7.0119e-05 - val_loss: 5.8614e-05\n",
|
|
"Epoch 3/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 3.6273e-05 - val_loss: 1.6406e-05\n",
|
|
"Epoch 4/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 3.0979e-05 - val_loss: 1.1849e-05\n",
|
|
"Epoch 5/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.4063e-05 - val_loss: 1.4732e-05\n",
|
|
"Epoch 6/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 2.5219e-05 - val_loss: 1.4240e-05\n",
|
|
"Epoch 7/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.9691e-05 - val_loss: 1.1127e-05\n",
|
|
"Epoch 8/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.6204e-05 - val_loss: 1.0614e-05\n",
|
|
"Epoch 9/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 2.8645e-05 - val_loss: 1.0287e-05\n",
|
|
"Epoch 10/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 2.2182e-05 - val_loss: 1.0952e-05\n",
|
|
"Epoch 11/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 35ms/step - loss: 2.4807e-05 - val_loss: 1.3093e-05\n",
|
|
"Epoch 12/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 3.0003e-05 - val_loss: 1.2617e-05\n",
|
|
"Epoch 13/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.1352e-05 - val_loss: 9.9505e-06\n",
|
|
"Epoch 14/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.9796e-05 - val_loss: 8.8470e-06\n",
|
|
"Epoch 15/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 2.1070e-05 - val_loss: 9.2233e-06\n",
|
|
"Epoch 16/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.5897e-05 - val_loss: 1.1264e-05\n",
|
|
"Epoch 17/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 2.1497e-05 - val_loss: 8.2220e-06\n",
|
|
"Epoch 18/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 25ms/step - loss: 1.9787e-05 - val_loss: 2.3476e-05\n",
|
|
"Epoch 19/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 2.1493e-05 - val_loss: 3.0296e-05\n",
|
|
"Epoch 20/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 35ms/step - loss: 2.3328e-05 - val_loss: 1.3040e-05\n",
|
|
"Epoch 21/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 2.0738e-05 - val_loss: 7.6789e-06\n",
|
|
"Epoch 22/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.7374e-05 - val_loss: 4.2427e-05\n",
|
|
"Epoch 23/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 2.2584e-05 - val_loss: 8.9704e-06\n",
|
|
"Epoch 24/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 2.2772e-05 - val_loss: 1.5896e-05\n",
|
|
"Epoch 25/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 2.1244e-05 - val_loss: 1.3325e-05\n",
|
|
"Epoch 26/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.8138e-05 - val_loss: 6.6058e-06\n",
|
|
"Epoch 27/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 2.1266e-05 - val_loss: 1.3053e-05\n",
|
|
"Epoch 28/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 2.7409e-05 - val_loss: 7.5037e-06\n",
|
|
"Epoch 29/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 2.1759e-05 - val_loss: 1.4107e-05\n",
|
|
"Epoch 30/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 2.1703e-05 - val_loss: 7.2739e-06\n",
|
|
"Epoch 31/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.9047e-05 - val_loss: 8.9616e-06\n",
|
|
"Epoch 32/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.8571e-05 - val_loss: 6.1350e-06\n",
|
|
"Epoch 33/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 2.1641e-05 - val_loss: 9.2258e-06\n",
|
|
"Epoch 34/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.4440e-05 - val_loss: 7.2591e-06\n",
|
|
"Epoch 35/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.1740e-05 - val_loss: 8.2017e-06\n",
|
|
"Epoch 36/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.5298e-05 - val_loss: 5.9470e-06\n",
|
|
"Epoch 37/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 27ms/step - loss: 1.3562e-05 - val_loss: 8.1021e-06\n",
|
|
"Epoch 38/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 35ms/step - loss: 1.6456e-05 - val_loss: 5.9867e-06\n",
|
|
"Epoch 39/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.5795e-05 - val_loss: 5.7918e-06\n",
|
|
"Epoch 40/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.6047e-05 - val_loss: 8.4087e-06\n",
|
|
"Epoch 41/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.8081e-05 - val_loss: 1.1000e-05\n",
|
|
"Epoch 42/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.2178e-05 - val_loss: 5.0737e-06\n",
|
|
"Epoch 43/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.0312e-05 - val_loss: 5.1361e-06\n",
|
|
"Epoch 44/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.3883e-05 - val_loss: 7.9759e-06\n",
|
|
"Epoch 45/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.3585e-05 - val_loss: 5.2223e-06\n",
|
|
"Epoch 46/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.4344e-05 - val_loss: 6.6634e-06\n",
|
|
"Epoch 47/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.6109e-05 - val_loss: 6.4313e-06\n",
|
|
"Epoch 48/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.4422e-05 - val_loss: 1.0266e-05\n",
|
|
"Epoch 49/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.3127e-05 - val_loss: 7.4248e-06\n",
|
|
"Epoch 50/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.4098e-05 - val_loss: 1.7432e-05\n",
|
|
"Epoch 51/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.5665e-05 - val_loss: 5.0212e-06\n",
|
|
"Epoch 52/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.3220e-05 - val_loss: 1.8317e-05\n",
|
|
"Epoch 53/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.4225e-05 - val_loss: 1.0309e-05\n",
|
|
"Epoch 54/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 2.0958e-05 - val_loss: 8.0765e-06\n",
|
|
"Epoch 55/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.7236e-05 - val_loss: 5.0938e-06\n",
|
|
"Epoch 56/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 1.7097e-05 - val_loss: 9.8849e-06\n",
|
|
"Epoch 57/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 32ms/step - loss: 1.5159e-05 - val_loss: 4.8778e-06\n",
|
|
"Epoch 58/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.0558e-05 - val_loss: 9.1439e-06\n",
|
|
"Epoch 59/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.8162e-05 - val_loss: 4.7532e-06\n",
|
|
"Epoch 60/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.4689e-05 - val_loss: 5.4592e-06\n",
|
|
"Epoch 61/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.3971e-05 - val_loss: 7.9401e-06\n",
|
|
"Epoch 62/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.8781e-05 - val_loss: 4.5423e-06\n",
|
|
"Epoch 63/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.5364e-05 - val_loss: 4.2929e-06\n",
|
|
"Epoch 64/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.0846e-05 - val_loss: 4.1504e-06\n",
|
|
"Epoch 65/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.5690e-05 - val_loss: 4.9555e-06\n",
|
|
"Epoch 66/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.1853e-05 - val_loss: 8.0127e-06\n",
|
|
"Epoch 67/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.2843e-05 - val_loss: 5.5549e-06\n",
|
|
"Epoch 68/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.2391e-05 - val_loss: 4.5328e-06\n",
|
|
"Epoch 69/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.0328e-05 - val_loss: 5.0042e-06\n",
|
|
"Epoch 70/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.3562e-05 - val_loss: 1.5186e-05\n",
|
|
"Epoch 71/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.4885e-05 - val_loss: 3.9889e-06\n",
|
|
"Epoch 72/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.3049e-05 - val_loss: 1.3736e-05\n",
|
|
"Epoch 73/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.6799e-05 - val_loss: 5.5536e-06\n",
|
|
"Epoch 74/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.2427e-05 - val_loss: 4.5323e-06\n",
|
|
"Epoch 75/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 32ms/step - loss: 1.3558e-05 - val_loss: 1.0570e-05\n",
|
|
"Epoch 76/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 36ms/step - loss: 1.2270e-05 - val_loss: 1.2344e-05\n",
|
|
"Epoch 77/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.1605e-05 - val_loss: 4.0330e-06\n",
|
|
"Epoch 78/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.2763e-05 - val_loss: 5.2620e-06\n",
|
|
"Epoch 79/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.1389e-05 - val_loss: 4.9307e-06\n",
|
|
"Epoch 80/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.0679e-05 - val_loss: 4.5947e-06\n",
|
|
"Epoch 81/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.2539e-05 - val_loss: 4.1249e-06\n",
|
|
"Epoch 82/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.2854e-05 - val_loss: 3.9017e-06\n",
|
|
"Epoch 83/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.1152e-05 - val_loss: 4.0156e-06\n",
|
|
"Epoch 84/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.3847e-05 - val_loss: 6.0185e-06\n",
|
|
"Epoch 85/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.1585e-05 - val_loss: 5.1645e-06\n",
|
|
"Epoch 86/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.1454e-05 - val_loss: 4.0461e-06\n",
|
|
"Epoch 87/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.0926e-05 - val_loss: 4.2207e-06\n",
|
|
"Epoch 88/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.3190e-05 - val_loss: 4.0996e-06\n",
|
|
"Epoch 89/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 9.4316e-06 - val_loss: 4.9485e-06\n",
|
|
"Epoch 90/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.0185e-05 - val_loss: 4.6156e-06\n",
|
|
"Epoch 91/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.1784e-05 - val_loss: 3.9709e-06\n",
|
|
"Epoch 92/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.1216e-05 - val_loss: 4.0491e-06\n",
|
|
"Epoch 93/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 36ms/step - loss: 1.1631e-05 - val_loss: 1.5254e-05\n",
|
|
"Epoch 94/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 43ms/step - loss: 1.4119e-05 - val_loss: 3.9365e-06\n",
|
|
"Epoch 95/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 39ms/step - loss: 1.1023e-05 - val_loss: 6.1368e-06\n",
|
|
"Epoch 96/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 44ms/step - loss: 9.7256e-06 - val_loss: 1.4386e-05\n",
|
|
"Epoch 97/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 1.2083e-05 - val_loss: 5.9163e-06\n",
|
|
"Epoch 98/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.0165e-05 - val_loss: 4.8853e-06\n",
|
|
"Epoch 99/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 1.0427e-05 - val_loss: 8.8672e-06\n",
|
|
"Epoch 100/100\n",
|
|
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.6594e-05 - val_loss: 1.0703e-05\n",
|
|
"Waktu training: 74.40 detik\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"model_gru_dssa.summary()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 302
|
|
},
|
|
"id": "1Lnb7HP6ZsoZ",
|
|
"outputId": "da116e1f-749f-4036-c9b0-988d6e4aa192"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1mModel: \"sequential_2\"\u001b[0m\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_2\"</span>\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"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",
|
|
"│ gru_4 (\u001b[38;5;33mGRU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m32,100\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_4 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ gru_5 (\u001b[38;5;33mGRU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m60,600\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_5 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m101\u001b[0m │\n",
|
|
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
|
|
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
|
|
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
|
|
"│ gru_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GRU</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">32,100</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">7</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ gru_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">GRU</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">60,600</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dropout_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
|
|
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
|
|
"│ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">101</span> │\n",
|
|
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m278,405\u001b[0m (1.06 MB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">278,405</span> (1.06 MB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m92,801\u001b[0m (362.50 KB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">92,801</span> (362.50 KB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m185,604\u001b[0m (725.02 KB)\n"
|
|
],
|
|
"text/html": [
|
|
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Optimizer params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">185,604</span> (725.02 KB)\n",
|
|
"</pre>\n"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Plot training history"
|
|
],
|
|
"metadata": {
|
|
"id": "TLne89uzZFpo"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"plt.plot(history.history['loss'], label='Training Loss')\n",
|
|
"plt.plot(history.history['val_loss'], label='Validation Loss')\n",
|
|
"plt.title('Model Loss')\n",
|
|
"plt.ylabel('Loss')\n",
|
|
"plt.xlabel('Epoch')\n",
|
|
"plt.legend(loc='upper right')\n",
|
|
"plt.show()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"id": "CMfKu88fY9bN",
|
|
"outputId": "450c500b-4201-4547-ebac-1c33846b66a0"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
],
|
|
"image/png": "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PESNHDkSly9fxvz582EwGBAUFITt27fLA8OTk5OhVpcXzHr06IF169Zh7ty5ePXVV+Hn54dNmzaZhZuZM2ciLy8PEydORGZmJnr16oXt27fDxsZGbrN27VpMnjwZffv2hVqtxvDhw7F06dL6e+F3qKwSVcp1ooiIiBSh+DpRDVldrRMFAD3f3YULmQX4cVJPBPq41OpjExER3cssYp0oqjmthgPLiYiIlMQQZaG42CYREZGyGKIslDwmirPziIiIFMEQZaHKZuexEkVERKQMhigLpeVim0RERIpiiLJQ8pgoLnFARESkCIYoC8VKFBERkbIYoiwUZ+cREREpiyHKQpWvE8XZeUREREpgiLJQnJ1HRESkLIYoC8UxUURERMpiiLJQHBNFRESkLIYoC8VKFBERkbIYoixU+TpRHFhORESkBIYoC8VKFBERkbIYoiwUZ+cREREpiyHKQrESRUREpCyGKAul5uw8IiIiRTFEWShWooiIiJTFEGWhyteJ4uw8IiIiJTBEWShWooiIiJTFEGWhNJqydaIYooiIiJTAEGWhWIkiIiJSFkOUheI6UURERMpiiLJQrEQREREpiyHKQnF2HhERkbIYoiwUK1FERETKYoiyUBquWE5ERKQohigLpWWIIiIiUhRDlIXSaDg7j4iISEkMURaKY6KIiIiUxRBloTgmioiISFkMURaKlSgiIiJlMURZKK4TRUREpCyGKAulvXbal1KegJiIiEgRDFEWimOiiIiIlMUQZaE4JoqIiEhZDFEWSqNhJYqIiEhJDFEWipUoIiIiZTFEWSjOziMiIlIWQ5SFkmfnsRJFRESkCIYoC8XZeURERMpiiLJQ8pgorhNFRESkCIYoC8VKFBERkbIYoiyUVsPZeUREREpiiLJQWs7OIyIiUhRDlIXScHYeERGRohiiLJSWY6KIiIgUxRBloTRcsZyIiEhRDFEWipUoIiIiZTFEWajrlzgQgkGKiIiovjFEWaiy074ArEYREREpgSHKQmmurRMFcFwUERGREhiiLFTZmCiAlSgiIiIlMERZKLWKlSgiIiIlMURZKFaiiIiIlMUQZaHUahXKilGlPPULERFRvWOIsmBcK4qIiEg5d0WIWr58OVq0aAEbGxuEhIRg3759N22/ceNG+Pv7w8bGBh07dsTWrVvNbhdCYP78+fDy8oKtrS3CwsJw6tQp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\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"##Prediction"
|
|
],
|
|
"metadata": {
|
|
"id": "9HAzJVX2ZQh_"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"y_pred_dssa = model_gru_dssa.predict(X_test_dssa)"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "GD3tLrevZIfp",
|
|
"outputId": "9c8475ff-71fe-4935-d3df-f8814d300e04"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 75ms/step\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Evaluasi Model"
|
|
],
|
|
"metadata": {
|
|
"id": "tvhL7dyI8D6o"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"def evaluate_model(y_true, y_pred):\n",
|
|
" rmse = np.sqrt(mean_squared_error(y_true, y_pred))\n",
|
|
" mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100\n",
|
|
" r2 = r2_score(y_true, y_pred)\n",
|
|
"\n",
|
|
" print(f'RMSE: {rmse:.3f}')\n",
|
|
" print(f'MAPE: {mape:.3f}%')\n",
|
|
" print(f'R-squared: {r2:.5f}')\n",
|
|
"\n",
|
|
" return rmse, mape, r2"
|
|
],
|
|
"metadata": {
|
|
"id": "pFkrWMJ37626"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Evaluate ADRO model\n",
|
|
"print(\"Evaluation for ADRO:\")\n",
|
|
"rmse_adro, mape_adro, r2_adro = evaluate_model(y_test_adro, y_pred_adro)\n",
|
|
"\n",
|
|
"# Evaluate DSSA model\n",
|
|
"print(\"\\nEvaluation for DSSA:\")\n",
|
|
"rmse_dssa, mape_dssa, r2_dssa = evaluate_model(y_test_dssa, y_pred_dssa)"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "DIP9i7U179Ge",
|
|
"outputId": "fdbb8e89-4d2b-4cb1-c0ce-5d18bea6fc39"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Evaluation for ADRO:\n",
|
|
"RMSE: 0.015\n",
|
|
"MAPE: 17.732%\n",
|
|
"R-squared: 0.97978\n",
|
|
"\n",
|
|
"Evaluation for DSSA:\n",
|
|
"RMSE: 0.024\n",
|
|
"MAPE: 119.468%\n",
|
|
"R-squared: 0.99261\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Invert"
|
|
],
|
|
"metadata": {
|
|
"id": "hzSUZCSbCL9Z"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"##ADRO"
|
|
],
|
|
"metadata": {
|
|
"id": "pJa4isLfCNsC"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"dummy_input_adro = np.zeros((len(y_pred_adro), 5))\n",
|
|
"dummy_input_adro[:, 1] = y_pred_adro.reshape(-1)\n",
|
|
"dummy_input_adro"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "dWQOkYIgCHyh",
|
|
"outputId": "cf119df7-127e-42c6-aa6c-c3b293c513f1"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[0. , 0.59867561, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.58274603, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.58338583, 0. , 0. , 0. ],\n",
|
|
" ...,\n",
|
|
" [0. , 0.86513734, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.85737336, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.87373042, 0. , 0. , 0. ]])"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 51
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"inverted_adro = scaler.inverse_transform(dummy_input_adro)\n",
|
|
"pred_lstm_adro_real = inverted_adro[:, 1]\n",
|
|
"pred_lstm_adro_real = pred_lstm_adro_real / 10\n",
|
|
"pred_lstm_adro_real"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "aQjUEPQSCJwf",
|
|
"outputId": "a60961ec-8825-45f2-ec30-3d36237e9a19"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"array([2717.49188167, 2647.63270974, 2650.43853623, 2710.21827185,\n",
|
|
" 2705.91203135, 2778.27799255, 2775.82139134, 2752.89119655,\n",
|
|
" 2638.51756391, 2596.12773126, 2596.56739962, 2568.30681413,\n",
|
|
" 2564.34927613, 2476.62628996, 2455.55566752, 2320.5304305 ,\n",
|
|
" 2284.42416967, 2353.0415791 , 2400.62430805, 2348.04342294,\n",
|
|
" 2313.68263504, 2329.64923587, 2350.93681714, 2354.59557933,\n",
|
|
" 2359.07904643, 2397.5633589 , 2400.07589889, 2414.65683863,\n",
|
|
" 2430.57534257, 2484.84563112, 2486.43361285, 2458.59204543,\n",
|
|
" 2438.57275838, 2451.84384191, 2480.54487994, 2481.09485748,\n",
|
|
" 2510.52989596, 2484.13672471, 2472.22646964, 2422.3499893 ,\n",
|
|
" 2417.35496989, 2434.01453197, 2461.70945615, 2461.09726632,\n",
|
|
" 2443.55052564, 2348.40728641, 2365.10318255, 2405.46248975,\n",
|
|
" 2396.72479999, 2488.95504031, 2489.36307973, 2495.19796503,\n",
|
|
" 2490.23300618, 2497.44126695, 2484.13149679, 2298.10995823,\n",
|
|
" 2357.33239722, 2295.34020442, 2325.81011033, 2322.15788305,\n",
|
|
" 2321.29632127, 2302.91128308, 2324.25584871, 2317.72904775,\n",
|
|
" 2341.59242687, 2382.70847598, 2378.60847706, 2372.53728962,\n",
|
|
" 2341.79291773, 2314.99327543, 2276.00028601, 2222.79205009,\n",
|
|
" 2200.50475918, 2209.81346887, 2223.09670733, 2247.32277364,\n",
|
|
" 2238.33832589, 2265.10006574, 2281.11842301, 2279.93534395,\n",
|
|
" 2299.53038502, 2323.98033714, 2325.88303986, 2340.25407848,\n",
|
|
" 2349.21447778, 2401.15180552, 2400.26201296, 2331.42986658,\n",
|
|
" 2310.72441459, 2289.51263821, 2296.6176475 , 2289.04055673,\n",
|
|
" 2242.24580653, 2242.01721558, 2253.47917622, 2270.69969448,\n",
|
|
" 2343.22380036, 2409.54758909, 2503.92415336, 2565.80368441,\n",
|
|
" 2610.40309888, 2598.52630252, 2533.79049551, 2573.74542284,\n",
|
|
" 2568.66466549, 2554.08111179, 2548.82521901, 2558.8981204 ,\n",
|
|
" 2574.30167389, 2572.95234686, 2583.77101153, 2658.1246292 ,\n",
|
|
" 2656.90390909, 2643.38659036, 2581.07000491, 2604.08463067,\n",
|
|
" 2609.79718256, 2615.92849112, 2625.21145329, 2740.81260234,\n",
|
|
" 2711.06414986, 2680.85511732, 2701.46568251, 2703.79759774,\n",
|
|
" 2704.04174176, 2642.28585109, 2570.40634817, 2541.03352198,\n",
|
|
" 2576.14007315, 2631.40680391, 2661.32019737, 2657.97040546,\n",
|
|
" 2771.33008236, 2764.32048267, 2813.36206365, 2901.83943915,\n",
|
|
" 2864.98414761, 2837.95892042, 2847.4120515 , 2848.34784979,\n",
|
|
" 2874.93393141, 2868.52475873, 2885.06564695, 2859.78157964,\n",
|
|
" 2657.77749509, 2637.46910387, 2680.38930935, 2717.00359362,\n",
|
|
" 2867.64150107, 2875.92932802, 2841.51051018, 2819.12375802,\n",
|
|
" 2813.87361595, 2731.90474367, 2686.94460249, 2737.90430856,\n",
|
|
" 2741.07269153, 2736.12916717, 2639.25914484, 2664.1299448 ,\n",
|
|
" 2679.56460443, 2660.32819891, 2643.07186937, 2680.29363835,\n",
|
|
" 2690.32131821, 2727.75638646, 2750.70540178, 2791.44608599,\n",
|
|
" 2850.64055559, 2837.55976847, 2872.57587656, 2868.66512847,\n",
|
|
" 2874.66992128, 2878.25366277, 2842.80938774, 2802.38054916,\n",
|
|
" 2830.31935596, 2842.62170529, 2869.2161516 , 2991.21758586,\n",
|
|
" 3099.89827132, 3200.2791056 , 3179.94771153, 3198.4775632 ,\n",
|
|
" 3174.36428934, 3208.74520475, 3222.26252347, 3268.81874967,\n",
|
|
" 3274.0231474 , 3285.33585083, 3373.99620366, 3179.62096632,\n",
|
|
" 3228.07545149, 3280.61242205, 3237.68803424, 3230.90323526,\n",
|
|
" 3275.92140639, 3279.64943856, 3267.57241273, 3250.79025584,\n",
|
|
" 3327.58531374, 3328.2910834 , 3324.26924193, 3322.47815537,\n",
|
|
" 3407.6990574 , 3530.30745357, 3562.68921107, 3616.17923206,\n",
|
|
" 3631.06626672, 3639.20457506, 3671.30193353, 3732.37244344,\n",
|
|
" 3720.69012582, 3688.14159757, 3663.70732921, 3598.97099942,\n",
|
|
" 3588.61709714, 3607.70215428, 3620.7693488 , 4050.10471559,\n",
|
|
" 3838.81400931, 3906.01896453, 3831.63973004, 3813.1961391 ,\n",
|
|
" 3844.40631896, 3855.13924569, 3886.0597986 , 3852.01085633,\n",
|
|
" 3923.74476159])"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 52
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## DSSA"
|
|
],
|
|
"metadata": {
|
|
"id": "CKuQRfZNCPnM"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"dummy_input_dssa = np.zeros((len(y_pred_dssa), 5))\n",
|
|
"dummy_input_dssa[:, 1] = y_pred_dssa.reshape(-1)\n",
|
|
"dummy_input_dssa"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "JlOqbpahCQqW",
|
|
"outputId": "ba01b489-9be6-4d9b-a0f7-cccdc2ead39a"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[0. , 0.09904999, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.09905533, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.09918468, 0. , 0. , 0. ],\n",
|
|
" ...,\n",
|
|
" [0. , 0.9006694 , 0. , 0. , 0. ],\n",
|
|
" [0. , 0.89220369, 0. , 0. , 0. ],\n",
|
|
" [0. , 0.91206467, 0. , 0. , 0. ]])"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 53
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"inverted_dssa = scaler.inverse_transform(dummy_input_dssa)\n",
|
|
"pred_lstm_dssa_real = inverted_dssa[:, 1]\n",
|
|
"pred_lstm_dssa_real"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "rk8ks9rxCQsO",
|
|
"outputId": "569ff6f7-064a-4549-bee3-9ac0923de227"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
"array([ 5263.8371101 , 5264.07171316, 5269.74433679, 5268.91211674,\n",
|
|
" 5271.91686571, 5273.37186214, 5225.44944886, 5114.65700909,\n",
|
|
" 5130.53976711, 5132.36659959, 5139.50336851, 5139.12957199,\n",
|
|
" 5190.44882849, 5183.42315294, 5242.03078814, 5234.8368388 ,\n",
|
|
" 5232.02584974, 5231.58082277, 5232.26339351, 5117.61764746,\n",
|
|
" 5132.92206645, 5249.03587874, 5234.87114705, 5233.96769654,\n",
|
|
" 5238.90612368, 5231.81150489, 5233.66839793, 5291.66175213,\n",
|
|
" 5284.19725776, 5283.88292886, 5283.44247632, 5283.55160922,\n",
|
|
" 5283.76726106, 5283.91658362, 5283.91658362, 5283.91658362,\n",
|
|
" 5283.91658362, 5283.91658362, 5283.91658362, 5283.91658362,\n",
|
|
" 5283.91658362, 5283.91658362, 5283.91658362, 6176.65867418,\n",
|
|
" 7240.93971387, 8174.00052987, 8435.96588969, 8140.279117 ,\n",
|
|
" 8097.96103761, 7920.85663728, 8137.76448585, 8143.8419468 ,\n",
|
|
" 8139.52956349, 8137.32534029, 8135.38316675, 8135.99810123,\n",
|
|
" 7789.32143122, 7839.62712407, 7840.14468849, 7842.6619336 ,\n",
|
|
" 7852.80606546, 7849.88300279, 7848.97922553, 7848.90211366,\n",
|
|
" 9367.98830941, 10154.55487005, 11526.78346977, 12679.28179577,\n",
|
|
" 13670.40458247, 14465.70765659, 14164.21854243, 13609.06143636,\n",
|
|
" 13429.75673378, 15376.52823299, 15413.7405917 , 14756.59454212,\n",
|
|
" 14338.59592721, 15214.59984079, 14384.92839828, 14448.36532772,\n",
|
|
" 12282.27590725, 12203.87143314, 12099.01889458, 12216.70598507,\n",
|
|
" 12200.47066897, 12187.0113802 , 13339.77371633, 12959.96638879,\n",
|
|
" 11458.50090884, 12261.52758628, 12114.140663 , 12102.20269993,\n",
|
|
" 13256.83401868, 13019.03800219, 12982.51180843, 12967.30377927,\n",
|
|
" 12981.45968884, 12994.35958982, 13001.17418796, 11963.49412948,\n",
|
|
" 12127.54244462, 12123.36402684, 10844.29571502, 12465.08854643,\n",
|
|
" 12296.73503637, 12264.54409808, 12671.60720423, 12603.10180306,\n",
|
|
" 12609.11260799, 12606.90381035, 11160.87588355, 12558.93107831,\n",
|
|
" 12430.78029916, 12422.99853519, 12408.1956701 , 12410.22541136,\n",
|
|
" 12413.70459437, 11523.88981417, 12589.51443017, 12435.81871033,\n",
|
|
" 12400.83214 , 12388.21716085, 12396.123088 , 12405.27587488,\n",
|
|
" 12414.19079125, 12419.7219342 , 12653.76168773, 12615.9494248 ,\n",
|
|
" 12617.23418698, 12615.4514651 , 12383.53686243, 12460.34812689,\n",
|
|
" 12642.92681649, 12622.20332816, 12971.98799863, 12914.15801704,\n",
|
|
" 12915.6139937 , 12844.7913155 , 12933.69084582, 12903.02907512,\n",
|
|
" 13199.58825752, 16251.19510517, 18700.17922327, 17771.75884277,\n",
|
|
" 20630.74808091, 21602.60989085, 21007.16902107, 21003.64017278,\n",
|
|
" 20942.32055232, 19598.13649416, 19247.70748213, 19810.44377014,\n",
|
|
" 19674.05770466, 19165.141581 , 20484.0656203 , 20721.24343485,\n",
|
|
" 23216.76914096, 21235.99653497, 24452.70773828, 23886.57591403,\n",
|
|
" 23810.92786252, 23696.42065644, 23750.50613791, 24016.37740999,\n",
|
|
" 24216.35854959, 25057.43470699, 27605.45921981, 27327.55065411,\n",
|
|
" 26479.96311814, 26690.13086647, 26755.03814936, 27370.04582942,\n",
|
|
" 28335.49951226, 27849.06476617, 27700.14998227, 28497.39261597,\n",
|
|
" 28894.15540606, 28686.84471786, 28697.07576394, 29062.31678993,\n",
|
|
" 28096.21223062, 28638.23025823, 28803.59208912, 28784.13637221,\n",
|
|
" 28724.72102284, 29121.17013752, 29796.51589543, 29266.09601587,\n",
|
|
" 29323.20323706, 29451.18541569, 31853.28290284, 31005.13597906,\n",
|
|
" 31647.26089776, 31539.04288352, 31229.41912055, 31299.45761025,\n",
|
|
" 38365.12938827, 42503.43069017, 40207.69269049, 39307.46519387,\n",
|
|
" 39300.09382188, 39903.73338252, 39774.57492113, 40447.23875433,\n",
|
|
" 40348.98777604, 40209.6165663 , 40753.08272868, 41016.88374311,\n",
|
|
" 40510.27966857, 40984.49152976, 41779.71618503, 40270.07750034,\n",
|
|
" 40476.8314147 , 40214.65628445, 40441.86183512, 40444.41306174,\n",
|
|
" 40447.32240111, 40910.56346506, 40461.58156216, 40685.14063627,\n",
|
|
" 40581.24088675, 40204.85131413, 39634.15551275, 39252.49096543,\n",
|
|
" 40659.79304969, 40667.24284053, 40418.85635823, 40047.5927645 ,\n",
|
|
" 40918.59616935])"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 54
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Simpan Prediksi"
|
|
],
|
|
"metadata": {
|
|
"id": "kKqK1aekCE7v"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"adro_actual = adro['High'].iloc[919:]\n",
|
|
"dssa_actual = dssa['High'].iloc[919:]"
|
|
],
|
|
"metadata": {
|
|
"id": "j5L61dhpCVM8"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Create dataframes for predictions\n",
|
|
"df_pred_adro = pd.DataFrame({'Actual ADRO': adro_actual.values, 'Predicted ADRO': pred_lstm_adro_real.flatten()})\n",
|
|
"df_pred_dssa = pd.DataFrame({'Actual DSSA': dssa_actual.values, 'Predicted DSSA': pred_lstm_dssa_real.flatten()})"
|
|
],
|
|
"metadata": {
|
|
"id": "l3TYuAzlojtM"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"df_pred_adro.tail()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"id": "O_3GsadQF9g9",
|
|
"outputId": "dc4f4031-9a82-44a2-f4f5-145cba0b992f"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Actual ADRO Predicted ADRO\n",
|
|
"224 3740.0 3844.406319\n",
|
|
"225 3760.0 3855.139246\n",
|
|
"226 3760.0 3886.059799\n",
|
|
"227 3780.0 3852.010856\n",
|
|
"228 3940.0 3923.744762"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-238f263e-2e2c-479b-98b4-922658956478\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Actual ADRO</th>\n",
|
|
" <th>Predicted ADRO</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>224</th>\n",
|
|
" <td>3740.0</td>\n",
|
|
" <td>3844.406319</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>225</th>\n",
|
|
" <td>3760.0</td>\n",
|
|
" <td>3855.139246</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>226</th>\n",
|
|
" <td>3760.0</td>\n",
|
|
" <td>3886.059799</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>227</th>\n",
|
|
" <td>3780.0</td>\n",
|
|
" <td>3852.010856</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>228</th>\n",
|
|
" <td>3940.0</td>\n",
|
|
" <td>3923.744762</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-238f263e-2e2c-479b-98b4-922658956478')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-238f263e-2e2c-479b-98b4-922658956478 button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-238f263e-2e2c-479b-98b4-922658956478');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-4ffc460c-9efb-413d-b8e2-ea04e28b8cc4\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4ffc460c-9efb-413d-b8e2-ea04e28b8cc4')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-4ffc460c-9efb-413d-b8e2-ea04e28b8cc4 button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"summary": "{\n \"name\": \"df_pred_adro\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"Actual ADRO\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 81.7312669668102,\n \"min\": 3740.0,\n \"max\": 3940.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 3760.0,\n 3940.0,\n 3740.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Predicted ADRO\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 32.86369565366576,\n \"min\": 3844.406318962574,\n \"max\": 3923.7447615861893,\n \"num_unique_values\": 5,\n \"samples\": [\n 3855.1392456889153,\n 3923.7447615861893,\n 3886.0597985982895\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 57
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"df_pred_dssa.tail()"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 206
|
|
},
|
|
"id": "pDpLLa7qF_bx",
|
|
"outputId": "363a6685-0e9d-45ee-c801-c5304b56cf75"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "execute_result",
|
|
"data": {
|
|
"text/plain": [
|
|
" Actual DSSA Predicted DSSA\n",
|
|
"224 41575.0 40659.793050\n",
|
|
"225 42150.0 40667.242841\n",
|
|
"226 41250.0 40418.856358\n",
|
|
"227 42000.0 40047.592764\n",
|
|
"228 42000.0 40918.596169"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <div id=\"df-4032b415-bd0b-41ad-b312-7248ee3601f2\" class=\"colab-df-container\">\n",
|
|
" <div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Actual DSSA</th>\n",
|
|
" <th>Predicted DSSA</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>224</th>\n",
|
|
" <td>41575.0</td>\n",
|
|
" <td>40659.793050</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>225</th>\n",
|
|
" <td>42150.0</td>\n",
|
|
" <td>40667.242841</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>226</th>\n",
|
|
" <td>41250.0</td>\n",
|
|
" <td>40418.856358</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>227</th>\n",
|
|
" <td>42000.0</td>\n",
|
|
" <td>40047.592764</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>228</th>\n",
|
|
" <td>42000.0</td>\n",
|
|
" <td>40918.596169</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>\n",
|
|
" <div class=\"colab-df-buttons\">\n",
|
|
"\n",
|
|
" <div class=\"colab-df-container\">\n",
|
|
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4032b415-bd0b-41ad-b312-7248ee3601f2')\"\n",
|
|
" title=\"Convert this dataframe to an interactive table.\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
|
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
|
" </svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
" <style>\n",
|
|
" .colab-df-container {\n",
|
|
" display:flex;\n",
|
|
" gap: 12px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert {\n",
|
|
" background-color: #E8F0FE;\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: #1967D2;\n",
|
|
" height: 32px;\n",
|
|
" padding: 0 0 0 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-convert:hover {\n",
|
|
" background-color: #E2EBFA;\n",
|
|
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: #174EA6;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-buttons div {\n",
|
|
" margin-bottom: 4px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert {\n",
|
|
" background-color: #3B4455;\n",
|
|
" fill: #D2E3FC;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-convert:hover {\n",
|
|
" background-color: #434B5C;\n",
|
|
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
|
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
|
" fill: #FFFFFF;\n",
|
|
" }\n",
|
|
" </style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" const buttonEl =\n",
|
|
" document.querySelector('#df-4032b415-bd0b-41ad-b312-7248ee3601f2 button.colab-df-convert');\n",
|
|
" buttonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
"\n",
|
|
" async function convertToInteractive(key) {\n",
|
|
" const element = document.querySelector('#df-4032b415-bd0b-41ad-b312-7248ee3601f2');\n",
|
|
" const dataTable =\n",
|
|
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
|
" [key], {});\n",
|
|
" if (!dataTable) return;\n",
|
|
"\n",
|
|
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
|
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
|
" + ' to learn more about interactive tables.';\n",
|
|
" element.innerHTML = '';\n",
|
|
" dataTable['output_type'] = 'display_data';\n",
|
|
" await google.colab.output.renderOutput(dataTable, element);\n",
|
|
" const docLink = document.createElement('div');\n",
|
|
" docLink.innerHTML = docLinkHtml;\n",
|
|
" element.appendChild(docLink);\n",
|
|
" }\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
"\n",
|
|
" <div id=\"df-be2bd1a2-e90c-4400-976c-4a0ad78e49bf\">\n",
|
|
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-be2bd1a2-e90c-4400-976c-4a0ad78e49bf')\"\n",
|
|
" title=\"Suggest charts\"\n",
|
|
" style=\"display:none;\">\n",
|
|
"\n",
|
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
|
" width=\"24px\">\n",
|
|
" <g>\n",
|
|
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
|
" </g>\n",
|
|
"</svg>\n",
|
|
" </button>\n",
|
|
"\n",
|
|
"<style>\n",
|
|
" .colab-df-quickchart {\n",
|
|
" --bg-color: #E8F0FE;\n",
|
|
" --fill-color: #1967D2;\n",
|
|
" --hover-bg-color: #E2EBFA;\n",
|
|
" --hover-fill-color: #174EA6;\n",
|
|
" --disabled-fill-color: #AAA;\n",
|
|
" --disabled-bg-color: #DDD;\n",
|
|
" }\n",
|
|
"\n",
|
|
" [theme=dark] .colab-df-quickchart {\n",
|
|
" --bg-color: #3B4455;\n",
|
|
" --fill-color: #D2E3FC;\n",
|
|
" --hover-bg-color: #434B5C;\n",
|
|
" --hover-fill-color: #FFFFFF;\n",
|
|
" --disabled-bg-color: #3B4455;\n",
|
|
" --disabled-fill-color: #666;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart {\n",
|
|
" background-color: var(--bg-color);\n",
|
|
" border: none;\n",
|
|
" border-radius: 50%;\n",
|
|
" cursor: pointer;\n",
|
|
" display: none;\n",
|
|
" fill: var(--fill-color);\n",
|
|
" height: 32px;\n",
|
|
" padding: 0;\n",
|
|
" width: 32px;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart:hover {\n",
|
|
" background-color: var(--hover-bg-color);\n",
|
|
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
|
" fill: var(--button-hover-fill-color);\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-quickchart-complete:disabled,\n",
|
|
" .colab-df-quickchart-complete:disabled:hover {\n",
|
|
" background-color: var(--disabled-bg-color);\n",
|
|
" fill: var(--disabled-fill-color);\n",
|
|
" box-shadow: none;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .colab-df-spinner {\n",
|
|
" border: 2px solid var(--fill-color);\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" animation:\n",
|
|
" spin 1s steps(1) infinite;\n",
|
|
" }\n",
|
|
"\n",
|
|
" @keyframes spin {\n",
|
|
" 0% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 20% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 30% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-left-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 40% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-top-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 60% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 80% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-right-color: var(--fill-color);\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" 90% {\n",
|
|
" border-color: transparent;\n",
|
|
" border-bottom-color: var(--fill-color);\n",
|
|
" }\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"\n",
|
|
" <script>\n",
|
|
" async function quickchart(key) {\n",
|
|
" const quickchartButtonEl =\n",
|
|
" document.querySelector('#' + key + ' button');\n",
|
|
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
|
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
|
" try {\n",
|
|
" const charts = await google.colab.kernel.invokeFunction(\n",
|
|
" 'suggestCharts', [key], {});\n",
|
|
" } catch (error) {\n",
|
|
" console.error('Error during call to suggestCharts:', error);\n",
|
|
" }\n",
|
|
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
|
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
|
" }\n",
|
|
" (() => {\n",
|
|
" let quickchartButtonEl =\n",
|
|
" document.querySelector('#df-be2bd1a2-e90c-4400-976c-4a0ad78e49bf button');\n",
|
|
" quickchartButtonEl.style.display =\n",
|
|
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
|
" })();\n",
|
|
" </script>\n",
|
|
" </div>\n",
|
|
"\n",
|
|
" </div>\n",
|
|
" </div>\n"
|
|
],
|
|
"application/vnd.google.colaboratory.intrinsic+json": {
|
|
"type": "dataframe",
|
|
"summary": "{\n \"name\": \"df_pred_dssa\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"Actual DSSA\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 372.6593618842817,\n \"min\": 41250.0,\n \"max\": 42150.0,\n \"num_unique_values\": 4,\n \"samples\": [\n 42150.0,\n 42000.0,\n 41575.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Predicted DSSA\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 328.24824873598226,\n \"min\": 40047.5927644968,\n \"max\": 40918.59616935253,\n \"num_unique_values\": 5,\n \"samples\": [\n 40667.24284052849,\n 40918.59616935253,\n 40418.856358230114\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"execution_count": 58
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Save predictions to CSV files\n",
|
|
"df_pred_adro.to_csv('GRU_adro_predictions.csv', index=False)\n",
|
|
"df_pred_dssa.to_csv('GRU_dssa_predictions.csv', index=False)\n",
|
|
"\n",
|
|
"print(\"ADRO predictions saved to 'GRU_adro_predictions.csv'\")\n",
|
|
"print(\"DSSA predictions saved to 'GRU_dssa_predictions.csv'\")"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"id": "kFgxQOW_omsD",
|
|
"outputId": "4ddb8a8d-6e59-4a6a-cb8e-aef07f7a880a"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"ADRO predictions saved to 'GRU_adro_predictions.csv'\n",
|
|
"DSSA predictions saved to 'GRU_dssa_predictions.csv'\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# prompt: downloadkan csv adro dan dssa tersebut\n",
|
|
"\n",
|
|
"from google.colab import files\n",
|
|
"\n",
|
|
"files.download('GRU_adro_predictions.csv')\n",
|
|
"files.download('GRU_dssa_predictions.csv')"
|
|
],
|
|
"metadata": {
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 17
|
|
},
|
|
"id": "wFJVLB4uosUR",
|
|
"outputId": "8a40c11e-103d-4db8-b21a-559a157fa774"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
],
|
|
"application/javascript": [
|
|
"\n",
|
|
" async function download(id, filename, size) {\n",
|
|
" if (!google.colab.kernel.accessAllowed) {\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" const div = document.createElement('div');\n",
|
|
" const label = document.createElement('label');\n",
|
|
" label.textContent = `Downloading \"${filename}\": `;\n",
|
|
" div.appendChild(label);\n",
|
|
" const progress = document.createElement('progress');\n",
|
|
" progress.max = size;\n",
|
|
" div.appendChild(progress);\n",
|
|
" document.body.appendChild(div);\n",
|
|
"\n",
|
|
" const buffers = [];\n",
|
|
" let downloaded = 0;\n",
|
|
"\n",
|
|
" const channel = await google.colab.kernel.comms.open(id);\n",
|
|
" // Send a message to notify the kernel that we're ready.\n",
|
|
" channel.send({})\n",
|
|
"\n",
|
|
" for await (const message of channel.messages) {\n",
|
|
" // Send a message to notify the kernel that we're ready.\n",
|
|
" channel.send({})\n",
|
|
" if (message.buffers) {\n",
|
|
" for (const buffer of message.buffers) {\n",
|
|
" buffers.push(buffer);\n",
|
|
" downloaded += buffer.byteLength;\n",
|
|
" progress.value = downloaded;\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
|
" const a = document.createElement('a');\n",
|
|
" a.href = window.URL.createObjectURL(blob);\n",
|
|
" a.download = filename;\n",
|
|
" div.appendChild(a);\n",
|
|
" a.click();\n",
|
|
" div.remove();\n",
|
|
" }\n",
|
|
" "
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
],
|
|
"application/javascript": [
|
|
"download(\"download_345c39d5-a51d-4098-9039-50ed7df638a6\", \"GRU_adro_predictions.csv\", 5858)"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
],
|
|
"application/javascript": [
|
|
"\n",
|
|
" async function download(id, filename, size) {\n",
|
|
" if (!google.colab.kernel.accessAllowed) {\n",
|
|
" return;\n",
|
|
" }\n",
|
|
" const div = document.createElement('div');\n",
|
|
" const label = document.createElement('label');\n",
|
|
" label.textContent = `Downloading \"${filename}\": `;\n",
|
|
" div.appendChild(label);\n",
|
|
" const progress = document.createElement('progress');\n",
|
|
" progress.max = size;\n",
|
|
" div.appendChild(progress);\n",
|
|
" document.body.appendChild(div);\n",
|
|
"\n",
|
|
" const buffers = [];\n",
|
|
" let downloaded = 0;\n",
|
|
"\n",
|
|
" const channel = await google.colab.kernel.comms.open(id);\n",
|
|
" // Send a message to notify the kernel that we're ready.\n",
|
|
" channel.send({})\n",
|
|
"\n",
|
|
" for await (const message of channel.messages) {\n",
|
|
" // Send a message to notify the kernel that we're ready.\n",
|
|
" channel.send({})\n",
|
|
" if (message.buffers) {\n",
|
|
" for (const buffer of message.buffers) {\n",
|
|
" buffers.push(buffer);\n",
|
|
" downloaded += buffer.byteLength;\n",
|
|
" progress.value = downloaded;\n",
|
|
" }\n",
|
|
" }\n",
|
|
" }\n",
|
|
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
|
" const a = document.createElement('a');\n",
|
|
" a.href = window.URL.createObjectURL(blob);\n",
|
|
" a.download = filename;\n",
|
|
" div.appendChild(a);\n",
|
|
" a.click();\n",
|
|
" div.remove();\n",
|
|
" }\n",
|
|
" "
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<IPython.core.display.Javascript object>"
|
|
],
|
|
"application/javascript": [
|
|
"download(\"download_a66e346e-750c-4861-a876-9c66055921f5\", \"GRU_dssa_predictions.csv\", 6020)"
|
|
]
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [],
|
|
"metadata": {
|
|
"id": "M0wbM1VWHRGH"
|
|
},
|
|
"execution_count": null,
|
|
"outputs": []
|
|
}
|
|
]
|
|
} |