569 lines
104 KiB
Plaintext
569 lines
104 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Outliers in Year after winsorizing: []\n",
|
|
"Outliers in emissions_total_including_land_use_change after winsorizing: []\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"c:\\Users\\M S I\\Documents\\skripseed\\web co2\\venv\\Lib\\site-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"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Epoch 1/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 124ms/step - loss: 0.1107 - val_loss: 0.2252 - learning_rate: 0.0010\n",
|
|
"Epoch 2/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step - loss: 0.0893 - val_loss: 0.1143 - learning_rate: 0.0010\n",
|
|
"Epoch 3/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step - loss: 0.0941 - val_loss: 0.1036 - learning_rate: 0.0010\n",
|
|
"Epoch 4/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0839 - val_loss: 0.1078 - learning_rate: 0.0010\n",
|
|
"Epoch 5/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0718 - val_loss: 0.1005 - learning_rate: 0.0010\n",
|
|
"Epoch 6/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 23ms/step - loss: 0.0674 - val_loss: 0.0854 - learning_rate: 0.0010\n",
|
|
"Epoch 7/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 19ms/step - loss: 0.0615 - val_loss: 0.0767 - learning_rate: 0.0010\n",
|
|
"Epoch 8/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0562 - val_loss: 0.0708 - learning_rate: 0.0010\n",
|
|
"Epoch 9/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 23ms/step - loss: 0.0544 - val_loss: 0.0685 - learning_rate: 0.0010\n",
|
|
"Epoch 10/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0496 - val_loss: 0.0655 - learning_rate: 0.0010\n",
|
|
"Epoch 11/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0460 - val_loss: 0.0642 - learning_rate: 0.0010\n",
|
|
"Epoch 12/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 26ms/step - loss: 0.0427 - val_loss: 0.0626 - learning_rate: 0.0010\n",
|
|
"Epoch 13/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0407 - val_loss: 0.0588 - learning_rate: 0.0010\n",
|
|
"Epoch 14/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 22ms/step - loss: 0.0371 - val_loss: 0.0554 - learning_rate: 0.0010\n",
|
|
"Epoch 15/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0352 - val_loss: 0.0606 - learning_rate: 0.0010\n",
|
|
"Epoch 16/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step - loss: 0.0366 - val_loss: 0.0706 - learning_rate: 0.0010\n",
|
|
"Epoch 17/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0344 - val_loss: 0.0590 - learning_rate: 0.0010\n",
|
|
"Epoch 18/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0312 - val_loss: 0.0524 - learning_rate: 0.0010\n",
|
|
"Epoch 19/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0286 - val_loss: 0.0590 - learning_rate: 0.0010\n",
|
|
"Epoch 20/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0304 - val_loss: 0.0549 - learning_rate: 0.0010\n",
|
|
"Epoch 21/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0280 - val_loss: 0.0486 - learning_rate: 0.0010\n",
|
|
"Epoch 22/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0268 - val_loss: 0.0478 - learning_rate: 0.0010\n",
|
|
"Epoch 23/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0255 - val_loss: 0.0550 - learning_rate: 0.0010\n",
|
|
"Epoch 24/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0251 - val_loss: 0.0449 - learning_rate: 0.0010\n",
|
|
"Epoch 25/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0244 - val_loss: 0.0424 - learning_rate: 0.0010\n",
|
|
"Epoch 26/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0233 - val_loss: 0.0452 - learning_rate: 0.0010\n",
|
|
"Epoch 27/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step - loss: 0.0244 - val_loss: 0.0515 - learning_rate: 0.0010\n",
|
|
"Epoch 28/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0233 - val_loss: 0.0484 - learning_rate: 0.0010\n",
|
|
"Epoch 29/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 0.0214 - val_loss: 0.0412 - learning_rate: 0.0010\n",
|
|
"Epoch 30/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 23ms/step - loss: 0.0218 - val_loss: 0.0453 - learning_rate: 0.0010\n",
|
|
"Epoch 31/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 18ms/step - loss: 0.0215 - val_loss: 0.0459 - learning_rate: 0.0010\n",
|
|
"Epoch 32/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 38ms/step - loss: 0.0207 - val_loss: 0.0511 - learning_rate: 0.0010\n",
|
|
"Epoch 33/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 20ms/step - loss: 0.0234 - val_loss: 0.0502 - learning_rate: 0.0010\n",
|
|
"Epoch 34/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 23ms/step - loss: 0.0205 - val_loss: 0.0387 - learning_rate: 0.0010\n",
|
|
"Epoch 35/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step - loss: 0.0187 - val_loss: 0.0449 - learning_rate: 0.0010\n",
|
|
"Epoch 36/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 16ms/step - loss: 0.0196 - val_loss: 0.0583 - learning_rate: 0.0010\n",
|
|
"Epoch 37/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - loss: 0.0219 - val_loss: 0.0736 - learning_rate: 0.0010\n",
|
|
"Epoch 38/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 26ms/step - loss: 0.0225 - val_loss: 0.0471 - learning_rate: 0.0010\n",
|
|
"Epoch 39/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 31ms/step - loss: 0.0181 - val_loss: 0.0482 - learning_rate: 0.0010\n",
|
|
"Epoch 40/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 26ms/step - loss: 0.0183 - val_loss: 0.0575 - learning_rate: 5.0000e-04\n",
|
|
"Epoch 41/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0188 - val_loss: 0.0556 - learning_rate: 5.0000e-04\n",
|
|
"Epoch 42/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 35ms/step - loss: 0.0189 - val_loss: 0.0504 - learning_rate: 5.0000e-04\n",
|
|
"Epoch 43/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 31ms/step - loss: 0.0171 - val_loss: 0.0514 - learning_rate: 5.0000e-04\n",
|
|
"Epoch 44/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0189 - val_loss: 0.0573 - learning_rate: 5.0000e-04\n",
|
|
"Epoch 45/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 28ms/step - loss: 0.0189 - val_loss: 0.0550 - learning_rate: 2.5000e-04\n",
|
|
"Epoch 46/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 24ms/step - loss: 0.0183 - val_loss: 0.0486 - learning_rate: 2.5000e-04\n",
|
|
"Epoch 47/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 26ms/step - loss: 0.0182 - val_loss: 0.0461 - learning_rate: 2.5000e-04\n",
|
|
"Epoch 48/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 30ms/step - loss: 0.0184 - val_loss: 0.0445 - learning_rate: 2.5000e-04\n",
|
|
"Epoch 49/50\n",
|
|
"\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 31ms/step - loss: 0.0175 - val_loss: 0.0463 - learning_rate: 2.5000e-04\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model(model)`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')` or `keras.saving.save_model(model, 'my_model.keras')`. \n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Model LSTM berhasil disimpan sebagai model_lstm.h5\n",
|
|
"\u001b[1m1/4\u001b[0m \u001b[32m━━━━━\u001b[0m\u001b[37m━━━━━━━━━━━━━━━\u001b[0m \u001b[1m2s\u001b[0m 712ms/stepWARNING:tensorflow:5 out of the last 16 calls to <function TensorFlowTrainer.make_predict_function.<locals>.one_step_on_data_distributed at 0x00000204BCD89DA0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"WARNING:tensorflow:5 out of the last 16 calls to <function TensorFlowTrainer.make_predict_function.<locals>.one_step_on_data_distributed at 0x00000204BCD89DA0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\u001b[1m4/4\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 111ms/step\n",
|
|
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 34ms/step\n",
|
|
"Mean Absolute Error (MAE): 202411114.04\n",
|
|
"Root Mean Squared Error (RMSE): 227687452.87\n",
|
|
"Mean Absolute Percentage Error (MAPE): 16.41%\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import os\n",
|
|
"import random\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"import tensorflow as tf\n",
|
|
"import joblib\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from sklearn.preprocessing import StandardScaler\n",
|
|
"from sklearn.preprocessing import MinMaxScaler\n",
|
|
"from tensorflow.keras.models import Sequential\n",
|
|
"from tensorflow.keras.layers import LSTM, Dense, Dropout\n",
|
|
"from keras.optimizers import Adam\n",
|
|
"from tensorflow.keras.regularizers import l2\n",
|
|
"from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau\n",
|
|
"\n",
|
|
"# Set seed untuk reproducibility\n",
|
|
"seed_value = 42\n",
|
|
"np.random.seed(seed_value)\n",
|
|
"random.seed(seed_value)\n",
|
|
"tf.random.set_seed(seed_value)\n",
|
|
"\n",
|
|
"# Load data\n",
|
|
"df = pd.read_csv('co2-fossil-land-use-all.csv')\n",
|
|
"df = df[df[\"Entity\"] == \"Indonesia\"].copy()\n",
|
|
"df = df.dropna(subset=['Year', 'emissions_total_including_land_use_change'])\n",
|
|
"data = df[['Year', 'emissions_total_including_land_use_change']].sort_values('Year')\n",
|
|
"\n",
|
|
"def iqr_outliers(data):\n",
|
|
" outliers_indices = {}\n",
|
|
" numeric_df = data.select_dtypes(include=['float64', 'int64'])\n",
|
|
" q1 = numeric_df.quantile(0.25)\n",
|
|
" q3 = numeric_df.quantile(0.75)\n",
|
|
" iqr = q3 - q1\n",
|
|
" lower_tail = q1 - 1.5 * iqr\n",
|
|
" upper_tail = q3 + 1.5 * iqr\n",
|
|
" for column in numeric_df.columns:\n",
|
|
" outliers = numeric_df[(numeric_df[column] < lower_tail[column]) | (numeric_df[column] > upper_tail[column])].index\n",
|
|
" outliers_indices[column] = list(outliers)\n",
|
|
" return outliers_indices\n",
|
|
"\n",
|
|
"\n",
|
|
"def winsorize(data, cols, limits):\n",
|
|
" for col in cols:\n",
|
|
" q1, q3 = data[col].quantile([0.25, 0.75])\n",
|
|
" iqr_val = q3 - q1 \n",
|
|
" lower_bound = q1 - limits * iqr_val\n",
|
|
" upper_bound = q3 + limits * iqr_val\n",
|
|
" data[col] = np.clip(data[col], lower_bound, upper_bound)\n",
|
|
" return data\n",
|
|
"\n",
|
|
"num_cols = [\n",
|
|
" 'emissions_total_including_land_use_change'\n",
|
|
"]\n",
|
|
"\n",
|
|
"data = winsorize(data.copy(), num_cols, 1.5)\n",
|
|
"\n",
|
|
"outliers_after_winsorize = iqr_outliers(data)\n",
|
|
"\n",
|
|
"for column, indices in outliers_after_winsorize.items():\n",
|
|
" print(f\"Outliers in {column} after winsorizing: {indices}\") \n",
|
|
"\n",
|
|
"scaler = MinMaxScaler(feature_range=(0, 1))\n",
|
|
"scaled_data = scaler.fit_transform(data[['emissions_total_including_land_use_change']].values.reshape(-1, 1))\n",
|
|
"\n",
|
|
"def create_dataset(dataset, time_steps=10):\n",
|
|
" X, y = [], []\n",
|
|
" for i in range(len(dataset) - time_steps):\n",
|
|
" X.append(dataset[i:(i + time_steps), :]) # Menggunakan semua fitur\n",
|
|
" y.append(dataset[i + time_steps, 0]) # Target hanya kolom pertama (emisi)\n",
|
|
" return np.array(X), np.array(y)\n",
|
|
"\n",
|
|
"time_steps = 10\n",
|
|
"X, y = create_dataset(scaled_data, time_steps)\n",
|
|
"X = X.reshape(X.shape[0], X.shape[1], X.shape[2])\n",
|
|
"\n",
|
|
"train_size = int(len(X) * 0.8)\n",
|
|
"X_train, X_test = X[:train_size], X[train_size:]\n",
|
|
"y_train, y_test = y[:train_size], y[train_size:]\n",
|
|
"\n",
|
|
"model = Sequential([\n",
|
|
" LSTM(units=64, return_sequences=True, input_shape=(X_train.shape[1], X_train.shape[2]), \n",
|
|
" kernel_regularizer=l2(0.001)),\n",
|
|
" Dropout(0.3),\n",
|
|
" LSTM(units=32, kernel_regularizer=l2(0.001)),\n",
|
|
" Dropout(0.3),\n",
|
|
" Dense(units=1, kernel_regularizer=l2(0.001))\n",
|
|
"])\n",
|
|
"\n",
|
|
"model.compile(optimizer='adam', loss='mean_squared_error')\n",
|
|
"\n",
|
|
"\n",
|
|
"early_stopping = EarlyStopping(monitor='val_loss', patience=15, restore_best_weights=True)\n",
|
|
"lr_scheduler = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=5, min_lr=1e-5)\n",
|
|
"\n",
|
|
"\n",
|
|
"history = model.fit(X_train, y_train, epochs=50, batch_size=16, \n",
|
|
" validation_data=(X_test, y_test), \n",
|
|
" callbacks=[early_stopping, lr_scheduler], shuffle=False)\n",
|
|
"\n",
|
|
"\n",
|
|
"model.save(\"model_lstm.h5\")\n",
|
|
"joblib.dump(scaler, \"scaler.pkl\")\n",
|
|
"print(\"Model LSTM berhasil disimpan sebagai model_lstm.h5\")\n",
|
|
"\n",
|
|
"\n",
|
|
"train_predict = model.predict(X_train)\n",
|
|
"test_predict = model.predict(X_test)\n",
|
|
"\n",
|
|
"\n",
|
|
"train_predict = scaler.inverse_transform(np.column_stack((train_predict, np.zeros_like(train_predict))))[:, 0]\n",
|
|
"y_train_actual = scaler.inverse_transform(np.column_stack((y_train, np.zeros_like(y_train))))[:, 0]\n",
|
|
"test_predict = scaler.inverse_transform(np.column_stack((test_predict, np.zeros_like(test_predict))))[:, 0]\n",
|
|
"y_test_actual = scaler.inverse_transform(np.column_stack((y_test, np.zeros_like(y_test))))[:, 0]\n",
|
|
"\n",
|
|
"\n",
|
|
"def mean_absolute_percentage_error(y_true, y_pred): \n",
|
|
" return np.mean(np.abs((y_true - y_pred) / y_true)) * 100\n",
|
|
"\n",
|
|
"\n",
|
|
"from sklearn.metrics import mean_absolute_error, mean_squared_error\n",
|
|
"\n",
|
|
"mae = mean_absolute_error(y_test_actual.flatten(), test_predict.flatten())\n",
|
|
"rmse = np.sqrt(mean_squared_error(y_test_actual.flatten(), test_predict.flatten()))\n",
|
|
"mape = mean_absolute_percentage_error(y_test_actual.flatten(), test_predict.flatten())\n",
|
|
"\n",
|
|
"print(f\"Mean Absolute Error (MAE): {mae:.2f}\")\n",
|
|
"print(f\"Root Mean Squared Error (RMSE): {rmse:.2f}\")\n",
|
|
"print(f\"Mean Absolute Percentage Error (MAPE): {mape:.2f}%\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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v2/fPmzfvh0NGzZURV1EREREwpJCuksVnUGB69dxKQIJHtwv3D9FixZVSI/gfVypUiVs3rzZDI1XSBcRERGRcKS044ZCoEhw0sgWEREREQl3SqMiIiIiIiIiQUIhXURERERERCRIKKRLwH355ZcoW7ZsxD23iIiIiIiIK4X0MHHdddeZ+bo8cS3pKlWqoFevXvj8889NQ65AB9fRo0ebRl933nmn19/7119/me89cuSIT7dJREREREQk2Cikh5ELLrjArPHO7teTJk3Ceeedh3vvvRcXXXQRUlNTA7ptn332GR555BET1k+ePBnQbREREREREQlWCul5cDiAxMTAnPjc3ihSpAiqVq2KGjVqoF27dnj88cfx008/mcDO6rjtzTffRMuWLVGiRAmz3Nwdd9xh1qe2q9bXX3+9qVrblflnn33W3PbNN9+gQ4cOKFWqlHmeYcOGYe/evXluF9eenz17Nh577DE0atQIEyZMyPX+XAubzzNw4ECsWbPGHGygunXrmoo6Rw3YX7/11ltZvrdNmzYZ25vXaxUREREREQk2Cul5SEoCSpYMzInPXVA9evRA69atswRjLjH3zjvvYMWKFfjqq6/w559/mio3devWzQTf0qVLm6o8Tw899JC5jWtTP//881iyZAkmTpxoKvZ2YM7NF198gX79+qFMmTK46qqrTFU9J9u2bcPZZ5+NFi1aYNy4cWjQoAHGjx9vbvvvv/+wY8cOvP322x6//txeq4iIiIiISLCJDfQGiP81adIES5cuzfj6vvvuy7jMavTIkSNx22234f3330d8fLwJ06ygs1ru7IYbbsi4XL9+fRN+O3bsaCrTJXlUwQ3Oh2cV/9133zVfX3755XjwwQdNdb1evXpZ7suqOefRs4LOAwX2mtjly5c355UqVTLb5M069rm9VhERERERkWCjkJ6H4sWBQI2O5nP7gsPhyAi89Mcff+Cll17C6tWrcfToUTNfnfPEk5KSUDyXJ12wYIEZSs5K+qFDhzIa0m3duhXNmjVz+z1Tp05FYmIi+vbta76uWLFiRkM7VuVtJ06cMBV0DqF3HcJeEPl9rSIiIiKhKC2Now85BRAoWjTQWyOu1q8HnGpnWbRoATRqVNhbJMFIIT0PzLYlSiCkrVq1KqNqzSHqbCR3++2344UXXjBV6n/++Qc33ngjkpOTcwyuDNp9+vQx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6H36ePb9ImER0jdu3Iirr74a1113HZYuXZpx/e233+7LbRMRERGRCOOP4BmuId3/lfTMoyQOhwMfzreGut/W/jZERUV5VEl3fc83b7a6sJcokXkfm70Um82TSrprSH/vPevybbcBMTGefb9IWIT0a665BmeeeSa6du2Kiy++GK+++qq5fvXq1V49zt9//43+/fujevXq5gd94sSJeX7PX3/9hXbt2qFIkSJo0KABvvzyy/y8BBERERGJsJDONbu5fna48FclvXTp7MPdZ26diVX7V6FEXAkzH51yq6TnNNzdeai760iJNm0ypybkJ6T//TewcKH1ftxwg2ffKxI2IT06Ohq33XYbbr31VixYsAAzZszADTfcgDR7vQwPJSYmonXr1njPPuSVh02bNqFfv34477zzsHjxYtx333246aabMHny5Py8DBERERGJgODJ+c5sLsYKrl39DQf+7+6eed1HCz4y58NaDkPpIlaKz8+cdHfz0W3OS7F5E9Lt1//229b5ZZe5P3AgEtYhPT09HUdOH1qrUKECfv31V5QtWxazZs3y6nEuvPBCjBw5EgMHDvTo/h9++CHq1auHN954A02bNsVdd92FIUOG4P/+7//y8zJEREREJAJCOoc920EynIa8+7+7u1Xq3p+0H+NWjjOXb22fuaaZXUn3VUh3HfLubSV961brXA3jJNTF5uebvv32WzM83cbLb775Jq666ir405w5c9CzZ88s1/Xp08dU1HNy6tQpc7IdPd0BIyUlxZwkNNj7SvssfGkfRwbt58ig/Rz+/LmPExP5N2Ys4uMdSEnx3dj0ypVjsWdPFHbsSEXz5g6Eg5MnOek6GrGxqUhJ8d1rKlmSdbwYHD6cbr7+YtEXSE5LRvtq7dGqUquM/b53r/X8Zctmf/5y5fj/ONME7siRFBQvbl2/bp31PXXrpiElxXp8Z92786BKLNLSohAX59nrKlrUekxq29aBtm35fT54IyKAfl8XHm/e43yFdAbd+fPnm8uNGjVCq1atzGXOFfen3bt3o4o9qeg0fs3tOXHiBIq5Odz20ksvYcSIEdmunzJlCorbvy0kZEydOjXQmyB+pn0cGbSfI4P2c/jzxz5euJAl2K44deoIEhJm+Oxxo6O7Mqpj6tSlSE093V48xO3bdx5nkGPx4rlwOE6XtX1g06aaANpj48aDSHek439z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46JxuhZ0PwrHAQAAAAAQJEjSAQAAAAAIEiTpCAklSpTQsGHD3CXCEzGODMQ5MhDn8EeMIwNxDn/EODhFXOE4AAAAAACCFS3pAAAAAAAECZJ0AAAAAACCBEk6AAAAAABBgiQdAAAAAIAgQZKOIrNw4UJ17dpVF110kaKiojRt2rRcj+/cuVP33nuvezw+Pl6dO3fWN998k2udgwcP6uGHH1aFChVUunRp3X777e55OW3btk033nij20alSpU0ePBgHTlypEjeY6Q73xj/9NNP+u1vf6tLLrlEcXFxqlGjhh555BGlpqbm2g4xDv3Psp/VLu3SpUu+2yHOoR/jJUuW6JprrlGpUqVUtmxZXXnllcrIyMj1me/Vq5d77IILLtCvf/1r/fzzz0XyHlEwcd6xY4d+9atfqUqVKi7OzZs31z/+8Y9c6xDnwBk5cqRatWqlMmXKuO/RW2+9VRs2bCiUY6ukpCQXf6sSXrduXU2aNKlI3iMKJs6rV69Wjx49VL16dXcM1qBBA7300ksnvBZxLhok6SgyBw4cUJMmTTRu3Lh8D9TtC2Xz5s36+OOPtXLlStWsWVPXXXede57fY489pk8//VRTp07VggULtH37dnXr1i378aNHj7ofkcOHD2vx4sV666233JfH0KFDi+x9RrLzjbHF05bRo0dr7dq1LnYzZ850B3R+xDg8Pst+Y8eOdclBXsQ59GNsCboldR07dtSyZcu0fPlyDRgwQNHRxw89LHFbt26dZs+erX/+858uafzNb35TZO8z0hVEnHv37u2SgU8++URr1qxxv8l33XWXW9+POAeOHStZYvaf//zH/f0zMzPdZ7Kgj622bNni1unQoYNWrVqlRx99VPfff79mzZpV5O85EhVEnL/88kuX4L/zzjvu8/rUU09pyJAh+utf/5q9DnEuQjYFG1DU7L/eRx99lH17w4YN7r61a9dm33f06FFfYmKib8KECe72vn37fLGxsb6pU6dmr/P111+75y1ZssTdnj59ui86Otq3Y8eO7HXGjx/vK1u2rO/QoUNF9O5wrjHOzwcffOArXry4LzMz090mxuET55UrV/qqVq3qS05OPmE7xDn0Y9ymTRvf008/fdLtfvXVV247y5cvz75vxowZvqioKN+PP/5YKO8FBR/nUqVK+SZPnpxrW+XLl89ehzgHl5SUFBePBQsWFOix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",
|
|
"text/plain": [
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"Prediksi 5 Tahun ke Depan:\n",
|
|
" Year Predicted CO₂ Emissions\n",
|
|
" 2024 1307780992.0\n",
|
|
" 2025 1279262208.0\n",
|
|
" 2026 1258591872.0\n",
|
|
" 2027 1261145088.0\n",
|
|
" 2028 1265872256.0\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Prediksi untuk 5 Tahun ke Depan\n",
|
|
"future_steps = 5 \n",
|
|
"last_inputs = scaled_data[-time_steps:].reshape(1, time_steps, 1)\n",
|
|
"\n",
|
|
"future_predictions = []\n",
|
|
"\n",
|
|
"for _ in range(future_steps):\n",
|
|
" next_pred = model.predict(last_inputs, verbose=0)[0, 0] \n",
|
|
" future_predictions.append(next_pred)\n",
|
|
"\n",
|
|
" last_inputs = np.append(last_inputs[:, 1:, :], [[[next_pred]]], axis=1)\n",
|
|
"\n",
|
|
"future_predictions = scaler.inverse_transform(np.array(future_predictions).reshape(-1, 1))\n",
|
|
"\n",
|
|
"last_year = int(data['Year'].iloc[-1])\n",
|
|
"future_years = [last_year + i for i in range(1, future_steps + 1)]\n",
|
|
"\n",
|
|
"\n",
|
|
"train_years = data['Year'][time_steps:train_size+time_steps]\n",
|
|
"\n",
|
|
"\n",
|
|
"test_years = data['Year'][train_size+time_steps:]\n",
|
|
"\n",
|
|
"\n",
|
|
"full_predicted = np.concatenate((train_predict[:len(train_years)], test_predict[:len(test_years)]))\n",
|
|
"full_years = np.concatenate((train_years, test_years))\n",
|
|
"\n",
|
|
"\n",
|
|
"plt.figure(figsize=(12,6))\n",
|
|
"plt.plot(data['Year'], data['emissions_total_including_land_use_change'], label='Data Aktual', color='blue')\n",
|
|
"\n",
|
|
"\n",
|
|
"plt.plot(full_years, full_predicted, label='Prediksi Model', color='green')\n",
|
|
"\n",
|
|
"\n",
|
|
"plt.plot(future_years, future_predictions.flatten(), 'ro--', label='Prediksi 5 Tahun ke Depan', markersize=6)\n",
|
|
"\n",
|
|
"plt.title('Prediksi Emisi CO₂ Indonesia')\n",
|
|
"plt.xlabel('Tahun')\n",
|
|
"plt.ylabel('Emisi CO₂')\n",
|
|
"plt.legend()\n",
|
|
"plt.grid()\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"\n",
|
|
"prediksi_tahun_depan = pd.DataFrame({\n",
|
|
" 'Year': future_years,\n",
|
|
" 'Predicted CO₂ Emissions': future_predictions.flatten()\n",
|
|
"})\n",
|
|
"\n",
|
|
"print(\"\\nPrediksi 5 Tahun ke Depan:\")\n",
|
|
"print(prediksi_tahun_depan.to_string(index=False))\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"Hasil Prediksi Emisi CO₂ Indonesia:\n",
|
|
" Year Actual CO₂ Emissions Predicted CO₂ Emissions\n",
|
|
" 1899 450699900.0 376857312.0\n",
|
|
" 1900 397787840.0 400547648.0\n",
|
|
" 1901 433292380.0 413448864.0\n",
|
|
" 1902 420390820.0 420433056.0\n",
|
|
" 1903 432742800.0 423742592.0\n",
|
|
" 1904 435525060.0 425792768.0\n",
|
|
" 1905 424489820.0 425648896.0\n",
|
|
" 1906 428859260.0 425512736.0\n",
|
|
" 1907 424618000.0 426248864.0\n",
|
|
" 1908 417910460.0 424947424.0\n",
|
|
" 1909 434950800.0 423216928.0\n",
|
|
" 1910 411480160.0 421511104.0\n",
|
|
" 1911 428620580.0 423115616.0\n",
|
|
" 1912 410920800.0 422096608.0\n",
|
|
" 1913 396607230.0 421379616.0\n",
|
|
" 1914 419590700.0 418380640.0\n",
|
|
" 1915 421317280.0 415776448.0\n",
|
|
" 1916 401838600.0 414635072.0\n",
|
|
" 1917 404186460.0 412444320.0\n",
|
|
" 1918 399732700.0 410332608.0\n",
|
|
" 1919 390620800.0 408351232.0\n",
|
|
" 1920 387440830.0 404343168.0\n",
|
|
" 1921 403435460.0 401684768.0\n",
|
|
" 1922 387797220.0 398297440.0\n",
|
|
" 1923 408614600.0 395987520.0\n",
|
|
" 1924 403978430.0 395715360.0\n",
|
|
" 1925 389347700.0 394027936.0\n",
|
|
" 1926 404029900.0 391840704.0\n",
|
|
" 1927 402139700.0 391792672.0\n",
|
|
" 1928 402070980.0 391781536.0\n",
|
|
" 1929 418837470.0 392265696.0\n",
|
|
" 1930 420419870.0 394445504.0\n",
|
|
" 1931 412620540.0 397494304.0\n",
|
|
" 1932 434563330.0 399196608.0\n",
|
|
" 1933 434392540.0 403280224.0\n",
|
|
" 1934 430239140.0 406352640.0\n",
|
|
" 1935 419681300.0 409959264.0\n",
|
|
" 1936 429852800.0 414006624.0\n",
|
|
" 1937 453351230.0 416810144.0\n",
|
|
" 1938 446380350.0 421008768.0\n",
|
|
" 1939 457792350.0 425493792.0\n",
|
|
" 1940 454015140.0 429395744.0\n",
|
|
" 1941 459731360.0 433410624.0\n",
|
|
" 1942 442246660.0 438358144.0\n",
|
|
" 1943 459332860.0 440629792.0\n",
|
|
" 1944 434944960.0 443281664.0\n",
|
|
" 1945 430084400.0 444984032.0\n",
|
|
" 1946 454496640.0 446227424.0\n",
|
|
" 1947 440932640.0 447104096.0\n",
|
|
" 1948 449783070.0 445743040.0\n",
|
|
" 1949 469417060.0 445340992.0\n",
|
|
" 1950 474012670.0 445469472.0\n",
|
|
" 1951 460300160.0 447196960.0\n",
|
|
" 1952 472432830.0 448517760.0\n",
|
|
" 1953 472809660.0 451875104.0\n",
|
|
" 1954 485042050.0 454190656.0\n",
|
|
" 1955 509689540.0 459273440.0\n",
|
|
" 1956 508406750.0 466391232.0\n",
|
|
" 1957 521440860.0 472421504.0\n",
|
|
" 1958 534061700.0 480724480.0\n",
|
|
" 1959 536091360.0 489517376.0\n",
|
|
" 1960 458108400.0 497470528.0\n",
|
|
" 1961 438842340.0 500839360.0\n",
|
|
" 1962 425210100.0 501120896.0\n",
|
|
" 1963 421318850.0 496702624.0\n",
|
|
" 1964 399207600.0 489680096.0\n",
|
|
" 1965 374127680.0 478932384.0\n",
|
|
" 1966 354264400.0 463459200.0\n",
|
|
" 1967 342031970.0 445793504.0\n",
|
|
" 1968 330506620.0 425570912.0\n",
|
|
" 1969 337268030.0 403595424.0\n",
|
|
" 1970 320087740.0 382313536.0\n",
|
|
" 1971 325081700.0 367311136.0\n",
|
|
" 1972 330439800.0 354312384.0\n",
|
|
" 1973 337194300.0 343388672.0\n",
|
|
" 1974 320368600.0 334204224.0\n",
|
|
" 1975 314267070.0 327040896.0\n",
|
|
" 1976 331070700.0 321761664.0\n",
|
|
" 1977 340335970.0 318927040.0\n",
|
|
" 1978 347694200.0 318146560.0\n",
|
|
" 1979 337077630.0 319358464.0\n",
|
|
" 1980 335224260.0 320134144.0\n",
|
|
" 1981 338475900.0 322129824.0\n",
|
|
" 1982 346636100.0 323702688.0\n",
|
|
" 1983 337720860.0 325281888.0\n",
|
|
" 1984 1089740200.0 326119584.0\n",
|
|
" 1985 1094135200.0 370703072.0\n",
|
|
" 1986 1356664300.0 444223168.0\n",
|
|
" 1987 1094102400.0 549150400.0\n",
|
|
" 1988 868287000.0 657252672.0\n",
|
|
" 1989 952774460.0 750001344.0\n",
|
|
" 1990 630177900.0 834737920.0\n",
|
|
" 1991 588279700.0 890711168.0\n",
|
|
" 1992 816565250.0 921774272.0\n",
|
|
" 1993 658466700.0 947567360.0\n",
|
|
" 1994 939920060.0 960132928.0\n",
|
|
" 1995 844895940.0 921188672.0\n",
|
|
" 1996 915443500.0 888202816.0\n",
|
|
" 1997 1612345777.5 844802176.0\n",
|
|
" 1998 1194477000.0 873773248.0\n",
|
|
" 1999 1283480000.0 928067968.0\n",
|
|
" 2000 933128900.0 982479104.0\n",
|
|
" 2001 904116030.0 1044381376.0\n",
|
|
" 2002 1156695900.0 1090672512.0\n",
|
|
" 2003 921748860.0 1119232768.0\n",
|
|
" 2004 1070373250.0 1146464768.0\n",
|
|
" 2005 999814300.0 1149587968.0\n",
|
|
" 2006 1585034000.0 1155981568.0\n",
|
|
" 2007 991799500.0 1187641088.0\n",
|
|
" 2008 1040765440.0 1151723648.0\n",
|
|
" 2009 1364806100.0 1147195264.0\n",
|
|
" 2010 1257604600.0 1151844864.0\n",
|
|
" 2011 1414596600.0 1188091136.0\n",
|
|
" 2012 1475463000.0 1234742528.0\n",
|
|
" 2013 1433831400.0 1269166848.0\n",
|
|
" 2014 1612345777.5 1323826176.0\n",
|
|
" 2015 1612345777.5 1375218944.0\n",
|
|
" 2016 1267832300.0 1435681280.0\n",
|
|
" 2017 1223529600.0 1434321024.0\n",
|
|
" 2018 1250367000.0 1464596096.0\n",
|
|
" 2019 1550345600.0 1479827328.0\n",
|
|
" 2020 1113463400.0 1481222016.0\n",
|
|
" 2021 1055700300.0 1473490816.0\n",
|
|
" 2022 1193858800.0 1440159744.0\n",
|
|
" 2023 1288977000.0 1402857216.0\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"full_predicted = full_predicted.flatten()\n",
|
|
"\n",
|
|
"\n",
|
|
"actual_values = data['emissions_total_including_land_use_change'].iloc[time_steps:train_size+time_steps+len(test_years)].values\n",
|
|
"\n",
|
|
"\n",
|
|
"min_length = min(len(full_years), len(actual_values), len(full_predicted))\n",
|
|
"\n",
|
|
"\n",
|
|
"prediksi_df = pd.DataFrame({\n",
|
|
" 'Year': full_years[:min_length],\n",
|
|
" 'Actual CO₂ Emissions': actual_values[:min_length],\n",
|
|
" 'Predicted CO₂ Emissions': full_predicted[:min_length]\n",
|
|
"})\n",
|
|
"\n",
|
|
"print(\"\\nHasil Prediksi Emisi CO₂ Indonesia:\")\n",
|
|
"print(prediksi_df.to_string(index=False))\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "venv",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.11.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|