Files
Skripsi/LSTM.ipynb
2025-07-11 09:54:00 +00:00

3611 lines
358 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 LSTM, Dense, Dropout\n",
"from tensorflow.keras.callbacks import EarlyStopping\n",
"from sklearn.preprocessing import MinMaxScaler, StandardScaler\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": "2614419c-d979-422c-b6e2-b129a6c64e90"
},
"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-c004e24d-e22b-4d48-a782-507a8898c7c6\" 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-c004e24d-e22b-4d48-a782-507a8898c7c6')\"\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-c004e24d-e22b-4d48-a782-507a8898c7c6 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-c004e24d-e22b-4d48-a782-507a8898c7c6');\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-7741bfef-16db-438f-8320-5159050a7662\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-7741bfef-16db-438f-8320-5159050a7662')\"\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-7741bfef-16db-438f-8320-5159050a7662 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": "5747ace4-8aac-4686-8030-6cac5417d3d5"
},
"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": "191da2e1-68bf-4417-b2bd-858f120e8a28"
},
"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-512104df-1b6a-442f-aab0-5e89c87396d7\" 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-512104df-1b6a-442f-aab0-5e89c87396d7')\"\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-512104df-1b6a-442f-aab0-5e89c87396d7 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-512104df-1b6a-442f-aab0-5e89c87396d7');\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-6c1c60f1-0c70-4492-85c4-f527f74e8624\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6c1c60f1-0c70-4492-85c4-f527f74e8624')\"\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-6c1c60f1-0c70-4492-85c4-f527f74e8624 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": "d182956f-34d6-4b8e-e9c2-b387b6cbb2b2"
},
"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": [
"## Normalisasi Data"
],
"metadata": {
"id": "scobtTMV6p5p"
}
},
{
"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": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "SIftpE5Z5_Rh",
"outputId": "a2fe2b06-bc87-4d6d-d4b4-e0ade5d28713"
},
"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-9b18945e-6380-4025-a354-70f27df2b4d9\" 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-9b18945e-6380-4025-a354-70f27df2b4d9')\"\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-9b18945e-6380-4025-a354-70f27df2b4d9 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-9b18945e-6380-4025-a354-70f27df2b4d9');\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-6ef8e83d-6b7c-45a8-8b5e-126612b0db38\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6ef8e83d-6b7c-45a8-8b5e-126612b0db38')\"\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-6ef8e83d-6b7c-45a8-8b5e-126612b0db38 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": 8
}
]
},
{
"cell_type": "code",
"source": [
"adro = adro.drop('Volume', axis=1)\n",
"adro = adro.drop('Date', axis=1)\n",
"adro.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "w2qE1QRdPBvi",
"outputId": "8abda8c3-d4f9-446f-d049-074dcdabaf4a"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Open High Low Close Adj Close\n",
"0 1555.0 1555.0 1490.0 1495.0 835.632202\n",
"1 1460.0 1470.0 1425.0 1465.0 856.372375\n",
"2 1455.0 1515.0 1450.0 1465.0 856.372375\n",
"3 1480.0 1540.0 1460.0 1540.0 900.213867\n",
"4 1530.0 1535.0 1505.0 1505.0 879.754395"
],
"text/html": [
"\n",
" <div id=\"df-be6e6530-fa48-4b0d-9e5f-3565d1587b85\" 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>1555.0</td>\n",
" <td>1555.0</td>\n",
" <td>1490.0</td>\n",
" <td>1495.0</td>\n",
" <td>835.632202</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\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",
" </tr>\n",
" <tr>\n",
" <th>2</th>\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",
" </tr>\n",
" <tr>\n",
" <th>3</th>\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",
" </tr>\n",
" <tr>\n",
" <th>4</th>\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",
" </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-be6e6530-fa48-4b0d-9e5f-3565d1587b85')\"\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-be6e6530-fa48-4b0d-9e5f-3565d1587b85 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-be6e6530-fa48-4b0d-9e5f-3565d1587b85');\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-c4570e13-3f5c-4b83-83be-4783729c8adf\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c4570e13-3f5c-4b83-83be-4783729c8adf')\"\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-c4570e13-3f5c-4b83-83be-4783729c8adf 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\": \"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}"
}
},
"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": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "bFqa6kGj6Bn4",
"outputId": "8ea4e3e0-1d0e-4a9e-e10e-e4c5a529e575"
},
"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-9d00ed60-2204-4efb-99c5-f84dafff9a4e\" 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-9d00ed60-2204-4efb-99c5-f84dafff9a4e')\"\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-9d00ed60-2204-4efb-99c5-f84dafff9a4e 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-9d00ed60-2204-4efb-99c5-f84dafff9a4e');\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-26078ec6-fd7c-4e59-bc3f-20d0e77f1764\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-26078ec6-fd7c-4e59-bc3f-20d0e77f1764')\"\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-26078ec6-fd7c-4e59-bc3f-20d0e77f1764 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": "Mt0Pcgzwu5Zs"
}
},
{
"cell_type": "markdown",
"source": [
"# Bagian Baru"
],
"metadata": {
"id": "w_3dti2a6Ntc"
}
},
{
"cell_type": "markdown",
"source": [
"Data look back yaitu adalah data yang biasanya dipakai untuk tipe time series, data ini menjadikan nilai lookback+1 sebagai nilai prediksi , dan data lookbacknya sebagai fitur.Ini berlaku untuk seluruh data, contoh penggambarannya seperti pada gambar diatas"
],
"metadata": {
"id": "J-_ZgIAgznVd"
}
},
{
"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": "SGATnJPNudrF"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"time_step = 7\n",
"X_adro, y_adro = prepare_data(adro_norm, time_step)"
],
"metadata": {
"id": "FKhvyz5WugaA"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(X_adro[1])\n",
"print(y_adro[1])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3BVbHH-ew4dm",
"outputId": "55160db0-8caf-4116-f6d5-79e5565c8cab"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[[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.26895565 0.25837989 0.27233429 0.26323319 0.15222076]]\n",
"0.2555865921787709\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"X_adro.shape, y_adro.shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "C_07IBA047Yh",
"outputId": "8dec3480-829c-4b35-efd3-329903c951d0"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"((1141, 7, 5), (1141,))"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"X_dssa, y_dssa = prepare_data(dssa_norm, time_step)"
],
"metadata": {
"id": "9MawPQRzul5d"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## Split data into training and testing sets"
],
"metadata": {
"id": "pTzWLSzTu9gX"
}
},
{
"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)\n",
"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": "f3t130E5uoI1"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"X_train_adro.shape, X_test_adro.shape, y_train_adro.shape, y_test_adro.shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "xNNB6-e9e3V9",
"outputId": "e784540a-96b7-44cc-a519-5b02fa6fa012"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"((912, 7, 5), (229, 7, 5), (912,), (229,))"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "markdown",
"source": [
"# Data Mining"
],
"metadata": {
"id": "n0BKrKtoo8Cb"
}
},
{
"cell_type": "code",
"source": [
"def create_lstm_model(units):\n",
" model = Sequential()\n",
" model.add(LSTM(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(LSTM(units=units, return_sequences=False))\n",
" model.add(Dropout(0.2))\n",
" model.add(Dense(units=1)) # Output layer for single prediction (predicted stock price)\n",
" model.compile(optimizer='adam', loss='mean_squared_error')\n",
" return model"
],
"metadata": {
"id": "bProaTPtvI4l"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## Bobot LSTM"
],
"metadata": {
"id": "rIEZVKoRtq8H"
}
},
{
"cell_type": "code",
"source": [
"# Create model\n",
"lstm_model = create_lstm_model(50) # Example: 50 LSTM units"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "aT5t4Cq0aano",
"outputId": "a17dd5b2-db0a-40ac-e115-4df8a11439aa"
},
"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": [
"layer = lstm_model.layers[0] # Ambil hanya layer pertama\n",
"if isinstance(layer, LSTM):\n",
" weights = layer.get_weights()\n",
" # W: Input weights, U: Recurrent weights, b: Bias\n",
" W, U, b = weights[0], weights[1], weights[2]\n",
" units = U.shape[0] # Jumlah unit LSTM\n",
" columns = [\"Open\", \"High\", \"Low\", \"Close\", \"Adj Close\"]\n",
" num_features = len(columns)\n",
"\n",
" # Memisahkan bobot untuk setiap gate\n",
" W_f, W_i, W_c, W_o = np.split(W, 4, axis=1)\n",
" U_f, U_i, U_c, U_o = np.split(U, 4, axis=1)\n",
" b_f, b_i, b_c, b_o = np.split(b, 4, axis=0)\n",
"\n",
" print(\"LSTM Layer 1 Weights Analysis:\")\n",
" for i in range(num_features): # Iterasi sesuai jumlah fitur\n",
" print(f\"Feature: {columns[i]}\")\n",
" print(f\" Forget Gate W_f[{i}, 0]: {W_f[i, 0]}\")\n",
" print(f\" Input Gate W_i[{i}, 0]: {W_i[i, 0]}\")\n",
" print(f\" Cell State W_c[{i}, 0]: {W_c[i, 0]}\")\n",
" print(f\" Output Gate W_o[{i}, 0]: {W_o[i, 0]}\")\n",
" print(f\" Forget Gate U_f[{i}, 0]: {U_f[i, 0]}\")\n",
" print(f\" Input Gate U_i[{i}, 0]: {U_i[i, 0]}\")\n",
" print(f\" Cell State U_c[{i}, 0]: {U_c[i, 0]}\")\n",
" print(f\" Output Gate U_o[{i}, 0]: {U_o[i, 0]}\")\n",
" print(f\" Forget Gate b_f[{i}]: {b_f[i]}\")\n",
" print(f\" Input Gate b_i[{i}]: {b_i[i]}\")\n",
" print(f\" Cell State b_c[{i}]: {b_c[i]}\")\n",
" print(f\" Output Gate b_o[{i}]: {b_o[i]}\")\n",
" print(\"====\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "WO6adjDEhB6F",
"outputId": "ee892ce6-40aa-4bec-f6f8-e212e10eaa99"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"LSTM Layer 1 Weights Analysis:\n",
"Feature: Open\n",
" Forget Gate W_f[0, 0]: -0.04256738722324371\n",
" Input Gate W_i[0, 0]: -0.010287865996360779\n",
" Cell State W_c[0, 0]: -0.05227087438106537\n",
" Output Gate W_o[0, 0]: -0.08412709832191467\n",
" Forget Gate U_f[0, 0]: 0.04162132740020752\n",
" Input Gate U_i[0, 0]: -0.012287689372897148\n",
" Cell State U_c[0, 0]: -0.011030183173716068\n",
" Output Gate U_o[0, 0]: 0.03395417705178261\n",
" Forget Gate b_f[0]: 0.0\n",
" Input Gate b_i[0]: 1.0\n",
" Cell State b_c[0]: 0.0\n",
" Output Gate b_o[0]: 0.0\n",
"====\n",
"Feature: High\n",
" Forget Gate W_f[1, 0]: 0.06724417209625244\n",
" Input Gate W_i[1, 0]: 0.0061102211475372314\n",
" Cell State W_c[1, 0]: 0.16968616843223572\n",
" Output Gate W_o[1, 0]: 0.05730287730693817\n",
" Forget Gate U_f[1, 0]: 0.09096574783325195\n",
" Input Gate U_i[1, 0]: 0.009209300391376019\n",
" Cell State U_c[1, 0]: 0.04923269897699356\n",
" Output Gate U_o[1, 0]: -0.08389423787593842\n",
" Forget Gate b_f[1]: 0.0\n",
" Input Gate b_i[1]: 1.0\n",
" Cell State b_c[1]: 0.0\n",
" Output Gate b_o[1]: 0.0\n",
"====\n",
"Feature: Low\n",
" Forget Gate W_f[2, 0]: -0.07467328011989594\n",
" Input Gate W_i[2, 0]: 0.07021500170230865\n",
" Cell State W_c[2, 0]: 0.1201578676700592\n",
" Output Gate W_o[2, 0]: -0.13118976354599\n",
" Forget Gate U_f[2, 0]: 0.07825936377048492\n",
" Input Gate U_i[2, 0]: 0.07037021964788437\n",
" Cell State U_c[2, 0]: 0.014703350141644478\n",
" Output Gate U_o[2, 0]: -0.10391176491975784\n",
" Forget Gate b_f[2]: 0.0\n",
" Input Gate b_i[2]: 1.0\n",
" Cell State b_c[2]: 0.0\n",
" Output Gate b_o[2]: 0.0\n",
"====\n",
"Feature: Close\n",
" Forget Gate W_f[3, 0]: -0.08179786801338196\n",
" Input Gate W_i[3, 0]: 0.1663205325603485\n",
" Cell State W_c[3, 0]: 0.09247386455535889\n",
" Output Gate W_o[3, 0]: 0.09769025444984436\n",
" Forget Gate U_f[3, 0]: 0.10877078026533127\n",
" Input Gate U_i[3, 0]: -0.07621479034423828\n",
" Cell State U_c[3, 0]: 0.024317285045981407\n",
" Output Gate U_o[3, 0]: 0.020522702485322952\n",
" Forget Gate b_f[3]: 0.0\n",
" Input Gate b_i[3]: 1.0\n",
" Cell State b_c[3]: 0.0\n",
" Output Gate b_o[3]: 0.0\n",
"====\n",
"Feature: Adj Close\n",
" Forget Gate W_f[4, 0]: 0.13921821117401123\n",
" Input Gate W_i[4, 0]: 0.1498813033103943\n",
" Cell State W_c[4, 0]: -0.11748667061328888\n",
" Output Gate W_o[4, 0]: 0.05497296154499054\n",
" Forget Gate U_f[4, 0]: -0.11227526515722275\n",
" Input Gate U_i[4, 0]: 0.06800103187561035\n",
" Cell State U_c[4, 0]: 0.0842202827334404\n",
" Output Gate U_o[4, 0]: 0.06456313282251358\n",
" Forget Gate b_f[4]: 0.0\n",
" Input Gate b_i[4]: 1.0\n",
" Cell State b_c[4]: 0.0\n",
" Output Gate b_o[4]: 0.0\n",
"====\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## ADRO"
],
"metadata": {
"id": "LHohXfRvvOQi"
}
},
{
"cell_type": "code",
"source": [
"model_adro = create_lstm_model(100)\n",
"\n",
"start_time = time.time()\n",
"model_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": "LOSVVOqEvLF7",
"outputId": "ba4313f8-c371-406d-ea24-137da451ef29"
},
"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[1m5s\u001b[0m 31ms/step - loss: 0.0634 - val_loss: 0.0047\n",
"Epoch 2/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0045 - val_loss: 0.0021\n",
"Epoch 3/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0025 - val_loss: 0.0016\n",
"Epoch 4/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0025 - val_loss: 8.3777e-04\n",
"Epoch 5/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0023 - val_loss: 0.0014\n",
"Epoch 6/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0026 - val_loss: 8.2497e-04\n",
"Epoch 7/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0024 - val_loss: 0.0016\n",
"Epoch 8/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0022 - val_loss: 0.0010\n",
"Epoch 9/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0024 - val_loss: 0.0012\n",
"Epoch 10/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0020 - val_loss: 0.0011\n",
"Epoch 11/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 7.9596e-04\n",
"Epoch 12/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0028 - val_loss: 0.0013\n",
"Epoch 13/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0025 - val_loss: 0.0021\n",
"Epoch 14/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0023 - val_loss: 7.8227e-04\n",
"Epoch 15/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 0.0023 - val_loss: 0.0011\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.0020 - val_loss: 0.0011\n",
"Epoch 17/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 0.0023 - val_loss: 0.0012\n",
"Epoch 18/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0018 - val_loss: 6.9405e-04\n",
"Epoch 19/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0021 - val_loss: 0.0010\n",
"Epoch 20/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0022 - val_loss: 0.0014\n",
"Epoch 21/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 0.0012\n",
"Epoch 22/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0020 - val_loss: 6.5237e-04\n",
"Epoch 23/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0020 - val_loss: 6.5597e-04\n",
"Epoch 24/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 6.5076e-04\n",
"Epoch 25/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0017 - val_loss: 0.0014\n",
"Epoch 26/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 6.7983e-04\n",
"Epoch 27/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0019 - val_loss: 6.8607e-04\n",
"Epoch 28/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0021 - val_loss: 6.1122e-04\n",
"Epoch 29/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 7.4124e-04\n",
"Epoch 30/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0018 - val_loss: 0.0011\n",
"Epoch 31/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0017 - val_loss: 7.7461e-04\n",
"Epoch 32/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0017 - val_loss: 5.9862e-04\n",
"Epoch 33/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0023 - val_loss: 6.0562e-04\n",
"Epoch 34/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 6.5603e-04\n",
"Epoch 35/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0019 - val_loss: 6.9457e-04\n",
"Epoch 36/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 5.3735e-04\n",
"Epoch 37/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0017 - val_loss: 0.0011\n",
"Epoch 38/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 0.0012\n",
"Epoch 39/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0017 - val_loss: 0.0014\n",
"Epoch 40/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0018 - val_loss: 4.8382e-04\n",
"Epoch 41/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: 6.2043e-04\n",
"Epoch 42/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 0.0016 - val_loss: 6.2117e-04\n",
"Epoch 43/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 0.0011\n",
"Epoch 44/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 0.0012\n",
"Epoch 45/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 7.6431e-04\n",
"Epoch 46/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0022 - val_loss: 4.9380e-04\n",
"Epoch 47/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 7.1142e-04\n",
"Epoch 48/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0017 - val_loss: 4.5607e-04\n",
"Epoch 49/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0014 - val_loss: 0.0011\n",
"Epoch 50/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0013 - val_loss: 9.7056e-04\n",
"Epoch 51/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0015 - val_loss: 4.2991e-04\n",
"Epoch 52/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0012 - val_loss: 4.6422e-04\n",
"Epoch 53/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0012 - val_loss: 4.3565e-04\n",
"Epoch 54/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0015 - val_loss: 9.2766e-04\n",
"Epoch 55/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0017 - val_loss: 3.9524e-04\n",
"Epoch 56/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0012 - val_loss: 9.5586e-04\n",
"Epoch 57/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0013 - val_loss: 0.0011\n",
"Epoch 58/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0016 - val_loss: 3.7444e-04\n",
"Epoch 59/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0011 - val_loss: 6.2351e-04\n",
"Epoch 60/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0016 - val_loss: 5.4106e-04\n",
"Epoch 61/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: 3.5580e-04\n",
"Epoch 62/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0013 - val_loss: 3.3952e-04\n",
"Epoch 63/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 0.0013 - val_loss: 5.4781e-04\n",
"Epoch 64/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 0.0010 - val_loss: 4.3097e-04\n",
"Epoch 65/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 16ms/step - loss: 0.0011 - val_loss: 3.7820e-04\n",
"Epoch 66/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0012 - val_loss: 3.8035e-04\n",
"Epoch 67/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0012 - val_loss: 3.7441e-04\n",
"Epoch 68/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0012 - val_loss: 3.1452e-04\n",
"Epoch 69/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 8.8345e-04 - val_loss: 3.4853e-04\n",
"Epoch 70/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0011 - val_loss: 3.1826e-04\n",
"Epoch 71/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0011 - val_loss: 3.0337e-04\n",
"Epoch 72/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0012 - val_loss: 3.3823e-04\n",
"Epoch 73/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0015 - val_loss: 3.3784e-04\n",
"Epoch 74/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0013 - val_loss: 6.0157e-04\n",
"Epoch 75/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0013 - val_loss: 7.3720e-04\n",
"Epoch 76/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 9.4736e-04 - val_loss: 3.1509e-04\n",
"Epoch 77/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0010 - val_loss: 5.0552e-04\n",
"Epoch 78/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 0.0010 - val_loss: 2.9248e-04\n",
"Epoch 79/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0011 - val_loss: 3.2384e-04\n",
"Epoch 80/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 9.8109e-04 - val_loss: 6.4628e-04\n",
"Epoch 81/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 9.6263e-04 - val_loss: 6.3153e-04\n",
"Epoch 82/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - loss: 0.0011 - val_loss: 2.8827e-04\n",
"Epoch 83/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 15ms/step - loss: 0.0010 - val_loss: 8.3648e-04\n",
"Epoch 84/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 0.0014 - val_loss: 2.9226e-04\n",
"Epoch 85/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 9.8804e-04 - val_loss: 2.8313e-04\n",
"Epoch 86/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0011 - val_loss: 4.0354e-04\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: 0.0012 - val_loss: 6.6343e-04\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: 0.0010 - val_loss: 2.8362e-04\n",
"Epoch 89/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 0.0011 - val_loss: 2.6641e-04\n",
"Epoch 90/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0012 - val_loss: 3.0804e-04\n",
"Epoch 91/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0011 - val_loss: 2.9357e-04\n",
"Epoch 92/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - loss: 9.1025e-04 - val_loss: 4.8552e-04\n",
"Epoch 93/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0011 - val_loss: 3.1646e-04\n",
"Epoch 94/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 7.6501e-04 - val_loss: 8.0415e-04\n",
"Epoch 95/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 8.9690e-04 - val_loss: 3.7813e-04\n",
"Epoch 96/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - loss: 0.0011 - val_loss: 2.6486e-04\n",
"Epoch 97/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 9.5229e-04 - val_loss: 3.0072e-04\n",
"Epoch 98/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 7.9825e-04 - val_loss: 2.3989e-04\n",
"Epoch 99/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 14ms/step - loss: 9.5839e-04 - val_loss: 0.0011\n",
"Epoch 100/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 13ms/step - loss: 0.0014 - val_loss: 2.8011e-04\n",
"Waktu training: 57.64 detik\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"model_adro.summary()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 302
},
"id": "GJBjljeAYYr_",
"outputId": "2bd5991f-9b21-4218-b699-2d3b2f639d86"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1mModel: \"sequential_4\"\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_4\"</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",
"│ lstm_8 (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m42,400\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_8 (\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",
"│ lstm_9 (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m80,400\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_9 (\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_4 (\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",
"│ lstm_8 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</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\">42,400</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_8 (<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",
"│ lstm_9 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</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\">80,400</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dropout_9 (<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_4 (<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;34m368,705\u001b[0m (1.41 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\">368,705</span> (1.41 MB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m122,901\u001b[0m (480.08 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\">122,901</span> (480.08 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;34m245,804\u001b[0m (960.18 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\">245,804</span> (960.18 KB)\n",
"</pre>\n"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"plt.plot(model_adro.history.history['loss'], label='Training Loss')\n",
"plt.plot(model_adro.history.history['val_loss'], label='Validation Loss')\n",
"plt.xlabel('Epoch')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 449
},
"id": "aI9DnLVzRaye",
"outputId": "ee04d252-04f8-4628-ac45-89ce25a069f5"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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78+RI0eYOHEiKSkptG3blvnz5zsHYiclJWG1nsxx3bp1Y8aMGYwfP56nn36amJgY5syZQ8uWLQGw2Wxs3bqVjz/+mLS0NMLDw+nUqRO//fYbLVq0cJ7n888/Z+TIkfTs2dO5UOQbb7xRvW++FF4nApLd4XBzTUREqkdekZ3mExe45dqbn4vH36dyPgqfeuop/vWvf9GoUSNq1qzJ/v37uemmm3jhhRfw9fXlk08+oU+fPmzbto369euXeZ5nn32Wl19+mVdeeYU333yTgQMHsm/fPsLCwkotn5uby7/+9S8+/fRTrFYr9957L48//jiff/45AC+99BKff/45H374Ic2aNeP1119nzpw5XHfddRV+r/fffz87duxg7ty5BAcH8+STT3LTTTexefNmvL29GTFiBIWFhfz6668EBASwefNm50LMEyZMYPPmzfzwww9ERESwc+dO8vLyKlyXquL2gAQwcuRIZwvQ6X7++eczjt15553O1qDT+fn5MXv27HNeMywsjBkzZpxXPauDWpBERC5Ozz33HNdff73z67CwMOfyMgDPP/88X3/9NXPnzi3zMw/M8DFgwAAA/vnPf/LGG2+wcuVKevXqVWr5oqIipk+fTuPGjQHzM/W5555zPv/mm28ybtw4brvtNgCmTZvmbM2piJJgtGzZMrp16waYjQ7R0dHMmTOHO++8k6SkJPr160erVq0AaNSokfP1SUlJtGvXzrnUToMGDSpcl6rkEQFJTrI5W5AUkETkz6GGt43Nz8W77dqV5dS19QCys7OZPHky3333HcnJyRQXF5OXl0dSUtJZz9O6dWvn3wMCAggODj7rLGx/f39nOAJz/7GS8pmZmaSmprps32Wz2ejQoQOOCvZUbNmyBS8vL5cxu+Hh4Vx55ZVs2bIFgEcffZRHHnmEH3/8kbi4OPr16+d8X4888gj9+vUjMTGRG264gb59+zqDlidx+xgkcWU70Z1YbFdAEpE/B4vFgr+Pl1selTnYOSAgwOXrxx9/nK+//pp//vOf/Pbbb6xbt45WrVpRWFh41vN4e3ufcX/OFmZKK+/mTTJ48MEH2b17N/fddx8bNmygY8eOvPnmmwDceOON7Nu3j8cee4xDhw7Rs2dPl0HunkIBycN4qQVJROSSsGzZMu6//35uu+02WrVqRVRUFHv37q3WOoSEhBAZGcmqVaucx+x2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eSCNQRIREXEvBSQPpFlsIiIi7qWA5IHUgiQiIuJeCkgeqKQFyW4oIImIiLiDApIH8joxSNuuQdoiIiJuoYDkgbQXm4iIiHspIHkg7cUmIiLiXgpIHkgtSCIiIu6lgOSBNItNRETEvRSQPJDVonWQRERE3EkByQNpDJKIiIh7KSB5II1BEhERcS+PCEhvvfUWDRo0wM/Pjy5durBy5cqzlp81axZNmzbFz8+PVq1a8f333zufKyoq4sknn6RVq1YEBARQt25dBg0axKFDh1zOkZ6ezsCBAwkODiY0NJShQ4eSnZ1dJe/vfJWsg2QY4FBIEhERqXZuD0hffvklY8eOZdKkSSQmJtKmTRvi4+M5fPhwqeWXL1/OgAEDGDp0KGvXrqVv37707duXjRs3ApCbm0tiYiITJkwgMTGR2bNns23bNm655RaX8wwcOJBNmzaxcOFC5s2bx6+//srw4cOr/P2WR0kLEqgVSURExB0shuHe/Sy6dOlCp06dmDZtGgAOh4Po6GhGjRrFU089dUb5/v37k5OTw7x585zHunbtStu2bZk+fXqp11i1ahWdO3dm37591K9fny1bttC8eXNWrVpFx44dAZg/fz433XQTBw4coG7dumeco6CggIKCAufXWVlZREdHk5mZSXBw8AXdg9PlFBTTYtICALY814saPrZKPb+IiMifVVZWFiEhIef8/HZrC1JhYSFr1qwhLi7OecxqtRIXF0dCQkKpr0lISHApDxAfH19meYDMzEwsFguhoaHOc4SGhjrDEUBcXBxWq5UVK1aUeo4pU6YQEhLifERHR5f3bZ63U1uQtB+biIhI9XNrQEpLS8NutxMZGelyPDIykpSUlFJfk5KScl7l8/PzefLJJxkwYIAzKaakpFC7dm2Xcl5eXoSFhZV5nnHjxpGZmel87N+/v1zvsSK8Tg1I2o9NRESk2nm5uwJVqaioiLvuugvDMHj77bcv6Fy+vr74+vpWUs3OznUMktZCEhERqW5uDUgRERHYbDZSU1NdjqemphIVFVXqa6KiospVviQc7du3j59++smlnzEqKuqMQeDFxcWkp6eXed3qZLFYsFkt2B2G1kISERFxA7d2sfn4+NChQwcWL17sPOZwOFi8eDGxsbGlviY2NtalPMDChQtdypeEox07drBo0SLCw8PPOEdGRgZr1qxxHvvpp59wOBx0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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"![image.png](data:image/png;base64,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)"
],
"metadata": {
"id": "68QaIN0wnG_d"
}
},
{
"cell_type": "markdown",
"source": [
"![image.png](data:image/png;base64,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)"
],
"metadata": {
"id": "PRfI-Ju4nIPk"
}
},
{
"cell_type": "markdown",
"source": [
"### Make predictions"
],
"metadata": {
"id": "KlDnmsvS9yAt"
}
},
{
"cell_type": "code",
"source": [
"y_pred_adro = model_adro.predict(X_test_adro)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "GLRYn08EvYVC",
"outputId": "4adcdf7a-d4cc-4ed6-e1d8-d62d750a8c13"
},
"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 63ms/step\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## DSSA"
],
"metadata": {
"id": "_oU4JdWGvTCD"
}
},
{
"cell_type": "code",
"source": [
"model_dssa = create_lstm_model(100)\n",
"\n",
"start_time = time.time()\n",
"model_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": "96mJEkpbBTFX",
"outputId": "3a3722f5-0f28-46e6-abf4-f1d4da6b8a95"
},
"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[1m6s\u001b[0m 53ms/step - loss: 6.0729e-04 - val_loss: 1.1607e-04\n",
"Epoch 2/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 5.3662e-05 - val_loss: 4.0032e-05\n",
"Epoch 3/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 4.7505e-05 - val_loss: 4.6214e-05\n",
"Epoch 4/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 3.9637e-05 - val_loss: 2.3383e-05\n",
"Epoch 5/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 3.3811e-05 - val_loss: 3.4817e-05\n",
"Epoch 6/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 4.1101e-05 - val_loss: 2.0400e-05\n",
"Epoch 7/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 4.3098e-05 - val_loss: 2.6784e-05\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: 3.4498e-05 - val_loss: 2.7796e-05\n",
"Epoch 9/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 3.6598e-05 - val_loss: 1.9876e-05\n",
"Epoch 10/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 2.5330e-05 - val_loss: 2.1431e-05\n",
"Epoch 11/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 16ms/step - loss: 3.2087e-05 - val_loss: 2.9069e-05\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: 2.6639e-05 - val_loss: 1.9305e-05\n",
"Epoch 13/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 2.5186e-05 - val_loss: 3.1775e-05\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: 3.5259e-05 - val_loss: 1.7241e-05\n",
"Epoch 15/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 4.4257e-05 - val_loss: 3.6952e-05\n",
"Epoch 16/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 28ms/step - loss: 2.4323e-05 - val_loss: 2.3037e-05\n",
"Epoch 17/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 3.3564e-05 - val_loss: 1.7497e-05\n",
"Epoch 18/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 2.3239e-05 - val_loss: 1.6559e-05\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: 3.1591e-05 - val_loss: 1.6294e-05\n",
"Epoch 20/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 25ms/step - loss: 2.3948e-05 - val_loss: 1.5452e-05\n",
"Epoch 21/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 2.7339e-05 - val_loss: 1.7759e-05\n",
"Epoch 22/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 2.8005e-05 - val_loss: 1.9440e-05\n",
"Epoch 23/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 2.6300e-05 - val_loss: 1.7108e-05\n",
"Epoch 24/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 25ms/step - loss: 2.2018e-05 - val_loss: 1.3593e-05\n",
"Epoch 25/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 16ms/step - loss: 2.1934e-05 - val_loss: 1.3414e-05\n",
"Epoch 26/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 2.0099e-05 - val_loss: 1.6968e-05\n",
"Epoch 27/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.6595e-05 - val_loss: 1.3755e-05\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: 2.1161e-05 - val_loss: 2.2154e-05\n",
"Epoch 29/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 2.9517e-05 - val_loss: 2.4757e-05\n",
"Epoch 30/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 21ms/step - loss: 2.0809e-05 - val_loss: 1.3173e-05\n",
"Epoch 31/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 2.1917e-05 - val_loss: 1.7585e-05\n",
"Epoch 32/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 2.6970e-05 - val_loss: 1.3342e-05\n",
"Epoch 33/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 42ms/step - loss: 1.7368e-05 - val_loss: 1.6150e-05\n",
"Epoch 34/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 2.7698e-05 - val_loss: 1.9286e-05\n",
"Epoch 35/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 2.5868e-05 - val_loss: 1.5217e-05\n",
"Epoch 36/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 1.8167e-05 - val_loss: 2.5588e-05\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: 2.2198e-05 - val_loss: 1.6807e-05\n",
"Epoch 38/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.8543e-05 - val_loss: 1.0588e-05\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: 1.6675e-05 - val_loss: 1.1626e-05\n",
"Epoch 40/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.5276e-05 - val_loss: 1.8952e-05\n",
"Epoch 41/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 2.2376e-05 - val_loss: 1.7271e-05\n",
"Epoch 42/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 2.4067e-05 - val_loss: 1.3342e-05\n",
"Epoch 43/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.8935e-05 - val_loss: 1.1219e-05\n",
"Epoch 44/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.9269e-05 - val_loss: 4.3474e-05\n",
"Epoch 45/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 2.5148e-05 - val_loss: 1.0248e-05\n",
"Epoch 46/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.8836e-05 - val_loss: 8.6959e-06\n",
"Epoch 47/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.4780e-05 - val_loss: 8.6072e-06\n",
"Epoch 48/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.7145e-05 - val_loss: 8.5170e-06\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.6996e-05 - val_loss: 8.4682e-06\n",
"Epoch 50/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.8741e-05 - val_loss: 8.2660e-06\n",
"Epoch 51/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 1.4392e-05 - val_loss: 7.8097e-06\n",
"Epoch 52/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.4907e-05 - val_loss: 1.4739e-05\n",
"Epoch 53/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.7821e-05 - val_loss: 8.8018e-06\n",
"Epoch 54/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.5245e-05 - val_loss: 1.1252e-05\n",
"Epoch 55/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.5844e-05 - val_loss: 7.5283e-06\n",
"Epoch 56/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.5407e-05 - val_loss: 8.9423e-06\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: 1.3309e-05 - val_loss: 1.9220e-05\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.6204e-05 - val_loss: 7.4776e-06\n",
"Epoch 59/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.5898e-05 - val_loss: 7.0166e-06\n",
"Epoch 60/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.2958e-05 - val_loss: 1.7142e-05\n",
"Epoch 61/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.4782e-05 - val_loss: 6.7864e-06\n",
"Epoch 62/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.6536e-05 - val_loss: 7.0573e-06\n",
"Epoch 63/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.4730e-05 - val_loss: 7.5857e-06\n",
"Epoch 64/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.7158e-05 - val_loss: 1.6419e-05\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.4458e-05 - val_loss: 7.7400e-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.4316e-05 - val_loss: 6.2454e-06\n",
"Epoch 67/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.5386e-05 - val_loss: 7.0862e-06\n",
"Epoch 68/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 1.2294e-05 - val_loss: 1.1513e-05\n",
"Epoch 69/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 1.3214e-05 - val_loss: 6.1237e-06\n",
"Epoch 70/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 1.2710e-05 - val_loss: 6.4623e-06\n",
"Epoch 71/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.2616e-05 - val_loss: 7.6943e-06\n",
"Epoch 72/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.2407e-05 - val_loss: 7.1094e-06\n",
"Epoch 73/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.3236e-05 - val_loss: 6.1194e-06\n",
"Epoch 74/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.5359e-05 - val_loss: 8.1674e-06\n",
"Epoch 75/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.0886e-05 - val_loss: 7.8858e-06\n",
"Epoch 76/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.2566e-05 - val_loss: 8.4608e-06\n",
"Epoch 77/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 19ms/step - loss: 1.3648e-05 - val_loss: 1.0483e-05\n",
"Epoch 78/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.5020e-05 - val_loss: 6.9493e-06\n",
"Epoch 79/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 22ms/step - loss: 1.4242e-05 - val_loss: 5.6512e-06\n",
"Epoch 80/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.2484e-05 - val_loss: 1.1918e-05\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: 1.3433e-05 - val_loss: 1.0469e-05\n",
"Epoch 82/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.6092e-05 - val_loss: 8.0667e-06\n",
"Epoch 83/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.7249e-05 - val_loss: 5.3213e-06\n",
"Epoch 84/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 38ms/step - loss: 1.2485e-05 - val_loss: 1.1703e-05\n",
"Epoch 85/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 17ms/step - loss: 1.3541e-05 - val_loss: 1.8672e-05\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.8206e-05 - val_loss: 6.9480e-06\n",
"Epoch 87/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 26ms/step - loss: 1.3479e-05 - val_loss: 1.5265e-05\n",
"Epoch 88/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.5031e-05 - val_loss: 5.2197e-06\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: 1.3136e-05 - val_loss: 4.8828e-06\n",
"Epoch 90/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.3792e-05 - val_loss: 5.2959e-06\n",
"Epoch 91/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 1.1710e-05 - val_loss: 5.3255e-06\n",
"Epoch 92/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 20ms/step - loss: 1.4487e-05 - val_loss: 1.2576e-05\n",
"Epoch 93/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 24ms/step - loss: 1.1391e-05 - val_loss: 6.8992e-06\n",
"Epoch 94/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 25ms/step - loss: 1.2469e-05 - val_loss: 5.2722e-06\n",
"Epoch 95/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 18ms/step - loss: 1.1185e-05 - val_loss: 4.9925e-06\n",
"Epoch 96/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 23ms/step - loss: 1.0215e-05 - val_loss: 5.2174e-06\n",
"Epoch 97/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 1.3569e-05 - val_loss: 4.8879e-06\n",
"Epoch 98/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 28ms/step - loss: 1.4445e-05 - val_loss: 5.8271e-06\n",
"Epoch 99/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 1.4308e-05 - val_loss: 6.0410e-06\n",
"Epoch 100/100\n",
"\u001b[1m26/26\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 1.7205e-05 - val_loss: 6.0648e-06\n",
"Waktu training: 81.70 detik\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"model_dssa.summary()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 302
},
"id": "Dsn7vLiNYe0Z",
"outputId": "ecf174b3-f774-47af-eb03-7ed54cdd259d"
},
"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",
"│ lstm_4 (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m42,400\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",
"│ lstm_5 (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m80,400\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",
"│ lstm_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</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\">42,400</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",
"│ lstm_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</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\">80,400</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;34m368,705\u001b[0m (1.41 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\">368,705</span> (1.41 MB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m122,901\u001b[0m (480.08 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\">122,901</span> (480.08 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;34m245,804\u001b[0m (960.18 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\">245,804</span> (960.18 KB)\n",
"</pre>\n"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"plt.plot(model_dssa.history.history['loss'], label='Training Loss')\n",
"plt.plot(model_dssa.history.history['val_loss'], label='Validation Loss')\n",
"plt.xlabel('Epoch')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 449
},
"id": "xVpdraikRRxX",
"outputId": "9a00efd0-12ec-4669-f276-227e2d7fbaca"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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QojZs2eLpk2bCmtraxEcHCx27dol7+vevbsYOnSoWfs//vhDtGzZUlhbW4uAgACxatUqs/0mk0lMnjxZeHp6Cp1OJ3r16iUSExPN2ly5ckUMHjxYODg4CCcnJzFs2DCRk5Mj7x86dKgAcM2re/futepLdeo70DqQlCmaTVgpQj/dUC/nJyIiuhvV5vtbJYTgcyWFZGdnw9nZGQaDAU5OTnV+/iOXDOg7azs8HHXY/V7YjQ8gIiKiG6rN97fiM8NT/eGoQyIiImUx0LJgHHVIRESkLAZaFsyKow6JiIgUxUDLglVktLgEDxERkRIYaFkw1mgREREpi4GWBWONFhERkbIYaFkwbVmgJQRgYrBFRETU4BhoWTBNWTE8wKwWERGREhhoWbDyjBbAOi0iIiIlMNCyYBp15YwWRx4SERE1NAZaFqx81CHAjBYREZESGGhZsEoJLZQYGWgRERE1NAZaFkylUsl1WsxoERERNTwGWhaOs8MTEREph4GWhWNGi4iISDkMtCwcZ4cnIiJSDgMtC6fVcL1DIiIipTDQsnByRoujDomIiBocAy0LxxotIiIi5TDQsnAcdUhERKQcBloWjhktIiIi5TDQsnAcdUhERKQcBloWzoqjDomIiBTDQMvCMaNFRESkHAZaFq6iRovF8ERERA2NgZaF4zxaREREymGgZeG0atZoERERKYWBloVjjRYREZFybirQSkpKwoULF+T3u3fvxrhx4/DDDz/UWceobmg1nEeLiIhIKTcVaD377LPYtGkTACAlJQWPPPIIdu/ejffeew8ffvhhnXaQbg0zWkRERMq5qUDr8OHDCA4OBgD88ccfaNeuHXbu3ImFCxdiwYIFddk/ukVauRieow6JiIga2k0FWiUlJdDpdACADRs24IknngAAtG7dGsnJyXXXO7plzGgREREp56YCrYCAAMybNw/btm1DVFQUevfuDQC4dOkSGjVqVKcdpFvDUYdERETKualA6/PPP8f333+PHj16YPDgwejQoQMAYMWKFfIjRbo9MKNFRESkHO3NHNSjRw+kp6cjOzsbrq6u8vZRo0bBzs6uzjpHt44zwxMRESnnpjJaBQUFKCoqkoOsc+fOYebMmUhMTISHh0eddpBuDTNaREREyrmpQKt///745ZdfAABZWVkICQnBl19+iYiICHz33Xd12kG6NfI8WlyCh4iI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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Make predictions"
],
"metadata": {
"id": "pJw3fvSKvWcK"
}
},
{
"cell_type": "code",
"source": [
"y_pred_dssa = model_dssa.predict(X_test_dssa)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "RR2M3q-_vaZU",
"outputId": "1131bf3c-4428-4bf6-8ec2-ed93fe710b31"
},
"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 57ms/step\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## Evaluate Model"
],
"metadata": {
"id": "BNJ4gdxPF3f2"
}
},
{
"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": "NFvlAVTVvypg"
},
"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": "AE2uyUC5v0ZG",
"outputId": "6214b719-aa41-430a-b3c5-bf867434809c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Evaluation for ADRO:\n",
"RMSE: 0.023\n",
"MAPE: 17.053%\n",
"R-squared: 0.95269\n",
"\n",
"Evaluation for DSSA:\n",
"RMSE: 0.039\n",
"MAPE: 115.017%\n",
"R-squared: 0.98061\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## Invert"
],
"metadata": {
"id": "oZQ0i9Hozuda"
}
},
{
"cell_type": "markdown",
"source": [
"### ADRO"
],
"metadata": {
"id": "U1QWVjzn-jVZ"
}
},
{
"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": "-zc5rA_b4oOh",
"outputId": "45e92e5e-ed07-4146-9765-229b8aec8cbe"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0. , 0.59014332, 0. , 0. , 0. ],\n",
" [0. , 0.58159274, 0. , 0. , 0. ],\n",
" [0. , 0.57574308, 0. , 0. , 0. ],\n",
" ...,\n",
" [0. , 0.83483815, 0. , 0. , 0. ],\n",
" [0. , 0.83351439, 0. , 0. , 0. ],\n",
" [0. , 0.84000373, 0. , 0. , 0. ]])"
]
},
"metadata": {},
"execution_count": 43
}
]
},
{
"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": "5LjQOTRK43O2",
"outputId": "74710e42-d281-4623-d3e9-7d4dfa5bf803"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2680.07354277, 2642.57495525, 2616.92127377, 2638.38320628,\n",
" 2654.42325944, 2690.1174292 , 2721.12554982, 2716.84989268,\n",
" 2641.32548156, 2570.72917244, 2545.21690628, 2524.19882447,\n",
" 2517.85735339, 2466.04549581, 2412.92796436, 2326.40661639,\n",
" 2262.77207145, 2275.22916731, 2328.40446731, 2325.6828104 ,\n",
" 2301.24540529, 2299.76616436, 2308.28428134, 2317.1040495 ,\n",
" 2323.23065293, 2350.15837935, 2362.01243424, 2374.73197186,\n",
" 2393.75298694, 2426.76209524, 2450.35806608, 2439.61180815,\n",
" 2416.07883379, 2412.01647592, 2428.26982835, 2440.12623581,\n",
" 2460.3546398 , 2458.20334932, 2444.28374189, 2406.72451046,\n",
" 2383.36405757, 2385.54906815, 2408.55193108, 2420.69718131,\n",
" 2415.10513306, 2355.35911754, 2327.67255804, 2344.74721724,\n",
" 2354.43717325, 2415.23400137, 2450.51176703, 2462.91762924,\n",
" 2463.88740903, 2464.49437094, 2455.53397164, 2336.17368427,\n",
" 2299.094899 , 2273.11342672, 2276.10040075, 2287.42225304,\n",
" 2289.78710419, 2280.491595 , 2286.81398416, 2290.19409803,\n",
" 2300.26020312, 2330.49197713, 2345.62629256, 2345.46004459,\n",
" 2326.17606497, 2298.7741659 , 2261.49619675, 2210.84493816,\n",
" 2175.4579089 , 2169.12401831, 2177.96103862, 2201.95799118,\n",
" 2211.24304453, 2229.46340314, 2244.90459767, 2250.39130327,\n",
" 2263.03085366, 2283.96764126, 2295.60813549, 2306.123842 ,\n",
" 2315.94475749, 2348.60176516, 2363.75908345, 2329.65184984,\n",
" 2291.43363866, 2264.24320909, 2255.62915972, 2255.25065807,\n",
" 2229.85131505, 2215.49491462, 2217.1545189 , 2230.81455994,\n",
" 2277.69988391, 2344.54568079, 2425.23580301, 2496.97127664,\n",
" 2552.33655375, 2569.92171967, 2530.20989078, 2519.36822325,\n",
" 2520.59626245, 2516.61598298, 2510.10669556, 2511.25448614,\n",
" 2522.64482424, 2529.54908127, 2539.42567414, 2584.13722757,\n",
" 2609.77574807, 2605.01624662, 2562.3989993 , 2547.34597808,\n",
" 2554.49777728, 2560.23150226, 2572.25023675, 2639.97746152,\n",
" 2667.85928395, 2652.16531932, 2647.95553401, 2653.68455386,\n",
" 2653.5112482 , 2614.83324116, 2552.28192195, 2505.59395209,\n",
" 2498.83163318, 2542.71299237, 2588.60396531, 2611.8826012 ,\n",
" 2674.90364933, 2713.90526482, 2746.67179748, 2807.42471105,\n",
" 2823.90756932, 2800.65010652, 2787.91959026, 2788.24581268,\n",
" 2802.49321091, 2810.19420347, 2817.88839972, 2811.59528694,\n",
" 2668.08513024, 2598.7597293 , 2596.9030323 , 2632.52061298,\n",
" 2732.65756464, 2800.50686142, 2806.48054808, 2784.87667745,\n",
" 2765.29287642, 2704.20589855, 2648.38709909, 2651.57665515,\n",
" 2670.17081028, 2676.68532562, 2621.4434275 , 2599.93182972,\n",
" 2611.62120503, 2609.72033209, 2598.35900897, 2612.13955364,\n",
" 2630.67489463, 2657.96543893, 2684.94073945, 2719.26257932,\n",
" 2768.10210106, 2787.90625906, 2805.59153971, 2815.16465163,\n",
" 2818.99279854, 2819.50801039, 2800.07869449, 2761.11184469,\n",
" 2757.74323225, 2773.59429598, 2796.30047426, 2862.61851227,\n",
" 2975.18955693, 3080.85033244, 3119.47684443, 3127.86452472,\n",
" 3115.63432074, 3121.15474644, 3137.74399295, 3168.36498585,\n",
" 3190.41976488, 3196.45226568, 3246.78096139, 3160.75025403,\n",
" 3126.98231265, 3164.26577112, 3161.91738793, 3152.904448 ,\n",
" 3172.80114025, 3192.11544183, 3191.05234361, 3177.43229619,\n",
" 3214.18564323, 3237.6903868 , 3243.10782242, 3242.27684399,\n",
" 3272.0786213 , 3374.78849545, 3451.02599531, 3505.37261155,\n",
" 3536.11776763, 3544.15517706, 3558.20574397, 3602.27374002,\n",
" 3615.01131397, 3585.83636469, 3557.11807451, 3513.36218548,\n",
" 3477.94352728, 3483.53191599, 3500.74589935, 3786.13771459,\n",
" 3787.30014336, 3765.5480611 , 3736.58039898, 3695.75293124,\n",
" 3704.37168574, 3725.714683 , 3753.1827153 , 3747.37736776,\n",
" 3775.83635294])"
]
},
"metadata": {},
"execution_count": 44
}
]
},
{
"cell_type": "markdown",
"source": [
"### DSSA"
],
"metadata": {
"id": "HpdWzprW-pP8"
}
},
{
"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": "VnGXeC7y-qI5",
"outputId": "7350613f-d5f6-40ed-832d-5f2ced802022"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0. , 0.09492499, 0. , 0. , 0. ],\n",
" [0. , 0.09493433, 0. , 0. , 0. ],\n",
" [0. , 0.09503628, 0. , 0. , 0. ],\n",
" ...,\n",
" [0. , 0.86946911, 0. , 0. , 0. ],\n",
" [0. , 0.8616249 , 0. , 0. , 0. ],\n",
" [0. , 0.87051117, 0. , 0. , 0. ]])"
]
},
"metadata": {},
"execution_count": 45
}
]
},
{
"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": "rUEqSHno-yof",
"outputId": "cb62e813-46f5-4d5c-b2ee-fc5a0a61acbe"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 5082.93527693, 5083.34501542, 5087.81587016, 5089.03168909,\n",
" 5070.51046349, 5085.22804808, 5060.38038168, 4971.20083071,\n",
" 4949.66178633, 4949.40039016, 4956.51494041, 4960.5077669 ,\n",
" 4998.44451975, 5007.93875538, 5042.28523184, 5056.97112214,\n",
" 5057.96344735, 5056.33690968, 5055.07828712, 4972.53362443,\n",
" 4951.61768317, 5033.10499836, 5056.30488865, 5058.93649459,\n",
" 5063.1773207 , 5057.11587027, 5054.88027953, 5095.43720223,\n",
" 5105.8770385 , 5106.34199694, 5105.13794083, 5104.13515978,\n",
" 5103.68163742, 5103.53460208, 5103.53460208, 5103.53460208,\n",
" 5103.53460208, 5103.53460208, 5103.53460208, 5103.53460208,\n",
" 5103.53460208, 5103.53460208, 5103.53460208, 5619.75021377,\n",
" 6542.94397786, 7578.27408478, 8144.0739359 , 8115.44190645,\n",
" 7991.30290501, 7802.81862244, 7816.77587092, 7867.07633585,\n",
" 7879.92657155, 7885.57664976, 7885.12966231, 7884.10172187,\n",
" 7635.66688128, 7576.83509886, 7575.19026347, 7582.8720434 ,\n",
" 7596.63977966, 7601.30047336, 7602.21274599, 7601.96049869,\n",
" 8482.51531959, 9454.35687132, 10665.18117815, 11893.46348166,\n",
" 12961.06686667, 13863.40775132, 14002.88613349, 13597.00584501,\n",
" 13203.64381909, 14189.75825518, 14803.03287864, 14536.59960479,\n",
" 14101.38543814, 14488.40076506, 14122.75718898, 13997.6033169 ,\n",
" 12459.00716454, 11855.22187553, 11645.57365209, 11701.30919687,\n",
" 11763.18036325, 11792.19141714, 12486.90859169, 12624.88133192,\n",
" 11368.510703 , 11559.61025424, 11724.57018852, 11765.05195983,\n",
" 12489.62057695, 12619.40116122, 12654.4661504 , 12641.62114263,\n",
" 12625.41196615, 12615.03976613, 12609.33348775, 11872.22177543,\n",
" 11703.34285907, 11701.44120194, 10928.72275688, 11536.0283988 ,\n",
" 11849.59597647, 11911.23450026, 12212.38510638, 12268.51993382,\n",
" 12259.90431607, 12239.94671851, 11207.21488953, 11747.55671419,\n",
" 12013.58547747, 12065.46085432, 12062.00650394, 12051.62123412,\n",
" 12044.46420699, 11363.88791174, 11782.23418355, 12022.32264444,\n",
" 12063.54612738, 12056.26493707, 12045.09678572, 12038.44686717,\n",
" 12037.27319837, 12041.49474651, 12207.3205556 , 12244.46495131,\n",
" 12244.68060315, 12239.59121972, 12070.86522013, 12076.96882069,\n",
" 12204.40076038, 12238.00062403, 12489.37878549, 12540.05435392,\n",
" 12540.69869548, 12420.58062062, 12506.38522029, 12527.08779693,\n",
" 12721.3522023 , 14709.89742339, 17105.01824677, 17566.0975644 ,\n",
" 19206.80551648, 20561.15657866, 20708.74347001, 20610.74343204,\n",
" 20474.46715295, 19550.68263352, 18780.96763045, 18900.28191209,\n",
" 18987.14385927, 18661.49389714, 19329.21211481, 19905.00252753,\n",
" 21741.11718625, 21199.58535552, 22520.43588459, 23199.92215782,\n",
" 23244.61828887, 23135.50629973, 23078.50363702, 23179.65088487,\n",
" 23353.33818376, 23921.92190409, 25692.41566837, 26455.85454941,\n",
" 26000.05804837, 25920.8863765 , 25899.90671992, 26250.94086409,\n",
" 27035.84821254, 27136.3262862 , 26874.74452525, 27291.09895825,\n",
" 27761.39249086, 27810.14549047, 27793.56774539, 28126.50281876,\n",
" 27490.33250481, 27556.05534375, 27721.51650518, 27797.82850295,\n",
" 27779.43405449, 27995.56947738, 28546.27631366, 28460.93307823,\n",
" 28372.36421406, 28419.58020419, 29820.56172907, 30115.515939 ,\n",
" 30438.19382668, 30577.47877568, 30338.51039737, 30242.90997624,\n",
" 34224.21673864, 39007.46603787, 39707.59215266, 38833.31606776,\n",
" 38258.69409591, 38388.92689556, 38325.82324624, 38655.07001966,\n",
" 38845.08673728, 38807.05620855, 38992.71283805, 39328.36643159,\n",
" 39157.92828709, 39343.62673998, 39968.23027343, 39174.32044089,\n",
" 38936.38196349, 38811.69076264, 38815.80513835, 38915.20625979,\n",
" 38927.27230698, 39240.06680548, 39046.83230102, 39116.85510695,\n",
" 39078.88208538, 38845.49712926, 38372.45893687, 37957.48206168,\n",
" 38529.78022158, 39018.76619428, 39050.56765229, 38706.55983716,\n",
" 39096.26754463])"
]
},
"metadata": {},
"execution_count": 46
}
]
},
{
"cell_type": "markdown",
"source": [
"### Simpan Prediksi"
],
"metadata": {
"id": "oW1oPxfEADez"
}
},
{
"cell_type": "code",
"source": [
"adro_actual = adro['High'].iloc[919:]\n",
"dssa_actual = dssa['High'].iloc[919:]"
],
"metadata": {
"id": "68DFmVT-AugO"
},
"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": "zHtrPQLpBrR9"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Save predictions to CSV files\n",
"df_pred_adro.to_csv('LSTM_adro_predictions.csv', index=False)\n",
"df_pred_dssa.to_csv('LSTM_dssa_predictions.csv', index=False)\n",
"\n",
"print(\"ADRO predictions saved to 'LSTM_adro_predictions.csv'\")\n",
"print(\"DSSA predictions saved to 'LSTM_dssa_predictions.csv'\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "vIZ6f_P6nWRH",
"outputId": "ef1b5df3-4aa6-4188-bcc2-2e8970a3a700"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"ADRO predictions saved to 'LSTM_adro_predictions.csv'\n",
"DSSA predictions saved to 'LSTM_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('LSTM_adro_predictions.csv')\n",
"files.download('LSTM_dssa_predictions.csv')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"id": "gF4qL7w4n5zD",
"outputId": "dab98912-503e-4e26-b3eb-1b527447c24d"
},
"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_cbbef4c8-92a3-46c9-836d-819f02e6c57e\", \"LSTM_adro_predictions.csv\", 5857)"
]
},
"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_0caeb2af-ce0e-4324-8ea0-f3e5ba20d6de\", \"LSTM_dssa_predictions.csv\", 6008)"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "AFFm5NWUHa1G"
},
"execution_count": null,
"outputs": []
}
]
}